02 May, 2016

4 commits

  • The PNPBIOS driver requires preprocessor defines (located in
    include/asm/segment.h) only declared if the architecture is set to
    X86_32. If the architecture is set to X86_64, the PNPBIOS driver will
    not build properly. The X86 dependecy for the PNPBIOS configuration
    option is changed to an explicit X86_32 dependency in order to prevent
    an attempt to build for an unsupported architecture.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: William Breathitt Gray
    Signed-off-by: Greg Kroah-Hartman

    William Breathitt Gray
     
  • The introduction of the ISA_BUS option blocks the compilation of ISA
    drivers on non-x86 platforms. The ISA_BUS configuration option should
    not be necessary if the X86_32 dependency can be decoupled from the ISA
    configuration option. This patch both removes the ISA_BUS configuration
    option entirely and removes the X86_32 dependency from the ISA
    configuration option.

    Acked-by: Ingo Molnar
    Signed-off-by: William Breathitt Gray
    Signed-off-by: Greg Kroah-Hartman

    William Breathitt Gray
     
  • dev_dbg_ratelimited() is a macro that ignores its first argument when DEBUG is
    not set, which can lead to unused variable warnings:

    ethernet/mellanox/mlxsw/pci.c: In function 'mlxsw_pci_cqe_sdq_handle':
    ethernet/mellanox/mlxsw/pci.c:646:18: warning: unused variable 'pdev' [-Wunused-variable]
    ethernet/mellanox/mlxsw/pci.c: In function 'mlxsw_pci_cqe_rdq_handle':
    ethernet/mellanox/mlxsw/pci.c:671:18: warning: unused variable 'pdev' [-Wunused-variable]

    The macro already ensures that all its other arguments are silently
    ignored by the compiler without triggering a warning, through the
    use of the no_printk() macro, but the dev argument is not passed into
    that.

    This changes the definition to use the same trick as no_printk() with
    an if(0) that leads the compiler to not evaluate the side-effects but
    still see that 'dev' might not be unused.

    Signed-off-by: Arnd Bergmann
    Suggested-by: Andrew Lunn
    Fixes: 6f586e663e3b ("driver-core: Shut up dev_dbg_reatelimited() without DEBUG")
    Reviewed-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • the driver_data may be used for sanity check, it fails the
    probe() if driver_data is NULL after it is re-triggered.
    for example, soc_probe() in sound/soc/soc-core.c

    Signed-off-by: Yi Zhang
    Signed-off-by: Greg Kroah-Hartman

    Yi Zhang
     

01 May, 2016

1 commit

  • A fault in a user provided buffer may lead anywhere, and lockdep warns
    that we have a potential deadlock between the mm->mmap_sem and the
    kernfs file mutex:

    [ 82.811702] ======================================================
    [ 82.811705] [ INFO: possible circular locking dependency detected ]
    [ 82.811709] 4.5.0-rc4-gfxbench+ #1 Not tainted
    [ 82.811711] -------------------------------------------------------
    [ 82.811714] kms_setmode/5859 is trying to acquire lock:
    [ 82.811717] (&dev->struct_mutex){+.+.+.}, at: [] drm_gem_mmap+0x1a1/0x270
    [ 82.811731]
    but task is already holding lock:
    [ 82.811734] (&mm->mmap_sem){++++++}, at: [] vm_mmap_pgoff+0x44/0xa0
    [ 82.811745]
    which lock already depends on the new lock.

    [ 82.811749]
    the existing dependency chain (in reverse order) is:
    [ 82.811752]
    -> #3 (&mm->mmap_sem){++++++}:
    [ 82.811761] [] lock_acquire+0xc3/0x1d0
    [ 82.811766] [] __might_fault+0x75/0xa0
    [ 82.811771] [] kernfs_fop_write+0x8a/0x180
    [ 82.811787] [] __vfs_write+0x23/0xe0
    [ 82.811792] [] vfs_write+0xa4/0x190
    [ 82.811797] [] SyS_write+0x44/0xb0
    [ 82.811801] [] entry_SYSCALL_64_fastpath+0x16/0x73
    [ 82.811807]
    -> #2 (s_active#6){++++.+}:
    [ 82.811814] [] lock_acquire+0xc3/0x1d0
    [ 82.811819] [] __kernfs_remove+0x210/0x2f0
    [ 82.811823] [] kernfs_remove_by_name_ns+0x40/0xa0
    [ 82.811828] [] sysfs_remove_file_ns+0x10/0x20
    [ 82.811832] [] device_del+0x124/0x250
    [ 82.811837] [] device_unregister+0x19/0x60
    [ 82.811841] [] cpu_cache_sysfs_exit+0x51/0xb0
    [ 82.811846] [] cacheinfo_cpu_callback+0x38/0x70
    [ 82.811851] [] notifier_call_chain+0x39/0xa0
    [ 82.811856] [] __raw_notifier_call_chain+0x9/0x10
    [ 82.811860] [] cpu_notify+0x1e/0x40
    [ 82.811865] [] cpu_notify_nofail+0x9/0x20
    [ 82.811869] [] _cpu_down+0x233/0x340
    [ 82.811874] [] disable_nonboot_cpus+0xc9/0x350
    [ 82.811878] [] suspend_devices_and_enter+0x5a1/0xb50
    [ 82.811883] [] pm_suspend+0x543/0x8d0
    [ 82.811888] [] state_store+0x77/0xe0
    [ 82.811892] [] kobj_attr_store+0xf/0x20
    [ 82.811897] [] sysfs_kf_write+0x40/0x50
    [ 82.811902] [] kernfs_fop_write+0x13c/0x180
    [ 82.811906] [] __vfs_write+0x23/0xe0
    [ 82.811910] [] vfs_write+0xa4/0x190
    [ 82.811914] [] SyS_write+0x44/0xb0
    [ 82.811918] [] entry_SYSCALL_64_fastpath+0x16/0x73
    [ 82.811923]
    -> #1 (cpu_hotplug.lock){+.+.+.}:
    [ 82.811929] [] lock_acquire+0xc3/0x1d0
    [ 82.811933] [] mutex_lock_nested+0x62/0x3b0
    [ 82.811940] [] get_online_cpus+0x61/0x80
    [ 82.811944] [] stop_machine+0x1b/0xe0
    [ 82.811949] [] gen8_ggtt_insert_entries__BKL+0x2d/0x30 [i915]
    [ 82.812009] [] ggtt_bind_vma+0x46/0x70 [i915]
    [ 82.812045] [] i915_vma_bind+0x140/0x290 [i915]
    [ 82.812081] [] i915_gem_object_do_pin+0x899/0xb00 [i915]
    [ 82.812117] [] i915_gem_object_pin+0x35/0x40 [i915]
    [ 82.812154] [] intel_init_pipe_control+0xbe/0x210 [i915]
    [ 82.812192] [] intel_logical_rings_init+0xe2/0xde0 [i915]
    [ 82.812232] [] i915_gem_init+0xf3/0x130 [i915]
    [ 82.812278] [] i915_driver_load+0xf2d/0x1770 [i915]
    [ 82.812318] [] drm_dev_register+0xa4/0xb0
    [ 82.812323] [] drm_get_pci_dev+0xce/0x1e0
    [ 82.812328] [] i915_pci_probe+0x2f/0x50 [i915]
    [ 82.812360] [] pci_device_probe+0x87/0xf0
    [ 82.812366] [] driver_probe_device+0x229/0x450
    [ 82.812371] [] __driver_attach+0x83/0x90
    [ 82.812375] [] bus_for_each_dev+0x61/0xa0
    [ 82.812380] [] driver_attach+0x19/0x20
    [ 82.812384] [] bus_add_driver+0x1ef/0x290
    [ 82.812388] [] driver_register+0x5b/0xe0
    [ 82.812393] [] __pci_register_driver+0x5b/0x60
    [ 82.812398] [] drm_pci_init+0xd6/0x100
    [ 82.812402] [] 0xffffffffa027c094
    [ 82.812406] [] do_one_initcall+0xae/0x1d0
    [ 82.812412] [] do_init_module+0x5b/0x1cb
    [ 82.812417] [] load_module+0x1c20/0x2480
    [ 82.812422] [] SyS_finit_module+0x7e/0xa0
    [ 82.812428] [] entry_SYSCALL_64_fastpath+0x16/0x73
    [ 82.812433]
    -> #0 (&dev->struct_mutex){+.+.+.}:
    [ 82.812439] [] __lock_acquire+0x1fc9/0x20f0
    [ 82.812443] [] lock_acquire+0xc3/0x1d0
    [ 82.812456] [] drm_gem_mmap+0x1c7/0x270
    [ 82.812460] [] mmap_region+0x334/0x580
    [ 82.812466] [] do_mmap+0x364/0x410
    [ 82.812470] [] vm_mmap_pgoff+0x6d/0xa0
    [ 82.812474] [] SyS_mmap_pgoff+0x184/0x220
    [ 82.812479] [] SyS_mmap+0x1d/0x20
    [ 82.812484] [] entry_SYSCALL_64_fastpath+0x16/0x73
    [ 82.812489]
    other info that might help us debug this:

    [ 82.812493] Chain exists of:
    &dev->struct_mutex --> s_active#6 --> &mm->mmap_sem

    [ 82.812502] Possible unsafe locking scenario:

    [ 82.812506] CPU0 CPU1
    [ 82.812508] ---- ----
    [ 82.812510] lock(&mm->mmap_sem);
    [ 82.812514] lock(s_active#6);
    [ 82.812519] lock(&mm->mmap_sem);
    [ 82.812522] lock(&dev->struct_mutex);
    [ 82.812526]
    *** DEADLOCK ***

    [ 82.812531] 1 lock held by kms_setmode/5859:
    [ 82.812533] #0: (&mm->mmap_sem){++++++}, at: [] vm_mmap_pgoff+0x44/0xa0
    [ 82.812541]
    stack backtrace:
    [ 82.812547] CPU: 0 PID: 5859 Comm: kms_setmode Not tainted 4.5.0-rc4-gfxbench+ #1
    [ 82.812550] Hardware name: /NUC5CPYB, BIOS PYBSWCEL.86A.0040.2015.0814.1353 08/14/2015
    [ 82.812553] 0000000000000000 ffff880079407bf0 ffffffff813f8505 ffffffff825fb270
    [ 82.812560] ffffffff825c4190 ffff880079407c30 ffffffff810c84ac ffff880079407c90
    [ 82.812566] ffff8800797ed328 ffff8800797ecb00 0000000000000001 ffff8800797ed350
    [ 82.812573] Call Trace:
    [ 82.812578] [] dump_stack+0x67/0x92
    [ 82.812582] [] print_circular_bug+0x1fc/0x310
    [ 82.812586] [] __lock_acquire+0x1fc9/0x20f0
    [ 82.812590] [] lock_acquire+0xc3/0x1d0
    [ 82.812594] [] ? drm_gem_mmap+0x1a1/0x270
    [ 82.812599] [] drm_gem_mmap+0x1c7/0x270
    [ 82.812603] [] ? drm_gem_mmap+0x1a1/0x270
    [ 82.812608] [] mmap_region+0x334/0x580
    [ 82.812612] [] do_mmap+0x364/0x410
    [ 82.812616] [] vm_mmap_pgoff+0x6d/0xa0
    [ 82.812629] [] SyS_mmap_pgoff+0x184/0x220
    [ 82.812633] [] SyS_mmap+0x1d/0x20
    [ 82.812637] [] entry_SYSCALL_64_fastpath+0x16/0x73

    Highly unlikely though this scenario is, we can avoid the issue entirely
    by moving the copy operation from out under the kernfs_get_active()
    tracking by assigning the preallocated buffer its own mutex. The
    temporary buffer allocation doesn't require mutex locking as it is
    entirely local.

    The locked section was extended by the addition of the preallocated buf
    to speed up md user operations in

    commit 2b75869bba676c248d8d25ae6d2bd9221dfffdb6
    Author: NeilBrown
    Date: Mon Oct 13 16:41:28 2014 +1100

    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.

    Reported-by: Ville Syrjälä
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94350
    Signed-off-by: Chris Wilson
    Reviewed-by: Joonas Lahtinen
    Cc: Ville Syrjälä
    Cc: Joonas Lahtinen
    Cc: NeilBrown
    Acked-by: Tejun Heo
    Signed-off-by: Greg Kroah-Hartman

    Chris Wilson
     

19 Apr, 2016

1 commit


18 Apr, 2016

2 commits


17 Apr, 2016

11 commits


16 Apr, 2016

8 commits

  • Pull block fixes from Jens Axboe:
    "A few fixes for the current series. This contains:

    - Two fixes for NVMe:

    One fixes a reset race that can be triggered by repeated
    insert/removal of the module.

    The other fixes an issue on some platforms, where we get probe
    timeouts since legacy interrupts isn't working. This used not to
    be a problem since we had the worker thread poll for completions,
    but since that was killed off, it means those poor souls can't
    successfully probe their NVMe device. Use a proper IRQ check and
    probe (msi-x -> msi ->legacy), like most other drivers to work
    around this. Both from Keith.

    - A loop corruption issue with offset in iters, from Ming Lei.

    - A fix for not having the partition stat per cpu ref count
    initialized before sending out the KOBJ_ADD, which could cause user
    space to access the counter prior to initialization. Also from
    Ming Lei.

    - A fix for using the wrong congestion state, from Kaixu Xia"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: loop: fix filesystem corruption in case of aio/dio
    NVMe: Always use MSI/MSI-x interrupts
    NVMe: Fix reset/remove race
    writeback: fix the wrong congested state variable definition
    block: partition: initialize percpuref before sending out KOBJ_ADD

    Linus Torvalds
     
  • Pull libnvdimm fixes from Ross Zwisler:
    "Two fixes:

    - Fix memcpy_from_pmem() to fallback to memcpy() for architectures
    where CONFIG_ARCH_HAS_PMEM_API=n.

    - Add a comment explaining why we write data twice when clearing
    poison in pmem_do_bvec().

    This has passed a boot test on an X86_32 config, which was the
    architecture where issue #1 above was first noticed"

    Dan Williams adds:
    "We're giving this multi-maintainer setup a shot, so expect libnvdimm
    pull requests from either Ross or I going forward"

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    libnvdimm, pmem: clarify the write+clear_poison+write flow
    pmem: fix BUG() error in pmem.h:48 on X86_32

    Linus Torvalds
     
  • Pull MTD fix from Brian Norris:
    "One MTD fix for v4.6-rc4:

    In the v4.4 cycle, we relaxed the requirement for assigning
    mtd->owner, but we didn't remove this error case. It's hit only
    by drivers that are both:

    (a) using nand_scan() directly
    and
    (b) built as modules

    We haven't seen explicit complaints about this (most use cases don't
    fit one or both of the above), but we should definitely not be
    BUG()'ing here"

    * tag 'for-linus-20160415' of git://git.infradead.org/linux-mtd:
    mtd: nand: Drop mtd.owner requirement in nand_scan

    Linus Torvalds
     
  • Pull MMC fixes from Ulf Hansson:
    "Here are a couple of mmc fixes intended for v4.6 rc4.

    Regarding the fix for the regression about mmcblk device indexes. The
    approach taken to solve the problem seems to be good enough. There
    were some discussions around the solution, but it seems like people
    were happy about it in the end.

    MMC core:
    - Restore similar old behaviour when assigning mmcblk device indexes

    MMC host:
    - tegra: Disable UHS-I modes for Tegra124 to fix regression"

    * tag 'mmc-v4.6-rc3' of git://git.linaro.org/people/ulf.hansson/mmc:
    mmc: tegra: Disable UHS-I modes for Tegra124
    mmc: block: Use the mmc host device index as the mmcblk device index

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "This contains fixes for exynos, amdgpu, radeon, i915 and qxl.

    It also contains some fixes to the core drm edid parser.

    qxl:
    - fix for a cursor hotspot issue

    radeon:
    - some MST fixes that I've been running locally and make my monitor a
    bit happier

    exynos:
    - fix some regressions and build fixes

    amdgpu:
    - a couple of small fixes

    i915:
    - two DP MST fixes and a couple of other regression fixes

    Nothing too out of the ordinary or surprising at this point"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/exynos: Use VIDEO_SAMSUNG_S5P_G2D=n as G2D Kconfig dependency
    drm/exynos: fix a warning message
    drm/exynos: mic: fix an error code
    drm/exynos: fimd: fix broken dp_clock control
    drm/exynos: build fbdev code conditionally
    drm/exynos: fix adjusted_mode pointer in exynos_plane_mode_set
    drm/exynos: fix error handling in exynos_drm_subdrv_open
    drm/amd/amdgpu: fix irq domain remove for tonga ih
    drm/i915: fix deadlock on lid open
    drm/radeon: use helper for mst connector dpms.
    drm/radeon/mst: port some MST setup code from DAL.
    drm/amdgpu: add invisible pin size statistic
    drm/edid: Fix DMT 1024x768@43Hz (interlaced) timings
    drm/i915: Exit cherryview_irq_handler() after one pass
    drm/i915: Call intel_dp_mst_resume() before resuming displays
    drm/i915: Fix race condition in intel_dp_destroy_mst_connector()
    drm/edid: Fix parsing of EDID 1.4 Established Timings III descriptor
    drm/edid: Fix EDID Established Timings I and II
    drm/qxl: fix cursor position with non-zero hotspot

    Linus Torvalds
     
  • Pull parisc ftrace fixes from Helge Deller:
    "This is (most likely) the last pull request for v4.6 for the parisc
    architecture.

    It fixes the FTRACE feature for parisc, which is horribly broken since
    quite some time and doesn't even compile. This patch just fixes the
    bare minimum (it actually removes more lines than it adds), so that
    the function tracer works again on 32- and 64bit kernels.

    I've queued up additional patches on top of this patch which e.g. add
    the syscall tracer, but those have to wait for the merge window for
    v4.7."

    * 'parisc-4.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Fix ftrace function tracer

    Linus Torvalds
     
  • The ACPI specification does not specify the state of data after a clear
    poison operation. Potential future libnvdimm bus implementations for
    other architectures also might not specify or disagree on the state of
    data after clear poison. Clarify why we write twice.

    Reported-by: Jeff Moyer
    Reported-by: Vishal Verma
    Signed-off-by: Dan Williams
    Signed-off-by: Ross Zwisler
    Reviewed-by: Johannes Thumshirn
    Reviewed-by: Jeff Moyer
    Reviewed-by: Vishal Verma

    Dan Williams
     
  • Add scatterlist support (dev_coredumpsg) to allow drivers to avoid
    vmalloc() like dev_coredumpm(), while also avoiding the module
    reference that the latter function requires.

    This internally uses dev_coredumpm() with function inside the
    devcoredump module, requiring removing the const
    (which touches the driver using it.)

    Signed-off-by: Aviya Erenfeld
    Signed-off-by: Johannes Berg
    Signed-off-by: Greg Kroah-Hartman

    Aviya Erenfeld
     

15 Apr, 2016

13 commits

  • Starting from commit e36f620428(block: split bios to max possible length),
    block core starts to split bio in the middle of bvec.

    Unfortunately loop dio/aio doesn't consider this situation, and
    always treat 'iter.iov_offset' as zero. Then filesystem corruption
    is observed.

    This patch figures out the offset of the base bvevc via
    'bio->bi_iter.bi_bvec_done' and fixes the issue by passing the offset
    to iov iterator.

    Fixes: e36f6204288088f (block: split bios to max possible length)
    Cc: Keith Busch
    Cc: Al Viro
    Cc: stable@vger.kernel.org (4.5)
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • Pull x86 fixes from Ingo Molnar:
    "Misc fixes: a binutils fix, an lguest fix, an mcelog fix and a missing
    documentation fix"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce: Avoid using object after free in genpool
    lguest, x86/entry/32: Fix handling of guest syscalls using interrupt gates
    x86/build: Build compressed x86 kernels as PIE
    x86/mm/pkeys: Add missing Documentation

    Linus Torvalds
     
  • Pull mm gup cleanup from Ingo Molnar:
    "This removes the ugly get-user-pages API hack, now that all upstream
    code has been migrated to it"

    ("ugly" is putting it mildly. But it worked.. - Linus)

    * 'mm-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    mm/gup: Remove the macro overload API migration helpers from the get_user*() APIs

    Linus Torvalds
     
  • Pull device mapper fixes from Mike Snitzer:

    - fix a 4.6-rc1 bio-based DM 'struct dm_target_io' leak in an error
    path

    - stable@ fix for DM cache metadata's READ_LOCK macros that were
    incorrectly returning error if the block manager was in read-only
    mode; also cleanup multi-statement macros to use do {} while(0)

    * tag 'dm-4.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dm cache metadata: fix READ_LOCK macros and cleanup WRITE_LOCK macros
    dm: fix dm_target_io leak if clone_bio() returns an error

    Linus Torvalds
     
  • …erry.reding/linux-pwm

    Pull pwm fix from Thierry Reding:
    "A single one-line fix to turn the regmap cache from an RB-tree to a
    flat cache to avoid lockdep and abort issues"

    * tag 'pwm/for-4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
    pwm: fsl-ftm: Use flat regmap cache

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "We've had a very calm development cycle, so far. Here are the few
    fixes for HD-audio and USB-audio, all of which are small and easy"

    * tag 'sound-4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Fix inconsistent monitor_present state until repoll
    ALSA: hda - Fix regression of monitor_present flag in eld proc file
    ALSA: usb-audio: Skip volume controls triggers hangup on Dell USB Dock
    ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s
    ALSA: sscape: Use correct format identifier for size_t
    ALSA: usb-audio: Add a quirk for Plantronics BT300
    ALSA: usb-audio: Add a sample rate quirk for Phoenix Audio TMX320
    ALSA: hda - Bind with i915 only when Intel graphics is present

    Linus Torvalds
     
  • Pull mailbox fixes from Jussi Brar:
    "Misc fixes:

    mailbox-test driver:
    - prevent memory leak and another cosmetic change

    mailbox:
    - change the returned error code

    Xgene driver:
    - return -ENOMEM instead of PTR_ERR for failed devm_kzalloc"

    * 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
    mailbox: Stop using ENOSYS for anything other than unimplemented syscalls
    mailbox: mailbox-test: Prevent memory leak
    mailbox: mailbox-test: Use more consistent format for calling copy_from_user()
    mailbox: xgene-slimpro: Fix wrong test for devm_kzalloc

    Linus Torvalds
     
  • Pull f2fs/fscrypto fixes from Jaegeuk Kim:
    "In addition to f2fs/fscrypto fixes, I've added one patch which
    prevents RCU mode lookup in d_revalidate, as Al mentioned.

    These patches fix f2fs and fscrypto based on -rc3 bug fixes in ext4
    crypto, which have not yet been fully propagated as follows.

    - use of dget_parent and file_dentry to avoid crashes
    - disallow RCU-mode lookup in d_invalidate
    - disallow -ENOMEM in the core data encryption path"

    * tag 'for-linus-4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
    ext4/fscrypto: avoid RCU lookup in d_revalidate
    fscrypto: don't let data integrity writebacks fail with ENOMEM
    f2fs: use dget_parent and file_dentry in f2fs_file_open
    fscrypto: use dget_parent() in fscrypt_d_revalidate()

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This fixes an NFS regression caused by the skcipher/hash conversion in
    sunrpc. It also fixes a build problem in certain configurations with
    bcm63xx"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    hwrng: bcm63xx - fix device tree compilation
    sunrpc: Fix skcipher/shash conversion

    Linus Torvalds
     
  • Pull keys bugfixes from James Morris:
    "Two bugfixes for Keys related code"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    ASN.1: fix open failure check on headername
    assoc_array: don't call compare_object() on a node

    Linus Torvalds
     
  • The READ_LOCK macro was incorrectly returning -EINVAL if
    dm_bm_is_read_only() was true -- it will always be true once the cache
    metadata transitions to read-only by dm_cache_metadata_set_read_only().

    Wrap READ_LOCK and WRITE_LOCK multi-statement macros in do {} while(0).
    Also, all accesses of the 'cmd' argument passed to these related macros
    are now encapsulated in parenthesis.

    A follow-up patch can be developed to eliminate the use of macros in
    favor of pure C code. Avoiding that now given that this needs to apply
    to stable@.

    Reported-by: Ben Hutchings
    Signed-off-by: Mike Snitzer
    Fixes: d14fcf3dd79 ("dm cache: make sure every metadata function checks fail_io")
    Cc: stable@vger.kernel.org

    Mike Snitzer
     
  • Multiple users have reported device initialization failure due the driver
    not receiving legacy PCI interrupts. This is not unique to any particular
    controller, but has been observed on multiple platforms.

    There have been no issues reported or observed when with message signaled
    interrupts, so this patch attempts to use MSI-x during initialization,
    falling back to MSI. If that fails, legacy would become the default.

    The setup_io_queues error handling had to change as a result: the admin
    queue's msix_entry used to be initialized to the legacy IRQ. The case
    where nr_io_queues is 0 would fail request_irq when setting up the admin
    queue's interrupt since re-enabling MSI-x fails with 0 vectors, leaving
    the admin queue's msix_entry invalid. Instead, return success immediately.

    Reported-by: Tim Muhlemmer
    Reported-by: Jon Derrick
    Signed-off-by: Keith Busch
    Signed-off-by: Jens Axboe

    Keith Busch
     
  • In commit c4004b02f8e5b ("x86: remove the kernel code/data/bss resources
    from /proc/iomem") I was hoping to remove the phyiscal kernel address
    data from /proc/iomem entirely, but that had to be reverted because some
    system programs actually use it.

    This limits all the detailed resource information to properly
    credentialed users instead.

    Signed-off-by: Linus Torvalds

    Linus Torvalds