1. 23 5月, 2012 12 次提交
    • K
      hexagon/mm/vm_fault.c: Port OOM changes to do_page_fault · 393a86af
      Kautuk Consul 提交于
      Commit d065bd81
      (mm: retry page fault when blocking on disk transfer) and
      commit 37b23e05
      (x86,mm: make pagefault killable)
      
      The above commits introduced changes into the x86 pagefault handler
      for making the page fault handler retryable as well as killable.
      
      These changes reduce the mmap_sem hold time, which is crucial
      during OOM killer invocation.
      
      Port these changes to hexagon.
      Signed-off-by: NKautuk Consul <consul.kautuk@gmail.com>
      Signed-off-by: NRichard Kuo <rkuo@codeaurora.org>
      393a86af
    • J
      arch/hexagon/kernel/dma.c: make function static · 222c547e
      Julia Lawall 提交于
      This function is only used in the same file, and the other similar
      functions in this file are also static.
      Signed-off-by: NJulia Lawall <Julia.Lawall@lip6.fr>
      [rkuo@codeaurora.org: adjusted patch to apply to latest]
      Signed-off-by: NRichard Kuo <rkuo@codeaurora.org>
      222c547e
    • J
      Remove unneeded include of version.h from arch/hexagon/include/asm/spinlock_types.h · bfd46276
      Jesper Juhl 提交于
      "make versioncheck" points out that arch/hexagon/include/asm/spinlock_types.h
      does not need to include version.h .
      A quick look at the file seems to confirm its findings, so here's a patch that
      removes the include.
      Signed-off-by: NJesper Juhl <jj@chaosbits.net>
      Signed-off-by: NRichard Kuo <rkuo@codeaurora.org>
      bfd46276
    • T
      Hexagon: Use resource_size function · 3c0f13bc
      Thomas Meyer 提交于
       Use resource_size function on resource object
       instead of explicit computation.
      
       The semantic patch that makes this change is available
       in scripts/coccinelle/api/resource_size.cocci.
      
       More information about semantic patching is available at
       http://coccinelle.lip6.fr/Signed-off-by: NThomas Meyer <thomas@m3y3r.de>
      Signed-off-by: NRichard Kuo <rkuo@codeaurora.org>
      3c0f13bc
    • L
      Merge tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · f6a26ae7
      Linus Torvalds 提交于
      Pull arm-soc board specific changes from Olof Johansson:
       "While we generally attempt to get rid of board specific files and
        replace them with device tree based descriptions, a lot of platforms
        have not come that far:
      
        In shmobile, we add two new board files because their recently started
        effort to add DT support has not proceeded enough to use it for all of
        the important hardware.
      
        In Kirkwood, we are adding support for new boards with a combination
        of DT and board file contents in multiple cases.
      
        pxa/mmp and imx are extending support for existing board files but not
        adding new ones."
      
      Fix up trivial conflicts in arch/arm/mach-{mmp/ttc_dkb.c,shmobile/{Kconfig,Makefile}}
      
      * tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (94 commits)
        ARM: shmobile: fix smp build
        ARM: kirkwood: Add support for RaidSonic IB-NAS6210/6220 using devicetree
        kirkwood: Add iconnect support
        orion/kirkwood: create a generic function for gpio led blinking
        kirkwood/orion: fix orion_gpio_set_blink
        ARM: kirkwood: Define DNS-320/DNS-325 NAND in fdt
        kirkwood: Allow nand to be configured via. devicetree
        mtd: Add orion_nand devicetree bindings
        ARM: kirkwood: Basic support for DNS-320 and DNS-325
        ARM: mach-shmobile: Use DT_MACHINE for armadillo 800 eva
        ARM: mach-shmobile: Use DT_MACHINE for KZM9G
        ARM: pxa: hx4700: Add Synaptics NavPoint touchpad
        ARM: pxa: Use REGULATOR_SUPPLY macro
        ARM: mach-shmobile: kzm9g: enable SMP boot
        ARM: mach-shmobile: kzm9g: defconfig update
        ARM: mach-shmobile: kzm9g: add PCF8757 gpio-key
        ARM: mach-shmobile: kzm9g: add SDHI support
        ARM: mach-shmobile: kzm9g: add MMCIF support
        ARM: mach-shmobile: kzm9g: correct screen direction
        ARM: mach-shmobile: sh73a0.h: add GPIO_NR
        ...
      f6a26ae7
    • L
      Merge tag 'pm' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · cdd3a354
      Linus Torvalds 提交于
      Pull arm-soc power management changes from Olof Johansson:
       "Power management changes here are mostly for the omap platform, but
        also include cpuidle changes for ux500 and suspend/resume code for
        mmp."
      
      * tag 'pm' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
        ARM: OMAP2+: WDTIMER integration: fix !PM boot crash, disarm timer after hwmod reset
        ARM: OMAP2/3: hwmod data: Add 32k-sync timer data to hwmod database
        ARM: OMAP4: hwmod_data: Name the common irq for McBSP ports
        ARM: OMAP4: hwmod data: I2C: add flag for context restore
        ARM: OMAP3: hwmod_data: Rename the common irq for McBSP ports
        ARM: OMAP2xxx: hwmod data: add HDQ/1-wire hwmod
        ARM: OMAP3: hwmod data: add HDQ/1-wire hwmod
        ARM: OMAP2+: hwmod data: add HDQ/1-wire hwmod shared data
        ARM: OMAP2+: HDQ1W: add custom reset function
        ARM: OMAP2420: hwmod data: Add MMC hwmod data for 2420
        arm: omap3: clockdomain data: Remove superfluous commas from gfx_sgx_3xxx_wkdeps[]
        ARM: OMAP2+: powerdomain: Get rid off duplicate pwrdm_clkdm_state_switch() API
        ARM: OMAP3: clock data: add clockdomain for HDQ functional clock
        ARM: OMAP3+: dpll: Configure autoidle mode only if it's supported
        ARM: OMAP2+: dmtimer: cleanup iclk usage
        ARM: OMAP4+: Add prm and cm base init function.
        ARM: OMAP2/3: Add idle_st bits for ST_32KSYNC timer to prcm-common header
        ARM: OMAP3: Fix CM register bit masks
        ARM: OMAP: clock: convert AM3517/3505 detection/flags to AM35xx
        ARM: OMAP3: clock data: treat all AM35x devices the same
        ...
      cdd3a354
    • L
      Merge tag 'pinctrl' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 813a95e5
      Linus Torvalds 提交于
      Pull arm soc-specific pinctrl changes from Olof Johansson:
       "With this, five platforms are moving to the relatively new pinctrl
        subsystem for their pin management, replacing the older soc specific
        in-kernel interfaces with common code.
      
        There is quite a bit of net addition of code for each platform being
        added to the pinctrl subsystem.  But the payback comes later when
        adding new boards can be done by only providing new device trees
        instead."
      
      Fix up trivial conflicts in arch/arm/mach-ux500/{Makefile,board-mop500.c}
      
      * tag 'pinctrl' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (61 commits)
        mtd: nand: gpmi: fix compile error caused by pinctrl call
        ARM: PRIMA2: select PINCTRL and PINCTRL_SIRF in Kconfig
        ARM: nomadik: enable PINCTRL_NOMADIK where needed
        ARM: mxs: enable pinctrl support
        video: mxsfb: adopt pinctrl support
        ASoC: mxs-saif: adopt pinctrl support
        i2c: mxs: adopt pinctrl support
        mtd: nand: gpmi: adopt pinctrl support
        mmc: mxs-mmc: adopt pinctrl support
        serial: mxs-auart: adopt pinctrl support
        serial: amba-pl011: adopt pinctrl support
        spi/imx: adopt pinctrl support
        i2c: imx: adopt pinctrl support
        can: flexcan: adopt pinctrl support
        net: fec: adopt pinctrl support
        ARM: ux500: switch MSP to using pinctrl for pins
        ARM: ux500: alter MSP registration to return a device pointer
        ARM: ux500: switch to using pinctrl for uart0
        ARM: ux500: delete custom pin control system
        ARM: ux500: switch over to Nomadik pinctrl driver
        ...
      813a95e5
    • L
      Merge tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 9f639269
      Linus Torvalds 提交于
      Pull support for new arm SoCs from Olof Johansson:
       "Three new system-on-chip models are supported: the st-ericsson u9540
        in ux500, the sam9n12 in at91 and the emma ev2 in shmobile.
      
        Emma is a little bit special because it is completely unrelated to the
        classic shmobile models, but the new Renesas rmobile SoCs are a
        combination of things from both Emma and shmobile, so it was decided
        to have them all live in one directory.
      
        This also contains updates to existing shmobile soc code as well as
        some related board changes due to dependencies."
      
      * tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (23 commits)
        mach-shmobile: Use DT_MACHINE for KZM9D V3
        mach-shmobile: Emma Mobile EV2 DT support V3
        mach-shmobile: KZM9D board Ethernet support V3
        mach-shmobile: Emma Mobile EV2 GPIO support V3
        mach-shmobile: Emma Mobile EV2 SMP support V3
        mach-shmobile: KZM9D board support V3
        mach-shmobile: Emma Mobile EV2 SoC base support V3
        gpio: Emma Mobile GPIO driver V2
        ARM: mach-shmobile: sh73a0: fixup PINT/IRQ16-IRQ31 irq number conflict
        ARM: mach-shmobile: clock-r8a7740: use followparent_recalc on usb24s
        ARM: mach-shmobile: clock-r8a7740: add MMCIF clock
        ARM: mach-shmobile: clock-r8a7740: add SDHI clock
        ARM: mach-shmobile: clock-r8a7740: add USB clock
        ARM: mach-shmobile: clock-r8a7740: add FSI clock
        ARM: mach-shmobile: r8a7740: cleanup I2C workaround method
        ARM: mach-shmobile: r8a7740: add gpio_irq support
        ARM: mach-shmobile: sh7372: Add FSI DMAEngine support
        ARM / mach-shmobile: Use preset_lpj with calibrate_delay()
        ARM: ux500: ioremap differences for DB9540
        ARM: ux500: core U9540 support
        ...
      9f639269
    • L
      Merge tag 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b324c67d
      Linus Torvalds 提交于
      Pull device tree conversions for arm-soc, part 1, from Olof Johansson:
       "The spear3xx, lpc32xx, shmobile and mmp platforms are joining the game
        of booting using device trees, which is a great step forward for them.
        at91 and spear have pretty much completed this process with a huge
        amount of work being put into at91.  The other platforms are
        continuing the process.
      
        We finally start to see the payback on this investment, as new
        machines are getting supported purely by adding a .dts source file
        that can be completely independent of the kernel source."
      
      Fix up trivial conflict in arch/arm/Kconfig
      
      * tag 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
        ARM: at91: Add ADC driver to at91sam9260/at91sam9g20 dtsi files
        arm/dts: omap4-panda: Add LEDs support
        arm/dts: omap4-sdp: Add LEDs support
        arm/dts: twl4030: Add twl4030-gpio node
        OMAP4: devices: Do not create mcpdm device if the dtb has been provided
        OMAP4: devices: Do not create dmic device if the dtb has been provided
        Documentation: update docs for mmp dt
        ARM: dts: refresh dts file for arch mmp
        ARM: mmp: support pxa910 with device tree
        ARM: mmp: support mmp2 with device tree
        gpio: pxa: parse gpio from DTS file
        ARM: mmp: support DT in timer
        ARM: mmp: support DT in irq
        ARM: mmp: append CONFIG_MACH_MMP2_DT
        ARM: mmp: fix build issue on mmp with device tree
        ARM: ux500: Enable PRCMU Timer 4 (clocksource) for Device Tree
        ARM: ux500: Disable SMSC911x platform code registration when DT is enabled
        ARM: ux500: Fork cpu-db8500 platform_devs for sequential DT enablement
        ARM: ux500: Do not attempt to register non-existent i2c devices on Snowball
        ARM: SPEAr3xx: Correct keyboard data passed from DT
        ...
      b324c67d
    • L
      Merge tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8dca6010
      Linus Torvalds 提交于
      Pull non-critical arm-soc bug fixes from Olof Johansson:
       "These bug fixes were not important enough to have them included in the
        v3.4 release, mostly because they cover harmless warnings or
        unrealistic configurations.  Instead we queue them up to be picked up
        in the next merge window."
      
      Fixed up trivial conflict in arch/arm/mach-omap2/board-omap4panda.c
      
      * tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: spear6xx: remove board selection options
        ARM: OMAP: igep0020: Specify the VPLL2 regulator unconditionally
        ARM: OMAP2+: INTC: fix Kconfig option for TI81XX
        ARM: OMAP2+: remove incorrect irq_chip ack field
        ARM: OMAP4: Adding ID for OMAP4460 ES1.1
        ARM: OMAP4: panda: add statics to remove warnings
        ARM: OMAP2+: Incorrect Register Offsets in OMAP Mailbox
        ARM: OMAP: fix trivial warnings for dspbridge
        arm: davinci: use for_each_set_bit_from
        ARM: OMAP4: hsmmc: check for null pointer
        ARM: OMAP1: fix compilation issue in board-sx1.c
        ARM: disable SUSPEND/ARCH_SUSPEND_POSSIBLE for ARCH_TEGRA
        ARM: davinci: da850-evm: fix section mismatch
        ARM: tegra: add pll_x freq table entry for 750MHz
        ARM: davinci: mark spi_board_info arguments as const
        ARM: davinci: fix incorrect pdctl next bit position
      8dca6010
    • L
      Merge tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 9bc747be
      Linus Torvalds 提交于
      Pull first batch of arm-soc cleanups from Olof Johansson:
       "These cleanups are basically all over the place.  The idea is to
        collect changes with minimal impact but large number of changes so we
        can avoid them from distracting in the diffstat in the other series.
      
        A significant number of lines get removed here, in particular because
        the ixp2000 and ixp23xx platforms get removed.  These have never been
        extremely popular and have fallen into disuse over time with no active
        maintainer taking care of them.  The u5500 soc never made it into a
        product, so we are removing it from the ux500 platform.
      
        Many good cleanups also went into the at91 and omap platforms, as has
        been the case for a number of releases."
      
      Trivial modify-delete conflicts in arch/arm/mach-{ixp2000,ixp23xx}
      
      * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (152 commits)
        ARM: clps711x: Cleanup IRQ handling
        ARM clps711x: Removed unused header mach/time.h
        ARM: clps711x: Added note about support EP731x CPU to Kconfig
        ARM: clps711x: Added missing register definitions
        ARM: clps711x: Used own subarch directory for store header file
        Dove: Fix Section mismatch warnings
        ARM: orion5x: ts78xx debugging changes
        ARM: orion5x: remove PM dependency from ts78xx
        ARM: orion5x: ts78xx fix NAND resource off by one
        ARM: orion5x: ts78xx whitespace cleanups
        Orion5x: Fix Section mismatch warnings
        Orion5x: Fix warning: struct pci_dev declared inside paramter list
        ARM: clps711x: Combine header files into one for clps711x-targets
        ARM: S3C24XX: Use common macro to define resources on mach-qt2410.c
        ARM: S3C24XX: Use common macro to define resources on mach-osiris.c
        ARM: EXYNOS: Adapt to cpuidle core time keeping and irq enable
        ARM: S5PV210: Use common macro to define resources on mach-smdkv210.c
        ARM: S5PV210: Use common macro to define resources on dev-audio.c
        ARM: S5PC100: Use common macro to define resources on dev-audio.c
        ARM: S5P64X0: Use common macro to define resources on dev-audio.c
        ...
      9bc747be
    • L
      Merge tag 'maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 32b908ee
      Linus Torvalds 提交于
      Pull arm-soc updates for MAINTAINERS file from Olof Johansson:
       "This is a collection of updates to the MAINTAINERS file, separated out
        mostly to give an overview of what has changed regarding who does what.
      
        In particular, at91, orion and prima2 platforms and drivers are
        updated in this batch."
      
      * tag 'maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        MAINTAINER: add some drivers upstreamed in CSR SIRFPRIMA2
        maintainership update for the Marvell Orion family of SOCs
        MAINTAINERS: remove non-responding web link for atmel_usba driver
        MAINTAINERS: add entry for Atmel timer counter (TC)
        MAINTAINERS: add entry for Atmel DMA driver
        MAINTAINERS: add entry for Atmel touch screen ADC controller driver
        MAINTAINERS: add entry for Atmel isi driver
      32b908ee
  2. 22 5月, 2012 28 次提交
    • L
      Merge tag 'ktest-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · 25f3cdf8
      Linus Torvalds 提交于
      Pull ktest updates from Steven Rostedt.
      
      * tag 'ktest-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: Add README to explain what is in the examples directory
        ktest: Add the snowball.conf example config
        ktest: Add an example config that does cross compiling of several archs
        ktest: Add kvm.conf example config
        ktest: Add useful example configs
        ktest: Add USE_OUTPUT_MIN_CONFIG to avoid prompt on make_min_config
        ktest: Add MIN_CONFIG_TYPE to allow making a minum .config that has network
        ktest: Fix kernelrevision with POST_BUILD
      25f3cdf8
    • S
      ktest: Add README to explain what is in the examples directory · 24d0c030
      Steven Rostedt 提交于
      Add a README that explains what the different example configs in the
      ktest example directory are about.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      24d0c030
    • S
      ktest: Add the snowball.conf example config · b6d30036
      Steven Rostedt 提交于
      I used the snowball.conf in a live demo that demonstrated how to use
      ktest.pl with a snowball ARM board. I've been asked to included that
      config in the ktest repository.
      
      Here it is.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      b6d30036
    • S
      ktest: Add an example config that does cross compiling of several archs · 2e109526
      Steven Rostedt 提交于
      Add the config that I use to test several archs. I downloaded several
      cross compilers from:
      
       http://kernel.org/pub/tools/crosstool/files/bin/x86_64/
      
      and this config is an example to crosscompile several archs to make sure
      that your changes do not break archs that you are not working on.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      2e109526
    • S
      ktest: Add kvm.conf example config · 3a7bef79
      Steven Rostedt 提交于
      Add an example config that explains how to use ktest with a virtual
      guest as the target.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      3a7bef79
    • S
      ktest: Add useful example configs · 6d76f469
      Steven Rostedt 提交于
      I've been asked several times to provide more useful example configs for
      ktest.pl, as the sample.conf is too complex (because it explains all
      configs). This adds configs broken up by use case, and these configs are
      based on actual configs that I use on a daily basis.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      6d76f469
    • S
      ktest: Add USE_OUTPUT_MIN_CONFIG to avoid prompt on make_min_config · 43de3316
      Steven Rostedt 提交于
      If the file that OUTPUT_MIN_CONFIG exists then ktest.pl will prompt the
      user and ask them if the OUTPUT_MIN_CONFIG should be used as the
      starting point for make_min_config instead of MIN_CONFIG.
      
      This is usually the case, and to allow the user to do so, which is
      helpful if the user is creating different min configs based on tests,
      and they know one is a superset of another test, they can set
      USE_OUTPUT_MIN_CONFIG to one, which will prevent kest.pl from prompting
      to use the OUTPUT_MIN_CONFIG and it will just use it.
      
      If USE_OUTPUT_MIN_CONIFG is set to zero, then ktest.pl will continue to
      use MIN_CONFIG instead.
      
      The default is that USE_OUTPUT_MIN_CONFIG is undefined.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      43de3316
    • L
      fbdev: sh_mobile_lcdc: Don't confuse line size with pitch · 72c04af9
      Laurent Pinchart 提交于
      When using the MERAM the LCDC line size needs to be programmed with a
      MERAM-specific value different than the real frame buffer pitch. Fix it.
      Reported-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: stable@vger.kernel.org  # for 3.4
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      72c04af9
    • L
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 47136855
      Linus Torvalds 提交于
      Pull core irq changes from Ingo Molnar:
       "A collection of small fixes."
      
      By Thomas Gleixner
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        hexagon: Remove select of not longer existing Kconfig switches
        arm: Select core options instead of redefining them
        genirq: Do not consider disabled wakeup irqs
        genirq: Allow check_wakeup_irqs to notice level-triggered interrupts
        genirq: Be more informative on irq type mismatch
        genirq: Reject bogus threaded irq requests
        genirq: Streamline irq_action
      47136855
    • L
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · cb60e3e6
      Linus Torvalds 提交于
      Pull security subsystem updates from James Morris:
       "New notable features:
         - The seccomp work from Will Drewry
         - PR_{GET,SET}_NO_NEW_PRIVS from Andy Lutomirski
         - Longer security labels for Smack from Casey Schaufler
         - Additional ptrace restriction modes for Yama by Kees Cook"
      
      Fix up trivial context conflicts in arch/x86/Kconfig and include/linux/filter.h
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (65 commits)
        apparmor: fix long path failure due to disconnected path
        apparmor: fix profile lookup for unconfined
        ima: fix filename hint to reflect script interpreter name
        KEYS: Don't check for NULL key pointer in key_validate()
        Smack: allow for significantly longer Smack labels v4
        gfp flags for security_inode_alloc()?
        Smack: recursive tramsmute
        Yama: replace capable() with ns_capable()
        TOMOYO: Accept manager programs which do not start with / .
        KEYS: Add invalidation support
        KEYS: Do LRU discard in full keyrings
        KEYS: Permit in-place link replacement in keyring list
        KEYS: Perform RCU synchronisation on keys prior to key destruction
        KEYS: Announce key type (un)registration
        KEYS: Reorganise keys Makefile
        KEYS: Move the key config into security/keys/Kconfig
        KEYS: Use the compat keyctl() syscall wrapper on Sparc64 for Sparc32 compat
        Yama: remove an unused variable
        samples/seccomp: fix dependencies on arch macros
        Yama: add additional ptrace scopes
        ...
      cb60e3e6
    • L
      Merge tag 'virtio-for-linus' of... · 99262a3d
      Linus Torvalds 提交于
      Merge tag 'virtio-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
      
      Pull virtio updates from Rusty Russell.
      
      * tag 'virtio-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
        virtio: fix typo in comment
        virtio-mmio: Devices parameter parsing
        virtio_blk: Drop unused request tracking list
        virtio-blk: Fix hot-unplug race in remove method
        virtio: Use ida to allocate virtio index
        virtio: balloon: separate out common code between remove and freeze functions
        virtio: balloon: drop restore_common()
        9p: disconnect channel when PCI device is removed
        virtio: update documentation to v0.9.5 of spec
      99262a3d
    • C
      virtio: fix typo in comment · c6190804
      Chen Baozi 提交于
      - Delete "@request_vqs" and "@free_vqs" comments, since
        they are no longer in struct virtio_config_ops.
      - According to the macro below, "@val" should be "@v".
      Signed-off-by: NChen Baozi <chenbaozi@gmail.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      c6190804
    • P
      virtio-mmio: Devices parameter parsing · 81a054ce
      Pawel Moll 提交于
      This patch adds an option to instantiate guest virtio-mmio devices
      basing on a kernel command line (or module) parameter, for example:
      
      	virtio_mmio.devices=0x100@0x100b0000:48
      Signed-off-by: NPawel Moll <pawel.moll@arm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      81a054ce
    • A
      virtio_blk: Drop unused request tracking list · f65ca1dc
      Asias He 提交于
      Benchmark shows small performance improvement on fusion io device.
      
      Before:
        seq-read : io=1,024MB, bw=19,982KB/s, iops=39,964, runt= 52475msec
        seq-write: io=1,024MB, bw=20,321KB/s, iops=40,641, runt= 51601msec
        rnd-read : io=1,024MB, bw=15,404KB/s, iops=30,808, runt= 68070msec
        rnd-write: io=1,024MB, bw=14,776KB/s, iops=29,552, runt= 70963msec
      
      After:
        seq-read : io=1,024MB, bw=20,343KB/s, iops=40,685, runt= 51546msec
        seq-write: io=1,024MB, bw=20,803KB/s, iops=41,606, runt= 50404msec
        rnd-read : io=1,024MB, bw=16,221KB/s, iops=32,442, runt= 64642msec
        rnd-write: io=1,024MB, bw=15,199KB/s, iops=30,397, runt= 68991msec
      Signed-off-by: NAsias He <asias@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      f65ca1dc
    • A
      virtio-blk: Fix hot-unplug race in remove method · b79d866c
      Asias He 提交于
      If we reset the virtio-blk device before the requests already dispatched
      to the virtio-blk driver from the block layer are finised, we will stuck
      in blk_cleanup_queue() and the remove will fail.
      
      blk_cleanup_queue() calls blk_drain_queue() to drain all requests queued
      before DEAD marking. However it will never success if the device is
      already stopped. We'll have q->in_flight[] > 0, so the drain will not
      finish.
      
      How to reproduce the race:
      1. hot-plug a virtio-blk device
      2. keep reading/writing the device in guest
      3. hot-unplug while the device is busy serving I/O
      
      Test:
      ~1000 rounds of hot-plug/hot-unplug test passed with this patch.
      
      Changes in v3:
      - Drop blk_abort_queue and blk_abort_request
      - Use __blk_end_request_all to complete request dispatched to driver
      
      Changes in v2:
      - Drop req_in_flight
      - Use virtqueue_detach_unused_buf to get request dispatched to driver
      Signed-off-by: NAsias He <asias@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      b79d866c
    • A
      virtio: Use ida to allocate virtio index · 90e03207
      Asias He 提交于
      Current index allocation in virtio is based on a monotonically
      increasing variable "index". This means we'll run out of numbers
      after a while. E.g. someone crazy doing this in host side.
      
      while(1) {
      	hot-plug a virtio device
      	hot-unplug the virito devcie
      }
      Signed-off-by: NAsias He <asias@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      90e03207
    • A
      virtio: balloon: separate out common code between remove and freeze functions · c877bab5
      Amit Shah 提交于
      The remove and freeze functions have a lot of shared code; put it into a
      common function that gets called by both.
      Signed-off-by: NAmit Shah <amit.shah@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      c877bab5
    • A
      virtio: balloon: drop restore_common() · c45b4166
      Amit Shah 提交于
      restore_common() was used when there were different thaw and freeze PM
      callbacks implemented.  We removed thaw in commit
      f38f8387.
      
      restore_common() can be removed and virtballoon_restore() can itself do
      the restore ops.
      Signed-off-by: NAmit Shah <amit.shah@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      c45b4166
    • S
      9p: disconnect channel when PCI device is removed · 991ad9ec
      Sasha Levin 提交于
      When a virtio_9p pci device is being removed, we should close down any
      active channels and free up resources, we're not supposed to BUG() if there's
      still an open channel since it's a valid case when removing the PCI device.
      
      Otherwise, removing the PCI device with an open channel would cause the
      following BUG():
      
      [ 1184.671416] ------------[ cut here ]------------
      [ 1184.672057] kernel BUG at net/9p/trans_virtio.c:618!
      [ 1184.672057] invalid opcode: 0000 [#1] PREEMPT SMP
      [ 1184.672057] CPU 3
      [ 1184.672057] Pid: 5, comm: kworker/u:0 Tainted: G        W    3.4.0-rc2-next-20120413-sasha-dirty #76
      [ 1184.672057] RIP: 0010:[<ffffffff825c9116>]  [<ffffffff825c9116>] p9_virtio_remove+0x16/0x90
      [ 1184.672057] RSP: 0018:ffff88000d653ac0  EFLAGS: 00010202
      [ 1184.672057] RAX: ffffffff836bfb40 RBX: ffff88000c9b2148 RCX: ffff88000d658978
      [ 1184.672057] RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff880028868000
      [ 1184.672057] RBP: ffff88000d653ad0 R08: 0000000000000000 R09: 0000000000000000
      [ 1184.672057] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880028868000
      [ 1184.672057] R13: ffffffff835aa7c0 R14: ffff880041630000 R15: ffff88000d653da0
      [ 1184.672057] FS:  0000000000000000(0000) GS:ffff880035a00000(0000) knlGS:0000000000000000
      [ 1184.672057] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [ 1184.672057] CR2: 0000000001181000 CR3: 000000000eba1000 CR4: 00000000000406e0
      [ 1184.672057] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      x000000000117a190 *[ 1184.672057] DR3: 00000000000000**
      00 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [ 1184.672057] Process kworker/u:0 (pid: 5, threadinfo ffff88000d652000, task ffff88000d658000)
      [ 1184.672057] Stack:
      [ 1184.672057]  ffff880028868000 ffffffff836bfb40 ffff88000d653af0 ffffffff8193661b
      [ 1184.672057]  ffff880028868008 ffffffff836bfb40 ffff88000d653b10 ffffffff81af1c81
      [ 1184.672057]  ffff880028868068 ffff880028868008 ffff88000d653b30 ffffffff81af257a
      [ 1184.795301] Call Trace:
      [ 1184.795301]  [<ffffffff8193661b>] virtio_dev_remove+0x1b/0x60
      [ 1184.795301]  [<ffffffff81af1c81>] __device_release_driver+0x81/0xd0
      [ 1184.795301]  [<ffffffff81af257a>] device_release_driver+0x2a/0x40
      [ 1184.795301]  [<ffffffff81af0d48>] bus_remove_device+0x138/0x150
      [ 1184.795301]  [<ffffffff81aef08d>] device_del+0x14d/0x1b0
      [ 1184.795301]  [<ffffffff81aef138>] device_unregister+0x48/0x60
      [ 1184.795301]  [<ffffffff8193694d>] unregister_virtio_device+0xd/0x10
      [ 1184.795301]  [<ffffffff8265fc74>] virtio_pci_remove+0x2a/0x6c
      [ 1184.795301]  [<ffffffff818a95ad>] pci_device_remove+0x4d/0x110
      [ 1184.795301]  [<ffffffff81af1c81>] __device_release_driver+0x81/0xd0
      [ 1184.795301]  [<ffffffff81af257a>] device_release_driver+0x2a/0x40
      [ 1184.795301]  [<ffffffff81af0d48>] bus_remove_device+0x138/0x150
      [ 1184.795301]  [<ffffffff81aef08d>] device_del+0x14d/0x1b0
      [ 1184.795301]  [<ffffffff81aef138>] device_unregister+0x48/0x60
      [ 1184.795301]  [<ffffffff818a36fa>] pci_stop_bus_device+0x6a/0x90
      [ 1184.795301]  [<ffffffff818a3791>] pci_stop_and_remove_bus_device+0x11/0x20
      [ 1184.795301]  [<ffffffff818c21d9>] remove_callback+0x9/0x10
      [ 1184.795301]  [<ffffffff81252d91>] sysfs_schedule_callback_work+0x21/0x60
      [ 1184.795301]  [<ffffffff810cb1a1>] process_one_work+0x281/0x430
      [ 1184.795301]  [<ffffffff810cb140>] ? process_one_work+0x220/0x430
      [ 1184.795301]  [<ffffffff81252d70>] ? sysfs_read_file+0x1c0/0x1c0
      [ 1184.795301]  [<ffffffff810cc613>] worker_thread+0x1f3/0x320
      [ 1184.795301]  [<ffffffff810cc420>] ? manage_workers.clone.13+0x130/0x130
      [ 1184.795301]  [<ffffffff810d30b2>] kthread+0xb2/0xc0
      [ 1184.795301]  [<ffffffff826783f4>] kernel_thread_helper+0x4/0x10
      [ 1184.795301]  [<ffffffff810deb18>] ? finish_task_switch+0x78/0xf0
      [ 1184.795301]  [<ffffffff82676574>] ? retint_restore_args+0x13/0x13
      [ 1184.795301]  [<ffffffff810d3000>] ? kthread_flush_work_fn+0x10/0x10
      [ 1184.795301]  [<ffffffff826783f0>] ? gs_change+0x13/0x13
      [ 1184.795301] Code: c1 9e 0a 00 48 83 c4 08 5b c9 c3 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 54 49 89 fc 53 48 8b 9f a8 04 00 00 80 3b 00 74 0a <0f> 0b 0f 1f 84 00 00 00 00 00 48 8b 87 88 04 00 00 ff 50 30 31
      [ 1184.795301] RIP  [<ffffffff825c9116>] p9_virtio_remove+0x16/0x90
      [ 1184.795301]  RSP <ffff88000d653ac0>
      [ 1184.952618] ---[ end trace a307b3ed40206b4c ]---
      Signed-off-by: NSasha Levin <levinsasha928@gmail.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      991ad9ec
    • R
      33950c6e
    • L
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bf67f3a5
      Linus Torvalds 提交于
      Pull smp hotplug cleanups from Thomas Gleixner:
       "This series is merily a cleanup of code copied around in arch/* and
        not changing any of the real cpu hotplug horrors yet.  I wish I'd had
        something more substantial for 3.5, but I underestimated the lurking
        horror..."
      
      Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
      arch/sparc/include/asm/thread_info_32.h
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
        um: Remove leftover declaration of alloc_task_struct_node()
        task_allocator: Use config switches instead of magic defines
        sparc: Use common threadinfo allocator
        score: Use common threadinfo allocator
        sh-use-common-threadinfo-allocator
        mn10300: Use common threadinfo allocator
        powerpc: Use common threadinfo allocator
        mips: Use common threadinfo allocator
        hexagon: Use common threadinfo allocator
        m32r: Use common threadinfo allocator
        frv: Use common threadinfo allocator
        cris: Use common threadinfo allocator
        x86: Use common threadinfo allocator
        c6x: Use common threadinfo allocator
        fork: Provide kmemcache based thread_info allocator
        tile: Use common threadinfo allocator
        fork: Provide weak arch_release_[task_struct|thread_info] functions
        fork: Move thread info gfp flags to header
        fork: Remove the weak insanity
        sh: Remove cpu_idle_wait()
        ...
      bf67f3a5
    • L
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 226da0db
      Linus Torvalds 提交于
      Pull RCU changes from Ingo Molnar:
       "This is the v3.5 RCU tree from Paul E.  McKenney:
      
       1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature (with
          more on the way for 3.6).  Posted to LKML:
             https://lkml.org/lkml/2012/4/23/324 (commits 1-3 and 5),
             https://lkml.org/lkml/2012/4/16/611 (commit 4),
             https://lkml.org/lkml/2012/4/30/390 (commit 6), and
             https://lkml.org/lkml/2012/5/4/410 (commit 7, combined with
             the other commits for the convenience of the tester).
      
       2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
          that have no RCU callbacks.  Posted to LKML:
             https://lkml.org/lkml/2012/4/23/322.
      
       3) A couple of commits that improve the efficiency of the interaction
          between preemptible RCU and the scheduler, these two being all that
          survived an abortive attempt to allow preemptible RCU's
          __rcu_read_lock() to be inlined.  The full set was posted to LKML at
          https://lkml.org/lkml/2012/4/14/143, and the first and third patches
          of that set remain.
      
       4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
          call_srcu() and srcu_barrier().  A major feature of this new
          implementation is that synchronize_srcu() no longer disturbs the
          execution of other CPUs.  This work is based on earlier
          implementations by Peter Zijlstra and Paul E.  McKenney.  Posted to
          LKML: https://lkml.org/lkml/2012/2/22/82.
      
       5) A number of miscellaneous bug fixes and improvements which were
          posted to LKML at: https://lkml.org/lkml/2012/4/23/353 with
          subsequent updates posted to LKML."
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        rcu: Make rcu_barrier() less disruptive
        rcu: Explicitly initialize RCU_FAST_NO_HZ per-CPU variables
        rcu: Make RCU_FAST_NO_HZ handle timer migration
        rcu: Update RCU maintainership
        rcu: Make exit_rcu() more precise and consolidate
        rcu: Move PREEMPT_RCU preemption to switch_to() invocation
        rcu: Ensure that RCU_FAST_NO_HZ timers expire on correct CPU
        rcu: Add rcutorture test for call_srcu()
        rcu: Implement per-domain single-threaded call_srcu() state machine
        rcu: Use single value to handle expedited SRCU grace periods
        rcu: Improve srcu_readers_active_idx()'s cache locality
        rcu: Remove unused srcu_barrier()
        rcu: Implement a variant of Peter's SRCU algorithm
        rcu: Improve SRCU's wait_idx() comments
        rcu: Flip ->completed only once per SRCU grace period
        rcu: Increment upper bit only for srcu_read_lock()
        rcu: Remove fast check path from __synchronize_srcu()
        rcu: Direct algorithmic SRCU implementation
        rcu: Introduce rcutorture testing for rcu_barrier()
        timer: Fix mod_timer_pinned() header comment
        ...
      226da0db
    • L
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ec29e31
      Linus Torvalds 提交于
      Pull core locking updates from Ingo Molnar:
       "This update:
      
         - extends and simplifies x86 NMI callback handling code to enhance
           and fix the HP hw-watchdog driver
      
         - simplifies the x86 NMI callback handling code to fix a kmemcheck
           bug.
      
         - enhances the hung-task debugger"
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/nmi: Fix the type of the nmiaction.flags field
        x86/nmi: Fix page faults by nmiaction if kmemcheck is enabled
        x86/nmi: Add new NMI queues to deal with IO_CHK and SERR
        watchdog, hpwdt: Remove priority option for NMI callback
        hung task debugging: Inject NMI when hung and going to panic
      5ec29e31
    • L
      Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · abd209b7
      Linus Torvalds 提交于
      Pull iommu core changes from Ingo Molnar:
       "The IOMMU changes in this cycle are mostly about factoring out
        Intel-VT-d specific IRQ remapping details and introducing struct
        irq_remap_ops, in preparation for AMD specific hardware."
      
      * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        iommu: Fix off by one in dmar_get_fault_reason()
        irq_remap: Fix the 'sub_handle' uninitialized warning
        irq_remap: Fix UP build failure
        irq_remap: Fix compiler warning with CONFIG_IRQ_REMAP=y
        iommu: rename intr_remapping.[ch] to irq_remapping.[ch]
        iommu: rename intr_remapping references to irq_remapping
        x86, iommu/vt-d: Clean up interfaces for interrupt remapping
        iommu/vt-d: Convert MSI remapping setup to remap_ops
        iommu/vt-d: Convert free_irte into a remap_ops callback
        iommu/vt-d: Convert IR set_affinity function to remap_ops
        iommu/vt-d: Convert IR ioapic-setup to use remap_ops
        iommu/vt-d: Convert missing apic.c intr-remapping call to remap_ops
        iommu/vt-d: Make intr-remapping initialization generic
        iommu: Rename intr_remapping files to intel_intr_remapping
      abd209b7
    • L
      Merge branch 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 513de477
      Linus Torvalds 提交于
      Pull core/debugobjects changes from Ingo Molnar:
       "Not much happened: it includes a cleanup and an irq latency reduction
        fixlet."
      
      * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Fill_pool() returns void now
        debugobjects: printk with irqs enabled
        debugobjects: Remove unused return value from fill_pool()
      513de477
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 62c8d922
      Linus Torvalds 提交于
      Pull GFS2 changes from Steven Whitehouse.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw: (24 commits)
        GFS2: Fix quota adjustment return code
        GFS2: Add rgrp information to block_alloc trace point
        GFS2: Eliminate unused "new" parameter to gfs2_meta_indirect_buffer
        GFS2: Update glock doc to add new stats info
        GFS2: Update main gfs2 doc
        GFS2: Remove redundant metadata block type check
        GFS2: Fix sgid propagation when using ACLs
        GFS2: eliminate log elements and simplify
        GFS2: Eliminate vestigial sd_log_le_rg
        GFS2: Eliminate needless parameter from function gfs2_setbit
        GFS2: Log code fixes
        GFS2: Remove unused argument from gfs2_internal_read
        GFS2: Remove bd_list_tr
        GFS2: Remove duplicate log code
        GFS2: Clean up log write code path
        GFS2: Use variable rather than qa to determine if unstuff necessary
        GFS2: Change variable blk to biblk
        GFS2: Fix function parameter comments in rgrp.c
        GFS2: Eliminate offset parameter to gfs2_setbit
        GFS2: Use slab for block reservation memory
        ...
      62c8d922
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 06930b94
      Linus Torvalds 提交于
      Pull m68knommu tree from Greg Ungerer:
       "More merge and clean up of MMU and non-MMU common files, namely
        signal.c and dma.c.  There is also a simplification of the ColdFire
        GPIO setup tables.  Using a couple of simple macros we make the init
        tables really small and easy to read, and save a couple of thousand
        lines of code.  Also a move of all the ColdFire subarch support files
        into the existing coldfire directory.  The sub-directories just ended
        up duplicating Makefiles and now only contain really simple pieces of
        code.  This saves quite a few lines of code too.
      
        As always a couple of bugs fixes thrown in too.  Oh and a new
        defconfig for the ColdFire platforms that support having the MMU
        enabled."
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (39 commits)
        m68k: add a defconfig for the M5475EVB ColdFire with MMU board
        m68knommu: unaligned.h fix for M68000 core
        m68k: merge the MMU and non-MMU versions of the arch dma code
        m68knommu: reorganize the no-MMU cache flushing to match m68k
        m68knommu: move the 54xx platform code into the common ColdFire code directory
        m68knommu: move the 532x platform code into the common ColdFire code directory
        m68knommu: move the 5407 platform code into the common ColdFire code directory
        m68knommu: move the 5307 platform code into the common ColdFire code directory
        m68knommu: move the 528x platform code into the common ColdFire code directory
        m68knommu: move the 527x platform code into the common ColdFire code directory
        m68knommu: move the 5272 platform code into the common ColdFire code directory
        m68knommu: move the 5249 platform code into the common ColdFire code directory
        m68knommu: move the 523x platform code into the common ColdFire code directory
        m68knommu: move the 520x platform code into the common ColdFire code directory
        m68knommu: move the 5206 platform code into the common ColdFire code directory
        m68knommu: simplify the ColdFire 5407 GPIO struct setup
        m68knommu: simplify the ColdFire 532x GPIO struct setup
        m68knommu: simplify the ColdFire 5307 GPIO struct setup
        m68knommu: simplify the ColdFire 528x GPIO struct setup
        m68knommu: simplify the ColdFire 527x GPIO struct setup
        ...
      06930b94
    • L
      Revert "vfs: remove unnecessary d_unhashed() check from __d_lookup_rcu" · 2e321806
      Linus Torvalds 提交于
      This reverts commit 8c01a529.
      
      It turns out the d_unhashed() check isn't unnecessary after all: while
      it's true that unhashing will increment the sequence numbers, that does
      not necessarily invalidate the RCU lookup, because it might have seen
      the dentry pointer (before it got unhashed), but by the time it loaded
      the sequence number, it could have seen the *new* sequence number (after
      it got unhashed).
      
      End result: we might look up an unhashed dentry that is about to be
      freed, with the sequence number never indicating anything bad about it.
      So checking that the dentry is still hashed (*after* reading the sequence
      number) is indeed the proper fix, and was never unnecessary.
      Reported-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2e321806