1. 04 Jun, 2012 8 commits
    • Tejun Heo's avatar
      blkcg: fix blkg_alloc() failure path · 9b2ea86b
      Tejun Heo authored
      When policy data allocation fails in the middle, blkg_alloc() invokes
      blkg_free() to destroy the half constructed blkg.  This ends up
      calling pd_exit_fn() on policy datas which didn't go through
      pd_init_fn().  Fix it by making blkg_alloc() call pd_init_fn()
      immediately after each policy data allocation.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9b2ea86b
    • Tejun Heo's avatar
      block: blkcg_policy_cfq shouldn't be used if !CONFIG_CFQ_GROUP_IOSCHED · ffea73fc
      Tejun Heo authored
      cfq may be built w/ or w/o blkcg support depending on
      CONFIG_CFQ_CGROUP_IOSCHED.  If blkcg support is disabled, most of
      related code is ifdef'd out but some part is left dangling -
      blkcg_policy_cfq is left zero-filled and blkcg_policy_[un]register()
      calls are made on it.
      
      Feeding zero filled policy to blkcg_policy_register() is incorrect and
      triggers the following WARN_ON() if CONFIG_BLK_CGROUP &&
      !CONFIG_CFQ_GROUP_IOSCHED.
      
       ------------[ cut here ]------------
       WARNING: at block/blk-cgroup.c:867
       Modules linked in:
       Modules linked in:
       CPU: 3 Not tainted 3.4.0-09547-gfb21affa #1
       Process swapper/0 (pid: 1, task: 000000003ff80000, ksp: 000000003ff7f8b8)
       Krnl PSW : 0704100180000000 00000000003d76ca (blkcg_policy_register+0xca/0xe0)
      	    R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0 EA:3
       Krnl GPRS: 0000000000000000 00000000014b85ec 00000000014b85b0 0000000000000000
      	    000000000096fb60 0000000000000000 00000000009a8e78 0000000000000048
      	    000000000099c070 0000000000b6f000 0000000000000000 000000000099c0b8
      	    00000000014b85b0 0000000000667580 000000003ff7fd98 000000003ff7fd70
       Krnl Code: 00000000003d76be: a7280001           lhi     %r2,1
      	    00000000003d76c2: a7f4ffdf           brc     15,3d7680
      	   #00000000003d76c6: a7f40001           brc     15,3d76c8
      	   >00000000003d76ca: a7c8ffea           lhi     %r12,-22
      	    00000000003d76ce: a7f4ffce           brc     15,3d766a
      	    00000000003d76d2: a7f40001           brc     15,3d76d4
      	    00000000003d76d6: a7c80000           lhi     %r12,0
      	    00000000003d76da: a7f4ffc2           brc     15,3d765e
       Call Trace:
       ([<0000000000b6f000>] initcall_debug+0x0/0x4)
        [<0000000000989e8a>] cfq_init+0x62/0xd4
        [<00000000001000ba>] do_one_initcall+0x3a/0x170
        [<000000000096fb60>] kernel_init+0x214/0x2bc
        [<0000000000623202>] kernel_thread_starter+0x6/0xc
        [<00000000006231fc>] kernel_thread_starter+0x0/0xc
       no locks held by swapper/0/1.
       Last Breaking-Event-Address:
        [<00000000003d76c6>] blkcg_policy_register+0xc6/0xe0
       ---[ end trace b8ef4903fcbf9dd3 ]---
      
      This patch fixes the problem by ensuring all blkcg support code is
      inside CONFIG_CFQ_GROUP_IOSCHED.
      
      * blkcg_policy_cfq declaration and blkg_to_cfqg() definition are moved
        inside the first CONFIG_CFQ_GROUP_IOSCHED block.  __maybe_unused is
        dropped from blkcg_policy_cfq decl.
      
      * blkcg_deactivate_poilcy() invocation is moved inside ifdef.  This
        also makes the activation logic match cfq_init_queue().
      
      * All blkcg_policy_[un]register() invocations are moved inside ifdef.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      LKML-Reference: <20120601112954.GC3535@osiris.boeblingen.de.ibm.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      ffea73fc
    • Tejun Heo's avatar
      block: fix return value on cfq_init() failure · fd794956
      Tejun Heo authored
      cfq_init() would return zero after kmem cache creation failure.  Fix
      so that it returns -ENOMEM.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      fd794956
    • Sachin Kamat's avatar
      mtip32xx: Remove version.h header file inclusion · 87c9ea76
      Sachin Kamat authored
      version.h header file inclusion is no longer required.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      87c9ea76
    • Kukjin Kim's avatar
      gpio/samsung: fix the typo 'exynos5_xxx' instead of 'exonys5_xxx' · 5041caa4
      Kukjin Kim authored
      Should be 'exynos5_xxx' instead of 'exonys5_xxx'.
      
      It happened at the commit 30b84288 ("Merge tag 'soc2' of
      git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc")
      during v3.5 merge window.
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      [ My bad  - Linus ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5041caa4
    • Linus Torvalds's avatar
      Merge branch 'pm-acpi' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4d578573
      Linus Torvalds authored
      Pull some left-over PM patches from Rafael J. Wysocki.
      
      * 'pm-acpi' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification
        ACPI / PM: Make __acpi_bus_get_power() cover D3cold correctly
        ACPI / PM: Fix error messages in drivers/acpi/bus.c
        rtc-cmos / PM: report wakeup event on ACPI RTC alarm
        ACPI / PM: Generate wakeup events on fixed power button
      4d578573
    • Linus Torvalds's avatar
      Revert "mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks" · 68e3e926
      Linus Torvalds authored
      This reverts commit 5ceb9ce6.
      
      That commit seems to be the cause of the mm compation list corruption
      issues that Dave Jones reported.  The locking (or rather, absense
      there-of) is dubious, as is the use of the 'page' variable once it has
      been found to be outside the pageblock range.
      
      So revert it for now, we can re-visit this for 3.6.  If we even need to:
      as Minchan Kim says, "The patch wasn't a bug fix and even test workload
      was very theoretical".
      Reported-and-tested-by: default avatarDave Jones <davej@redhat.com>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Acked-by: default avatarKOSAKI Motohiro <kosaki.motohiro@gmail.com>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      68e3e926
    • Hugh Dickins's avatar
      mm: fix warning in __set_page_dirty_nobuffers · 752dc185
      Hugh Dickins authored
      New tmpfs use of !PageUptodate pages for fallocate() is triggering the
      WARNING: at mm/page-writeback.c:1990 when __set_page_dirty_nobuffers()
      is called from migrate_page_copy() for compaction.
      
      It is anomalous that migration should use __set_page_dirty_nobuffers()
      on an address_space that does not participate in dirty and writeback
      accounting; and this has also been observed to insert surprising dirty
      tags into a tmpfs radix_tree, despite tmpfs not using tags at all.
      
      We should probably give migrate_page_copy() a better way to preserve the
      tag and migrate accounting info, when mapping_cap_account_dirty().  But
      that needs some more work: so in the interim, avoid the warning by using
      a simple SetPageDirty on PageSwapBacked pages.
      Reported-and-tested-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      752dc185
  2. 03 Jun, 2012 3 commits
    • Linus Torvalds's avatar
      vfs: move inode stat information closer together · 2f9d3df8
      Linus Torvalds authored
      The comment above it says "Stat data, not accessed from path walking",
      but in fact some of inode fields we use for the common stat data was way
      down at the end of the inode, causing unnecessary cache misses for the
      common stat operations.
      
      The inode structure is pretty big, and this can change padding depending
      on field width, but at least on the common 64-bit configurations this
      doesn't change the size.  Some of our inode layout has historically been
      to tro to avoid unnecessary padding fields, but cache locality is at
      least as important for layout, if not more.
      
      Noticed by looking at kernel profiles, and noticing that the "i_blkbits"
      access stood out like a sore thumb.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2f9d3df8
    • Linus Torvalds's avatar
      Linux 3.5-rc1 · f8f5701b
      Linus Torvalds authored
      f8f5701b
    • Linus Torvalds's avatar
      Merge tag 'dm-3.5-changes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · 912afc36
      Linus Torvalds authored
      Pull device-mapper updates from Alasdair G Kergon:
       "Improve multipath's retrying mechanism in some defined circumstances
        and provide a simple reserve/release mechanism for userspace tools to
        access thin provisioning metadata while the pool is in use."
      
      * tag 'dm-3.5-changes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
        dm thin: provide userspace access to pool metadata
        dm thin: use slab mempools
        dm mpath: allow ioctls to trigger pg init
        dm mpath: delay retry of bypassed pg
        dm mpath: reduce size of struct multipath
      912afc36
  3. 02 Jun, 2012 18 commits
  4. 01 Jun, 2012 11 commits
    • Linus Torvalds's avatar
      Merge tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6 · 804ce986
      Linus Torvalds authored
      Pull fbdev updates from Florian Tobias Schandinat:
       - driver for AUO-K1900 and AUO-K1901 epaper controller
       - large updates for OMAP (e.g. decouple HDMI audio and video)
       - some updates for Exynos and SH Mobile
       - various other small fixes and cleanups
      
      * tag 'fbdev-updates-for-3.5' of git://github.com/schandinat/linux-2.6: (130 commits)
        video: bfin_adv7393fb: Fix cleanup code
        video: exynos_dp: reduce delay time when configuring video setting
        video: exynos_dp: move sw reset prioir to enabling sw defined function
        video: exynos_dp: use devm_ functions
        fb: handle NULL pointers in framebuffer release
        OMAPDSS: HDMI: OMAP4: Update IRQ flags for the HPD IRQ request
        OMAPDSS: Apply VENC timings even if panel is disabled
        OMAPDSS: VENC/DISPC: Delay dividing Y resolution for managers connected to VENC
        OMAPDSS: DISPC: Support rotation through TILER
        OMAPDSS: VRFB: remove compiler warnings when CONFIG_BUG=n
        OMAPFB: remove compiler warnings when CONFIG_BUG=n
        OMAPDSS: remove compiler warnings when CONFIG_BUG=n
        OMAPDSS: DISPC: fix usage of dispc_ovl_set_accu_uv
        OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays
        OMAPDSS: DSI: Support command mode interleaving during video mode blanking periods
        OMAPDSS: DISPC: Update Accumulator configuration for chroma plane
        drivers/video: fsl-diu-fb: don't initialize the THRESHOLDS registers
        video: exynos mipi dsi: support reverse panel type
        video: exynos mipi dsi: Properly interpret the interrupt source flags
        video: exynos mipi dsi: Avoid races in probe()
        ...
      804ce986
    • Linus Torvalds's avatar
      Merge tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd · f5e7e844
      Linus Torvalds authored
      Pull mtd update from David Woodhouse:
       - More robust parsing especially of xattr data in JFFS2
       - Updates to mxc_nand and gpmi drivers to support new boards and device tree
       - Improve consistency of information about ECC strength in NAND devices
       - Clean up partition handling of plat_nand
       - Support NAND drivers without dedicated access to OOB area
       - BCH hardware ECC support for OMAP
       - Other fixes and cleanups, and a few new device IDs
      
      Fixed trivial conflict in drivers/mtd/nand/gpmi-nand/gpmi-nand.c due to
      added include files next to each other.
      
      * tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd: (75 commits)
        mtd: mxc_nand: move ecc strengh setup before nand_scan_tail
        mtd: block2mtd: fix recursive call of mtd_writev
        mtd: gpmi-nand: define ecc.strength
        mtd: of_parts: fix breakage in Kconfig
        mtd: nand: fix scan_read_raw_oob
        mtd: docg3 fix in-middle of blocks reads
        mtd: cfi_cmdset_0002: Slight cleanup of fixup messages
        mtd: add fixup for S29NS512P NOR flash.
        jffs2: allow to complete xattr integrity check on first GC scan
        jffs2: allow to discriminate between recoverable and non-recoverable errors
        mtd: nand: omap: add support for hardware BCH ecc
        ARM: OMAP3: gpmc: add BCH ecc api and modes
        mtd: nand: check the return code of 'read_oob/read_oob_raw'
        mtd: nand: remove 'sndcmd' parameter of 'read_oob/read_oob_raw'
        mtd: m25p80: Add support for Winbond W25Q80BW
        jffs2: get rid of jffs2_sync_super
        jffs2: remove unnecessary GC pass on sync
        jffs2: remove unnecessary GC pass on umount
        jffs2: remove lock_super
        mtd: gpmi: add gpmi support for mx6q
        ...
      f5e7e844
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · 48445159
      Linus Torvalds authored
      Pull x86 platform driver updates from Matthew Garrett:
       "Some significant improvements for the Sony driver on newer machines,
        but other than that mostly just minor fixes and a patch to remove the
        broken rfkill code from the Dell driver."
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86: (35 commits)
        apple-gmux: Fix up the suspend/resume patch
        dell-laptop: Remove rfkill code
        toshiba_acpi: Fix mis-merge
        dell-laptop: Add touchpad led support for Dell V3450
        acer-wmi: add 3 laptops to video backlight vendor mode quirk table
        sony-laptop: add touchpad enable/disable function
        sony-laptop: add missing Fn key combos for 0x100 handlers
        sony-laptop: add support for more WWAN modems
        sony-laptop: new keyboard backlight handle
        sony-laptop: add high speed battery charging function
        sony-laptop: support automatic resume on lid open
        sony-laptop: adjust error handling in finding SNC handles
        sony-laptop: add thermal profiles support
        sony-laptop: support battery care functions
        sony-laptop: additional debug statements
        sony-laptop: improve SNC initialization and acpi notify callback code
        sony-laptop: use kstrtoul to parse sysfs values
        sony-laptop: generalise ACPI calls into SNC functions
        sony-laptop: fix return path when no ACPI buffer is allocated
        sony-laptop: use soft rfkill status stored in hw
        ...
      48445159
    • Linus Torvalds's avatar
      Merge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux · af4f8ba3
      Linus Torvalds authored
      Pull slab updates from Pekka Enberg:
       "Mainly a bunch of SLUB fixes from Joonsoo Kim"
      
      * 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
        slub: use __SetPageSlab function to set PG_slab flag
        slub: fix a memory leak in get_partial_node()
        slub: remove unused argument of init_kmem_cache_node()
        slub: fix a possible memory leak
        Documentations: Fix slabinfo.c directory in vm/slub.txt
        slub: fix incorrect return type of get_any_partial()
      af4f8ba3
    • H. Peter Anvin's avatar
    • Linus Torvalds's avatar
      Merge branch 'ux500/hickup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · efff0471
      Linus Torvalds authored
      Pull arm fixes for ux500 mismerge mishap from Arnd Bergmann:
       "The device tree conversion for arm/ux500 in 3.5 turns out to be
        incomplete because of a mismerge done by Linus Walleij that I failed
        to notice early enough and that Lee Jones as the original author of
        those patches did not manage to fix during the -next cycle.  While we
        originally to get a much larger set of ux500 device tree enablement
        patches merged, this did not happen in time.
      
        After some discussion at Linaro Connect conference this week, Lee has
        been able to do damage control and provide a series to put the broken
        platform back into usable shape for both DT and non-DT based booting.
      
        This series has not been part of linux-next and is based on top of the
        current state of the upstream kernel rather than an -rc, but this is
        the best we could manage given the earlier breakage."
      
      * 'ux500/hickup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: ux500: Enable probing of pinctrl through Device Tree
        ARM: ux500: Add support for ab8500 regulators into the Device Tree
        ARM: ux500: Provide regulator support for SMSC911x via Device Tree
        ARM: ux500: Allow PRCMU regulator to be probed during a DT enabled boot
        ARM: ux500: Apply db8500-prcmu regulator information to db8500 Device Tree
        ARM: ux500: Only initialise STE's UIBs on boards which support them
        ARM: ux500: Disable platform setup of the ab8500 when DT is enabled
        ARM: ux500: Use correct format for dynamic IRQ assignment
        ARM: ux500: Re-enable SMSC911x platform code registration during non-DT boots
        ARM: ux500: PRCMU related configuration and layout corrections for Device Tree
        ARM: ux500: Remove DB8500 PRCMU platform registration when DT is enabled
        ARM: ux500: Disable SMSC911x platform code registration when DT is enabled
        ARM: ux500: New DT:ed u8500_init_devices for one-by-one device enablement
        ARM: ux500: New DT:ed snowball_platform_devs for one-by-one device enablement
        pinctrl-nomadik: Allow Device Tree driver probing
      efff0471
    • Devendra Naga's avatar
      r8169: call netif_napi_del at errpaths and at driver unload · ad1be8d3
      Devendra Naga authored
      when register_netdev fails, the init'ed NAPIs by netif_napi_add must be
      deleted with netif_napi_del, and also when driver unloads, it should
      delete the NAPI before unregistering netdevice using unregister_netdev.
      Signed-off-by: default avatarDevendra Naga <devendra.aaru@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ad1be8d3
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 3ded7acf
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A bunch of fixes:
         - vmware memory corruption
         - ttm spinlock balance
         - cirrus/mgag200 work in the presence of efifb
        and finally Alex and Jerome managed to track down a magic set of bits
        that on certain rv740 and evergreen cards allow the correct use of the
        complete set of render backends, this makes the cards operate
        correctly in a number of scenarios we had issues in before, it also
        manages to boost speed on benchmarks my large amounts on these
        specific gpus."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/edid: Make the header fixup threshold tunable
        drm/radeon: fix regression in UMS CS ioctl
        drm/vmwgfx: Fix nasty write past alloced memory area
        drm/ttm: Fix spinlock imbalance
        drm/radeon: fixup tiling group size and backendmap on r6xx-r9xx (v4)
        drm/radeon: fix HD6790, HD6570 backend programming
        drm/radeon: properly program gart on rv740, juniper, cypress, barts, hemlock
        drm/radeon: fix bank information in tiling config
        drm/mgag200: kick off conflicting framebuffers earlier.
        drm/cirrus: kick out conflicting framebuffers earlier
        cirrus: avoid crash if driver fails to load
      3ded7acf
    • Linus Torvalds's avatar
      Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 37b22400
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Just a few trivial driver-specific fixes."
      
      * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hdspm - Work around broken DDS value on PCI RME MADI
        ALSA: usb-audio: fix rate_list memory leak
        ASoC: fsi: bugfix: ensure dma is terminated
        ASoC: fsi: bugfix: correct dma area
        ASoC: fsi: bugfix: enable master clock control on DMA stream
        ASoC: imx-ssi: Use clk_prepare_enable/clk_disable_unprepare
      37b22400
    • H.J. Lu's avatar
      x86, x32, ptrace: Remove PTRACE_ARCH_PRCTL for x32 · bad1a753
      H.J. Lu authored
      When I added x32 ptrace to 3.4 kernel, I also include PTRACE_ARCH_PRCTL
      support for x32 GDB  For ARCH_GET_FS/GS, it takes a pointer to int64.  But
      at user level, ARCH_GET_FS/GS takes a pointer to int32.  So I have to add
      x32 ptrace to glibc to handle it with a temporary int64 passed to kernel and
      copy it back to GDB as int32.  Roland suggested that PTRACE_ARCH_PRCTL
      is obsolete and x32 GDB should use fs_base and gs_base fields of
      user_regs_struct instead.
      
      Accordingly, remove PTRACE_ARCH_PRCTL completely from the x32 code to
      avoid possible memory overrun when pointer to int32 is passed to
      kernel.
      
      Link: http://lkml.kernel.org/r/CAMe9rOpDzHfS7NH7m1vmD9QRw8SSj4Sc%2BaNOgcWm_WJME2eRsQ@mail.gmail.comSigned-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Cc: <stable@vger.kernel.org> v3.4
      bad1a753
    • Sascha Hauer's avatar
      mtd: mxc_nand: move ecc strengh setup before nand_scan_tail · 4a43faf5
      Sascha Hauer authored
      Since commit 6a918bad, the mxc_nand driver
      fails with:
      
      Driver must set ecc.strength when using hardware ECC
      
      This is because nand_scan_tail checks for correct ecc strength
      settings, so we must set them up before nand_scan_tail.
      Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
      Cc: stable@vger.kernel.org [3.4+]
      Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      4a43faf5