14 Oct, 2013

2 commits

  • Without the "clock-frequency" property in arch timer node, could able
    to see the below crash dump.

    [] (unwind_backtrace+0x0/0xf4) from [] (show_stack+0x10/0x14)
    [] (show_stack+0x10/0x14) from [] (dump_stack+0x7c/0xb0)
    [] (dump_stack+0x7c/0xb0) from [] (Ldiv0_64+0x8/0x18)
    [] (Ldiv0_64+0x8/0x18) from [] (clockevents_config.part.2+0x1c/0x74)
    [] (clockevents_config.part.2+0x1c/0x74) from [] (clockevents_config_and_register+0x20/0x2c)
    [] (clockevents_config_and_register+0x20/0x2c) from [] (arch_timer_setup+0xa8/0x134)
    [] (arch_timer_setup+0xa8/0x134) from [] (arch_timer_init+0x1f4/0x24c)
    [] (arch_timer_init+0x1f4/0x24c) from [] (clocksource_of_init+0x34/0x58)
    [] (clocksource_of_init+0x34/0x58) from [] (time_init+0x20/0x2c)
    [] (time_init+0x20/0x2c) from [] (start_kernel+0x1e0/0x39c)

    THis is because the Exynos u-boot, for example on the Chromebooks, doesn't set
    up the CNTFRQ register as expected by arch_timer. Instead, we have to specify
    the frequency in the device tree like this.

    Signed-off-by: Yuvaraj Kumar C D
    [olof: Changed subject, added comment, elaborated on commit message]
    Signed-off-by: Olof Johansson

    Yuvaraj Kumar C D
     
  • …kernel/git/tmlind/linux-omap into fixes

    From Tony Lindgren:

    Few fixes for omap3 related hangs and errors that people have
    noticed now that people are actually using the device tree
    based booting for omap3.

    Also one regression fix for timer compile for dra7xx when
    omap5 is not selected, and a LED regression fix for n900.

    * tag 'fixes-against-v3.12-rc3-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config
    ARM: mach-omap2: board-generic: fix undefined symbol
    ARM: dts: Fix pinctrl mask for omap3
    ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree
    ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

09 Oct, 2013

4 commits

  • File drivers/leds/leds-lp55xx-common.c refuse to change led_current sysfs
    attribute if value is higher than max_current specified in board file. By default
    global C variables are zero, so changing always failed. This patch adding missing
    max_current and setting it to max safe value 100 (10 mA).

    It is unclear which commit exactly caused this regression as the lp5523
    driver was broken and was hiding the platform data breakage. Now
    the driver is fixed so this should be fixed as well.

    Signed-off-by: Pali Rohár
    Signed-off-by: Joerg Reisenweber
    [tony@atomide.com: updated comments to describe regression]
    Signed-off-by: Tony Lindgren

    Pali Rohár
     
  • Since dra7 reuses the function 'omap5_realtime_timer_init' in
    arch/arm/mach-omap2/board-generic.c as timer init function, it has to be
    built for this SoC as well.

    Signed-off-by: Simon Barth
    Signed-off-by: Tony Lindgren

    Simon Barth
     
  • The wake-up interrupt bit is available on omap3/4/5 processors
    unlike what we claim. Without fixing it we cannot use it on
    omap3 and the system configured for wake-up events will just
    hang on wake-up.

    Cc: Grygorii Strashko
    Cc: Benoît Cousson
    Cc: devicetree@vger.kernel.org
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • SoC family definitions at the moment are reactive to board needs
    as a result, beagle-xm would matchup with ti,omap3 which invokes
    omap3430_init_early instead of omap3630_init_early. Obviously, this is
    the wrong behavior.

    With clock node dts conversion, we get the following warnings before
    system hangs as a result and 3630 based platforms fails to boot
    (uart4 clocks are only present in OMAP3630 and not present in
    OMAP3430):

    ...
    omap_hwmod: uart4: cannot clk_get main_clk uart4_fck
    omap_hwmod: uart4: cannot _init_clocks

    WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2434
    _init+0x6c/0x80()
    omap_hwmod: uart4: couldn't init clocks
    ...

    WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2126
    _enable+0x254/0x280()
    omap_hwmod: timer12: enabled state can only be entered from
    initialized, idle, or disabled state
    ...

    WARNING: CPU: 0 PID: 46 at arch/arm/mach-omap2/omap_hwmod.c:2224
    _idle+0xd4/0xf8()
    omap_hwmod: timer12: idle state can only be entered from enabled state

    WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2126
    _enable+0x254/0x280()
    omap_hwmod: uart4: enabled state can only be entered from
    initialized, idle, or disabled state

    So, add specific compatiblity for 3630 to allow match for Beagle-XM
    platform.

    Signed-off-by: Nishanth Menon
    [tony@atomide.com: left out ti,omap343x, updated comments]
    Signed-off-by: Tony Lindgren

    Nishanth Menon
     

07 Oct, 2013

4 commits

  • Linus Torvalds
     
  • Modify the code to use current_euid(), and in_egroup_p, as in done
    in fs/proc/proc_sysctl.c:test_perm()

    Cc: stable@vger.kernel.org
    Reviewed-by: Eric Sandeen
    Reported-by: Eric Sandeen
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "Here are the outstanding target fixes queued up for v3.12-rc4 code.

    The highlights include:

    - Make vhost/scsi tag percpu_ida_alloc() use GFP_ATOMIC
    - Allow sess_cmd_map allocation failure fallback to use vzalloc
    - Fix COMPARE_AND_WRITE se_cmd->data_length bug with FILEIO backends
    - Fixes for COMPARE_AND_WRITE callback recursive failure OOPs + non
    zero scsi_status bug
    - Make iscsi-target do acknowledgement tag release from RX context
    - Setup iscsi-target with extra (cmdsn_depth / 2) percpu_ida tags

    Also included is a iscsi-target patch CC'ed for v3.10+ that avoids
    legacy wait_for_task=true release during fast-past StatSN
    acknowledgement, and two other SRP target related patches that address
    long-standing issues that are CC'ed for v3.3+.

    Extra thanks to Thomas Glanzmann for his testing feedback with
    COMPARE_AND_WRITE + EXTENDED_COPY VAAI logic"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    iscsi-target; Allow an extra tag_num / 2 number of percpu_ida tags
    iscsi-target: Perform release of acknowledged tags from RX context
    iscsi-target: Only perform wait_for_tasks when performing shutdown
    target: Fail on non zero scsi_status in compare_and_write_callback
    target: Fix recursive COMPARE_AND_WRITE callback failure
    target: Reset data_length for COMPARE_AND_WRITE to NoLB * block_size
    ib_srpt: always set response for task management
    target: Fall back to vzalloc upon ->sess_cmd_map kzalloc failure
    vhost/scsi: Use GFP_ATOMIC with percpu_ida_alloc for obtaining tag
    ib_srpt: Destroy cm_id before destroying QP.
    target: Fix xop->dbl assignment in target_xcopy_parse_segdesc_02

    Linus Torvalds
     
  • Pull slave-dmaengine fixes from Vinod Koul:
    "Here is the slave dmanegine fixes. We have the fix for deadlock issue
    on imx-dma by Michael and Josh's edma config fix along with author
    change"

    * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
    dmaengine: imx-dma: fix callback path in tasklet
    dmaengine: imx-dma: fix lockdep issue between irqhandler and tasklet
    dmaengine: imx-dma: fix slow path issue in prep_dma_cyclic
    dma/Kconfig: Make TI_EDMA select TI_PRIV_EDMA
    edma: Update author email address

    Linus Torvalds
     

06 Oct, 2013

5 commits

  • Pull btrfs fixes from Chris Mason:
    "This is a small collection of fixes, including a regression fix from
    Liu Bo that solves rare crashes with compression on.

    I've merged my for-linus up to 3.12-rc3 because the top commit is only
    meant for 3.12. The rest of the fixes are also available in my master
    branch on top of my last 3.11 based pull"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    btrfs: Fix crash due to not allocating integrity data for a bioset
    Btrfs: fix a use-after-free bug in btrfs_dev_replace_finishing
    Btrfs: eliminate races in worker stopping code
    Btrfs: fix crash of compressed writes
    Btrfs: fix transid verify errors when recovering log tree

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:
    "Two patches for the OMAP driver, dealing with setting up IRQs properly
    on the device tree boot path"

    * tag 'gpio-v3.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio/omap: auto-setup a GPIO when used as an IRQ
    gpio/omap: maintain GPIO and IRQ usage separately

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are none fixes for various USB driver problems. The majority are
    gadget/musb fixes, but there are some new device ids in here as well"

    * tag 'usb-3.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: chipidea: add Intel Clovertrail pci id
    usb: gadget: s3c-hsotg: fix can_write limit for non-periodic endpoints
    usb: gadget: f_fs: fix error handling
    usb: musb: dsps: do not bind to "musb-hdrc"
    USB: serial: option: Ignore card reader interface on Huawei E1750
    usb: musb: gadget: fix otg active status flag
    usb: phy: gpio-vbus: fix deferred probe from __init
    usb: gadget: pxa25x_udc: fix deferred probe from __init
    usb: musb: fix otg default state

    Linus Torvalds
     
  • Pull tty fixes from Greg KH:
    "Here are two tty driver fixes for 3.12-rc4.

    One fixes the reported regression in the n_tty code that a number of
    people found recently, and the other one fixes an issue with xen
    consoles that broke in 3.10"

    * tag 'tty-3.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    xen/hvc: allow xenboot console to be used again
    tty: Fix pty master read() after slave closes

    Linus Torvalds
     
  • Pull staging fixes from Greg KH:
    "Here are 4 tiny staging and iio driver fixes for 3.12-rc4. Nothing
    major, just some small fixes for reported issues"

    * tag 'staging-3.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: comedi: ni_65xx: (bug fix) confine insn_bits to one subdevice
    iio:magnetometer: Bugfix magnetometer default output registers
    iio: Remove debugfs entries in iio_device_unregister()
    iio: amplifiers: ad8366: Remove regulator_put

    Linus Torvalds
     

05 Oct, 2013

24 commits

  • When btrfs creates a bioset, we must also allocate the integrity data pool.
    Otherwise btrfs will crash when it tries to submit a bio to a checksumming
    disk:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
    IP: [] mempool_alloc+0x4a/0x150
    PGD 2305e4067 PUD 23063d067 PMD 0
    Oops: 0000 [#1] PREEMPT SMP
    Modules linked in: btrfs scsi_debug xfs ext4 jbd2 ext3 jbd mbcache
    sch_fq_codel eeprom lpc_ich mfd_core nfsd exportfs auth_rpcgss af_packet
    raid6_pq xor zlib_deflate libcrc32c [last unloaded: scsi_debug]
    CPU: 1 PID: 4486 Comm: mount Not tainted 3.12.0-rc1-mcsum #2
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    task: ffff8802451c9720 ti: ffff880230698000 task.ti: ffff880230698000
    RIP: 0010:[] [] mempool_alloc+0x4a/0x150
    RSP: 0018:ffff880230699688 EFLAGS: 00010286
    RAX: 0000000000000001 RBX: 0000000000000000 RCX: 00000000005f8445
    RDX: 0000000000000001 RSI: 0000000000000010 RDI: 0000000000000000
    RBP: ffff8802306996f8 R08: 0000000000011200 R09: 0000000000000008
    R10: 0000000000000020 R11: ffff88009d6e8000 R12: 0000000000011210
    R13: 0000000000000030 R14: ffff8802306996b8 R15: ffff8802451c9720
    FS: 00007f25b8a16800(0000) GS:ffff88024fc80000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000018 CR3: 0000000230576000 CR4: 00000000000007e0
    Stack:
    ffff8802451c9720 0000000000000002 ffffffff81a97100 0000000000281250
    ffffffff81a96480 ffff88024fc99150 ffff880228d18200 0000000000000000
    0000000000000000 0000000000000040 ffff880230e8c2e8 ffff8802459dc900
    Call Trace:
    [] bio_integrity_alloc+0x48/0x1b0
    [] bio_integrity_prep+0xac/0x360
    [] ? mempool_alloc+0x58/0x150
    [] ? alloc_extent_state+0x31/0x110 [btrfs]
    [] blk_queue_bio+0x1c9/0x460
    [] generic_make_request+0xca/0x100
    [] submit_bio+0x79/0x160
    [] btrfs_map_bio+0x48e/0x5b0 [btrfs]
    [] btree_submit_bio_hook+0xda/0x110 [btrfs]
    [] submit_one_bio+0x6a/0xa0 [btrfs]
    [] read_extent_buffer_pages+0x250/0x310 [btrfs]
    [] ? __radix_tree_preload+0x66/0xf0
    [] ? radix_tree_insert+0x95/0x260
    [] btree_read_extent_buffer_pages.constprop.128+0xb6/0x120
    [btrfs]
    [] read_tree_block+0x3a/0x60 [btrfs]
    [] open_ctree+0x139d/0x2030 [btrfs]
    [] btrfs_mount+0x53a/0x7d0 [btrfs]
    [] ? pcpu_alloc+0x8eb/0x9f0
    [] ? __kmalloc_track_caller+0x35/0x1e0
    [] mount_fs+0x20/0xd0
    [] vfs_kern_mount+0x76/0x120
    [] do_mount+0x200/0xa40
    [] ? strndup_user+0x5b/0x80
    [] SyS_mount+0x90/0xe0
    [] system_call_fastpath+0x1a/0x1f
    Code: 4c 8d 75 a8 4c 89 6d e8 45 89 e0 4c 8d 6f 30 48 89 5d d8 41 83 e0 af 48
    89 fb 49 83 c6 18 4c 89 7d f8 65 4c 8b 3c 25 c0 b8 00 00 8b 73 18 44 89 c7
    44 89 45 98 ff 53 20 48 85 c0 48 89 c2 74
    RIP [] mempool_alloc+0x4a/0x150
    RSP
    CR2: 0000000000000018
    ---[ end trace 7a96042017ed21e2 ]---

    Signed-off-by: Darrick J. Wong
    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Darrick J. Wong
     
  • Chris Mason
     
  • Pull CIFS fixes from Steve French:
    "Small set of cifs fixes. Most important is Jeff's fix that works
    around disconnection problems which can be caused by simultaneous use
    of user space tools (starting a long running smbclient backup then
    doing a cifs kernel mount) or multiple cifs mounts through a NAT, and
    Jim's fix to deal with reexport of cifs share.

    I expect to send two more cifs fixes next week (being tested now) -
    fixes to address an SMB2 unmount hang when server dies and a fix for
    cifs symlink handling of Windows "NFS" symlinks"

    * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
    [CIFS] update cifs.ko version
    [CIFS] Remove ext2 flags that have been moved to fs.h
    [CIFS] Provide sane values for nlink
    cifs: stop trying to use virtual circuits
    CIFS: FS-Cache: Uncache unread pages in cifs_readpages() before freeing them

    Linus Torvalds
     
  • Pull PCI fix from Bjorn Helgaas:
    "We merged what was intended to be an MMCONFIG cleanup, but in fact,
    for systems without _CBA (which is almost everything), it broke
    extended config space for domain 0 and it broke all config space for
    other domains.

    This reverts the change"

    * tag 'pci-v3.12-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    Revert "x86/PCI: MMCONFIG: Check earlier for MMCONFIG region at address zero"

    Linus Torvalds
     
  • This reverts commit 07f9b61c3915e8eb156cb4461b3946736356ad02.

    07f9b61c was intended to be a cleanup that didn't change anything, but in
    fact, for systems without _CBA (which is almost everything), it broke
    extended config space for domain 0 and all config space for other domains.

    Reference: http://lkml.kernel.org/r/20131004011806.GE20450@dangermouse.emea.sgi.com
    Reported-by: Hedi Berriche
    Signed-off-by: Bjorn Helgaas

    Bjorn Helgaas
     
  • Pull ACPI and power management fixes from Rafael Wysocki:

    - The resume part of user space driven hibernation (s2disk) is now
    broken after the change that moved the creation of memory bitmaps to
    after the freezing of tasks, because I forgot that the resume utility
    loaded the image before freezing tasks and needed the bitmaps for
    that. The fix adds special handling for that case.

    - One of recent commits changed the export of acpi_bus_get_device() to
    EXPORT_SYMBOL_GPL(), which was technically correct but broke existing
    binary modules using that function including one in particularly
    widespread use. Change it back to EXPORT_SYMBOL().

    - The intel_pstate driver sometimes fails to disable turbo if its
    no_turbo sysfs attribute is set. Fix from Srinivas Pandruvada.

    - One of recent cpufreq fixes forgot to update a check in cpufreq-cpu0
    which still (incorrectly) treats non-NULL as non-error. Fix from
    Philipp Zabel.

    - The SPEAr cpufreq driver uses a wrong variable type in one place
    preventing it from catching errors returned by one of the functions
    called by it. Fix from Sachin Kamat.

    * tag 'pm+acpi-3.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI: Use EXPORT_SYMBOL() for acpi_bus_get_device()
    intel_pstate: fix no_turbo
    cpufreq: cpufreq-cpu0: NULL is a valid regulator, part 2
    cpufreq: SPEAr: Fix incorrect variable type
    PM / hibernate: Fix user space driven resume regression

    Linus Torvalds
     
  • Pull xfs bugfixes from Ben Myers:
    "There are lockdep annotations for project quotas, a fix for dirent
    dtype support on v4 filesystems, a fix for a memory leak in recovery,
    and a fix for the build error that resulted from it. D'oh"

    * tag 'xfs-for-linus-v3.12-rc4' of git://oss.sgi.com/xfs/xfs:
    xfs: Use kmem_free() instead of free()
    xfs: fix memory leak in xlog_recover_add_to_trans
    xfs: dirent dtype presence is dependent on directory magic numbers
    xfs: lockdep needs to know about 3 dquot-deep nesting

    Linus Torvalds
     
  • Now avc_audit() has no more users with that parameter. Remove it.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • .. so get rid of it. The only indirect users were all the
    avc_has_perm() callers which just expanded to have a zero flags
    argument.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • free_device rcu callback, scheduled from btrfs_rm_dev_replace_srcdev,
    can be processed before btrfs_scratch_superblock is called, which would
    result in a use-after-free on btrfs_device contents. Fix this by
    zeroing the superblock before the rcu callback is registered.

    Cc: Stefan Behrens
    Signed-off-by: Ilya Dryomov
    Signed-off-by: Josef Bacik

    Ilya Dryomov
     
  • The current implementation of worker threads in Btrfs has races in
    worker stopping code, which cause all kinds of panics and lockups when
    running btrfs/011 xfstest in a loop. The problem is that
    btrfs_stop_workers is unsynchronized with respect to check_idle_worker,
    check_busy_worker and __btrfs_start_workers.

    E.g., check_idle_worker race flow:

    btrfs_stop_workers(): check_idle_worker(aworker):
    - grabs the lock
    - splices the idle list into the
    working list
    - removes the first worker from the
    working list
    - releases the lock to wait for
    its kthread's completion
    - grabs the lock
    - if aworker is on the working list,
    moves aworker from the working list
    to the idle list
    - releases the lock
    - grabs the lock
    - puts the worker
    - removes the second worker from the
    working list
    ......
    btrfs_stop_workers returns, aworker is on the idle list
    FS is umounted, memory is freed
    ......
    aworker is waken up, fireworks ensue

    With this applied, I wasn't able to trigger the problem in 48 hours,
    whereas previously I could reliably reproduce at least one of these
    races within an hour.

    Reported-by: David Sterba
    Signed-off-by: Ilya Dryomov
    Signed-off-by: Josef Bacik

    Ilya Dryomov
     
  • The crash[1] is found by xfstests/generic/208 with "-o compress",
    it's not reproduced everytime, but it does panic.

    The bug is quite interesting, it's actually introduced by a recent commit
    (573aecafca1cf7a974231b759197a1aebcf39c2a,
    Btrfs: actually limit the size of delalloc range).

    Btrfs implements delay allocation, so during writeback, we
    (1) get a page A and lock it
    (2) search the state tree for delalloc bytes and lock all pages within the range
    (3) process the delalloc range, including find disk space and create
    ordered extent and so on.
    (4) submit the page A.

    It runs well in normal cases, but if we're in a racy case, eg.
    buffered compressed writes and aio-dio writes,
    sometimes we may fail to lock all pages in the 'delalloc' range,
    in which case, we need to fall back to search the state tree again with
    a smaller range limit(max_bytes = PAGE_CACHE_SIZE - offset).

    The mentioned commit has a side effect, that is, in the fallback case,
    we can find delalloc bytes before the index of the page we already have locked,
    so we're in the case of (delalloc_end 0).

    This ends with not locking delalloc pages but making ->writepage still
    process them, and the crash happens.

    This fixes it by just thinking that we find nothing and returning to caller
    as the caller knows how to deal with it properly.

    [1]:
    ------------[ cut here ]------------
    kernel BUG at mm/page-writeback.c:2170!
    [...]
    CPU: 2 PID: 11755 Comm: btrfs-delalloc- Tainted: G O 3.11.0+ #8
    [...]
    RIP: 0010:[] [] clear_page_dirty_for_io+0x1e/0x83
    [...]
    [ 4934.248731] Stack:
    [ 4934.248731] ffff8801477e5dc8 ffffea00049b9f00 ffff8801869f9ce8 ffffffffa02b841a
    [ 4934.248731] 0000000000000000 0000000000000000 0000000000000fff 0000000000000620
    [ 4934.248731] ffff88018db59c78 ffffea0005da8d40 ffffffffa02ff860 00000001810016c0
    [ 4934.248731] Call Trace:
    [ 4934.248731] [] extent_range_clear_dirty_for_io+0xcf/0xf5 [btrfs]
    [ 4934.248731] [] compress_file_range+0x1dc/0x4cb [btrfs]
    [ 4934.248731] [] ? detach_if_pending+0x22/0x4b
    [ 4934.248731] [] async_cow_start+0x35/0x53 [btrfs]
    [ 4934.248731] [] worker_loop+0x14b/0x48c [btrfs]
    [ 4934.248731] [] ? btrfs_queue_worker+0x25c/0x25c [btrfs]
    [ 4934.248731] [] kthread+0x8d/0x95
    [ 4934.248731] [] ? kthread_freezable_should_stop+0x43/0x43
    [ 4934.248731] [] ret_from_fork+0x7c/0xb0
    [ 4934.248731] [] ? kthread_freezable_should_stop+0x43/0x43
    [ 4934.248731] Code: ff 85 c0 0f 94 c0 0f b6 c0 59 5b 5d c3 0f 1f 44 00 00 55 48 89 e5 41 54 53 48 89 fb e8 2c de 00 00 49 89 c4 48 8b 03 a8 01 75 02 0b 4d 85 e4 74 52 49 8b 84 24 80 00 00 00 f6 40 20 01 75 44
    [ 4934.248731] RIP [] clear_page_dirty_for_io+0x1e/0x83
    [ 4934.248731] RSP
    [ 4934.280307] ---[ end trace 36f06d3f8750236a ]---

    Signed-off-by: Liu Bo
    Signed-off-by: Josef Bacik

    Liu Bo
     
  • If we crash with a log, remount and recover that log, and then crash before we
    can commit another transaction we will get transid verify errors on the next
    mount. This is because we were not zero'ing out the log when we committed the
    transaction after recovery. This is ok as long as we commit another transaction
    at some point in the future, but if you abort or something else goes wrong you
    can end up in this weird state because the recovery stuff says that the tree log
    should have a generation+1 of the super generation, which won't be the case of
    the transaction that was started for recovery. Fix this by removing the check
    and _always_ zero out the log portion of the super when we commit a transaction.
    This fixes the transid verify issues I was seeing with my force errors tests.
    Thanks,

    Signed-off-by: Josef Bacik

    Josef Bacik
     
  • Every single user passes in '0'. I think we had non-zero users back in
    some stone age when selinux_inode_permission() was implemented in terms
    of inode_has_perm(), but that complicated case got split up into a
    totally separate code-path so that we could optimize the much simpler
    special cases.

    See commit 2e33405785d3 ("SELinux: delay initialization of audit data in
    selinux_inode_permission") for example.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This fixes a build failure caused by calling the free() function which
    does not exist in the Linux kernel.

    Signed-off-by: Thierry Reding
    Reviewed-by: Mark Tinguely
    Signed-off-by: Ben Myers

    (cherry picked from commit aaaae98022efa4f3c31042f1fdf9e7a0c5f04663)

    Thierry Reding
     
  • Free the memory in error path of xlog_recover_add_to_trans().
    Normally this memory is freed in recovery pass2, but is leaked
    in the error path.

    Signed-off-by: Mark Tinguely
    Reviewed-by: Eric Sandeen
    Signed-off-by: Ben Myers

    (cherry picked from commit 519ccb81ac1c8e3e4eed294acf93be00b43dcad6)

    tinguely@sgi.com
     
  • The determination of whether a directory entry contains a dtype
    field originally was dependent on the filesystem having CRCs
    enabled. This meant that the format for dtype beign enabled could be
    determined by checking the directory block magic number rather than
    doing a feature bit check. This was useful in that it meant that we
    didn't need to pass a struct xfs_mount around to functions that
    were already supplied with a directory block header.

    Unfortunately, the introduction of dtype fields into the v4
    structure via a feature bit meant this "use the directory block
    magic number" method of discriminating the dirent entry sizes is
    broken. Hence we need to convert the places that use magic number
    checks to use feature bit checks so that they work correctly and not
    by chance.

    The current code works on v4 filesystems only because the dirent
    size roundup covers the extra byte needed by the dtype field in the
    places where this problem occurs.

    Signed-off-by: Dave Chinner
    Reviewed-by: Ben Myers
    Signed-off-by: Ben Myers

    (cherry picked from commit 367993e7c6428cb7617ab7653d61dca54e2fdede)

    Dave Chinner
     
  • Michael Semon reported that xfs/299 generated this lockdep warning:

    =============================================
    [ INFO: possible recursive locking detected ]
    3.12.0-rc2+ #2 Not tainted
    ---------------------------------------------
    touch/21072 is trying to acquire lock:
    (&xfs_dquot_other_class){+.+...}, at: [] xfs_trans_dqlockedjoin+0x57/0x64

    but task is already holding lock:
    (&xfs_dquot_other_class){+.+...}, at: [] xfs_trans_dqlockedjoin+0x57/0x64

    other info that might help us debug this:
    Possible unsafe locking scenario:

    CPU0
    ----
    lock(&xfs_dquot_other_class);
    lock(&xfs_dquot_other_class);

    *** DEADLOCK ***

    May be due to missing lock nesting notation

    7 locks held by touch/21072:
    #0: (sb_writers#10){++++.+}, at: [] mnt_want_write+0x1e/0x3e
    #1: (&type->i_mutex_dir_key#4){+.+.+.}, at: [] do_last+0x245/0xe40
    #2: (sb_internal#2){++++.+}, at: [] xfs_trans_alloc+0x1f/0x35
    #3: (&(&ip->i_lock)->mr_lock/1){+.+...}, at: [] xfs_ilock+0x100/0x1f1
    #4: (&(&ip->i_lock)->mr_lock){++++-.}, at: [] xfs_ilock_nowait+0x105/0x22f
    #5: (&dqp->q_qlock){+.+...}, at: [] xfs_trans_dqlockedjoin+0x57/0x64
    #6: (&xfs_dquot_other_class){+.+...}, at: [] xfs_trans_dqlockedjoin+0x57/0x64

    The lockdep annotation for dquot lock nesting only understands
    locking for user and "other" dquots, not user, group and quota
    dquots. Fix the annotations to match the locking heirarchy we now
    have.

    Reported-by: Michael L. Semon
    Signed-off-by: Dave Chinner
    Reviewed-by: Ben Myers
    Signed-off-by: Ben Myers

    (cherry picked from commit f112a049712a5c07de25d511c3c6587a2b1a015e)

    Dave Chinner
     
  • Pull fuse bugfixes from Miklos Szeredi:
    "This contains two more fixes by Maxim for writeback/truncate races and
    fixes for RCU walk in fuse_dentry_revalidate()"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
    fuse: no RCU mode in fuse_access()
    fuse: readdirplus: fix RCU walk
    fuse: don't check_submounts_and_drop() in RCU walk
    fuse: fix fallocate vs. ftruncate race
    fuse: wait for writeback in fuse_file_fallocate()

    Linus Torvalds
     
  • Pull iommu fixes from Joerg Roedel:
    "A couple of fixes from the IOMMU side:

    - some small fixes for the new ARM-SMMU driver
    - a register offset correction for VT-d
    - add MAINTAINERS entry for drivers/iommu

    Overall no really big or intrusive changes"

    * tag 'iommu-fixes-v3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    x86/iommu: correct ICS register offset
    MAINTAINERS: add overall IOMMU section
    iommu/arm-smmu: don't enable SMMU device until probing has completed
    iommu/arm-smmu: fix iommu_present() test in init
    iommu/arm-smmu: fix a signedness bug

    Linus Torvalds
     
  • Pull ARM64 fixes/updates from Catalin Marinas:
    - Bug-fixes (get_user/put_user, incorrect register width for ASID,
    FPSIMD initialisation)
    - Kconfig clean-up
    - defconfig update

    * tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
    arm64: Remove duplicate DEBUG_STACK_USAGE config
    arm64: include VIRTIO_{MMIO,BLK} in defconfig
    arm64: include EXT4 in defconfig
    arm64: fix possible invalid FPSIMD initialization state
    arm64: use correct register width when retrieving ASID
    arm64: avoid multiple evaluation of ptr in get_user/put_user()

    Linus Torvalds
     
  • Pull MIPS fixes from Ralf Baechle:
    "Two small fixes for 3.12 only this week. I have a few more fixes
    pending but those are conceptually more complex so will have to wait
    for a bit longer"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: Fix forgotten preempt_enable() when CPU has inclusive pcaches
    MIPS: Alchemy: MTX-1: fix incorrect placement of __initdata tag

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "Two simplefb fixes"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/simplefb: Mark framebuffer mem-resources as IORESOURCE_BUSY to avoid bootup warning
    x86/simplefb: Fix overflow causing bogus fall-back

    Linus Torvalds
     
  • Pull irq fix from Ingo Molnar:
    "Frederic's minimal fix for hardirq/softirq nesting crashes"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irq: Force hardirq exit's softirq processing on its own stack

    Linus Torvalds
     

04 Oct, 2013

1 commit

  • We need to free the ld_active list head before jumping into the callback
    routine. Otherwise the callback could run into issue_pending and change
    our ld_active list head we just going to free. This will run the channel
    list into an currupted and undefined state.

    Signed-off-by: Michael Grzeschik
    Signed-off-by: Vinod Koul

    Michael Grzeschik