1. 28 Dec, 2015 4 commits
    • Devesh Sharma's avatar
      RDMA/be2net: Remove open and close entry points · f41647ef
      Devesh Sharma authored
      Recently Dough Ledford reported a deadlock happening
      between ocrdma-load sequence and NetworkManager service
      issueing "open" on be2net interface.
      
      The deadlock happens when any be2net hook (e.g. open/close) is called
      in parallel to insmod ocrdma.ko.
      
      A. be2net is sending administrative open/close event to ocrdma holding
         device_list_mutex. It does this from ndo_open/ndo_stop hooks of be2net.
         So sequence of locks is rtnl_lock---> device_list lock
      
      B.  When new ocrdma roce device gets registered, infiniband stack now
          takes rtnl_lock in ib_register_device() in GID initialization routines.
          So sequence of locks in this path is device_list lock ---> rtnl_lock.
      
      This improper locking sequence causes deadlock.
      
      In order to resolve the above deadlock condition, ocrdma intorduced a
      patch to stop listening to administrative open/close events generated from
      be2net driver. It now depends on link-state-change async-event generated from
      CNA. This change leaves behind dead code which used to generate administrative
      open/close events. This patch cleans-up all that dead code from be2net.
      Reported-by: default avatarDoug Ledford <dledford@redhat.com>
      CC: Sathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: default avatarPadmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
      Signed-off-by: default avatarSelvin Xavier <selvin.xavier@avagotech.com>
      Signed-off-by: default avatarDevesh Sharma <devesh.sharma@avagotech.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      f41647ef
    • Devesh Sharma's avatar
      RDMA/ocrdma: Depend on async link events from CNA · 10a214dc
      Devesh Sharma authored
      Recently Dough Ledford reported a deadlock happening
      between ocrdma-load sequence and NetworkManager service
      issuing "open" on be2net interface.
      
      The deadlock happens when any be2net hook (e.g. open/close) is called
      in parallel to insmod ocrdma.ko.
      
      A. be2net is sending administrative open/close event to ocrdma holding
         device_list_mutex. It does this from ndo_open/ndo_stop hooks of be2net.
         So sequence of locks is rtnl_lock---> device_list lock
      
      B.  When new ocrdma roce device gets registered, infiniband stack now
          takes rtnl_lock in ib_register_device() in GID initialization routines.
          So sequence of locks in this path is device_list lock ---> rtnl_lock.
      
      This improper locking sequence causes deadlock.
      
      With this patch we stop using administrative open and close events
      injected by be2net driver. These events were used to dispatch PORT_ACTIVE
      and PORT_ERROR events to the IB-stack. This patch implements a logic
      to receive async-link-events generated from CNA whenever link-state-change
      is detected. Now on, these async-events will be used to dispatch
      PORT_ACTIVE and PORT_ERROR events to IB-stack.
      
      Depending on async-events from CNA removes the need to hold device-list-mutex
      and thus breaks the busy-wait scenario.
      Reported-by: default avatarDoug Ledford <dledford@redhat.com>
      CC: Sathya Perla <sathya.perla@avagotech.com>
      Signed-off-by: default avatarPadmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
      Signed-off-by: default avatarSelvin Xavier <selvin.xavier@avagotech.com>
      Signed-off-by: default avatarDevesh Sharma <devesh.sharma@avagotech.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      10a214dc
    • Devesh Sharma's avatar
      RDMA/ocrdma: Dispatch only port event when port state changes · 36ac0db0
      Devesh Sharma authored
      Dispatch only port event to IB stack when port state changes.
      Don't explicitly modify qps to error. Let application listen to
      port events on async event queue or let QP fail with retry-exceeded
      completion error.
      Signed-off-by: default avatarPadmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
      Signed-off-by: default avatarDevesh Sharma <devesh.sharma@avagotech.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      36ac0db0
    • Devesh Sharma's avatar
      RDMA/ocrdma: Fix vlan-id assignment in qp parameters · c6002d56
      Devesh Sharma authored
      vlan-id is wrongly getting as 0 when PFC is enabled.
      Set vlan-id configured by user in QP parameters.
      In case vlan interface is not used, flash a warning to
      user to configure vlan and assign vlan-id as 0 in qp params.
      
      Fixes: dbf727de ('IB/core: Use GID table in AH creation and dmac resolution')
      Cc: Matan Barak <matanb@mellanox.com>
      Signed-off-by: default avatarDevesh Sharma <devesh.sharma@avagotech.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      c6002d56
  2. 23 Dec, 2015 2 commits
  3. 08 Dec, 2015 7 commits
  4. 07 Dec, 2015 12 commits
  5. 06 Dec, 2015 10 commits
    • Linus Torvalds's avatar
      Linux 4.4-rc4 · 527e9316
      Linus Torvalds authored
      527e9316
    • James Simmons's avatar
      staging/lustre: remove IOC_LIBCFS_PING_TEST ioctl · d035e336
      James Simmons authored
      The ioctl IOC_LIBCFS_PING_TEST has not been used in ages.  The recent
      nidstring changes which moved all the nidstring operations from libcfs
      to the LNet layer but this ioctl code was still using an nidstring
      operation that was causing a circular dependency loop between libcfs and
      LNet.
      Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
      Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d035e336
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · d8cd93ea
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "A couple of fixes (-stable fodder) + dead code removal after the
        overlayfs fix.
      
        I agree that it's better to separate from the fix part to make
        backporting easier, but IMO it's not worth delaying said dead code
        removal until the next window"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        Don't reset ->total_link_count on nested calls of vfs_path_lookup()
        ovl: get rid of the dead code left from broken (and disabled) optimizations
        ovl: fix permission checking for setattr
      d8cd93ea
    • Al Viro's avatar
      Don't reset ->total_link_count on nested calls of vfs_path_lookup() · 2788cc47
      Al Viro authored
      we already zero it on outermost set_nameidata(), so initialization in
      path_init() is pointless and wrong.  The same DoS exists on pre-4.2
      kernels, but there a slightly different fix will be needed.
      
      Cc: stable@vger.kernel.org # v4.2
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      2788cc47
    • Al Viro's avatar
    • Miklos Szeredi's avatar
      ovl: fix permission checking for setattr · acff81ec
      Miklos Szeredi authored
      [Al Viro] The bug is in being too enthusiastic about optimizing ->setattr()
      away - instead of "copy verbatim with metadata" + "chmod/chown/utimes"
      (with the former being always safe and the latter failing in case of
      insufficient permissions) it tries to combine these two.  Note that copyup
      itself will have to do ->setattr() anyway; _that_ is where the elevated
      capabilities are right.  Having these two ->setattr() (one to set verbatim
      copy of metadata, another to do what overlayfs ->setattr() had been asked
      to do in the first place) combined is where it breaks.
      Signed-off-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      acff81ec
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fb7b26e4
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
       "This updates contains the following changes:
      
         - Fix a signal handling regression in the bit wait functions.
      
         - Avoid false positive warnings in the wakeup path.
      
         - Initialize the scheduler root domain properly.
      
         - Handle gtime calculations in proc/$PID/stat proper.
      
         - Add more documentation for the barriers in try_to_wake_up().
      
         - Fix a subtle race in try_to_wake_up() which might cause a task to
           be scheduled on two cpus
      
         - Compile static helper function only when it is used"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/core: Fix an SMP ordering race in try_to_wake_up() vs. schedule()
        sched/core: Better document the try_to_wake_up() barriers
        sched/cputime: Fix invalid gtime in proc
        sched/core: Clear the root_domain cpumasks in init_rootdomain()
        sched/core: Remove false-positive warning from wake_up_process()
        sched/wait: Fix signal handling in bit wait helpers
        sched/rt: Hide the push_irq_work_func() declaration
      fb7b26e4
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 69d2ca60
      Linus Torvalds authored
      Pull x86 fixes from Thoma Gleixner:
       "Another round of fixes for x86:
      
         - Move the initialization of the microcode driver to late_initcall to
           make sure everything that init function needs is available.
      
         - Make sure that lockdep knows about interrupts being off in the
           entry code before calling into c-code.
      
         - Undo the cpu hotplug init delay regression.
      
         - Use the proper conditionals in the mpx instruction decoder.
      
         - Fixup restart_syscall for x32 tasks.
      
         - Fix the hugepage regression on PAE kernels which was introduced
           with the latest PAT changes"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/signal: Fix restart_syscall number for x32 tasks
        x86/mpx: Fix instruction decoder condition
        x86/mm: Fix regression with huge pages on PAE
        x86 smpboot: Re-enable init_udelay=0 by default on modern CPUs
        x86/entry/64: Fix irqflag tracing wrt context tracking
        x86/microcode: Initialize the driver late when facilities are up
      69d2ca60
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 19190f5e
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is quite a bumper crop of fixes: three from Arnd correcting
        various build issues in some configurations, a lock recursion in
        qla2xxx.  Two potentially exploitable issues in hpsa and mvsas, a
        potential null deref in st, a revert of a bdi registration fix that
        turned out to cause even more problems, a set of fixes to allow people
        who only defined MPT2SAS to still work after the mpt2/mpt3sas merger
        and a couple of fixes for issues turned up by the hyper-v storvsc
        driver"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        mpt3sas: fix Kconfig dependency problem for mpt2sas back compatibility
        Revert "scsi: Fix a bdi reregistration race"
        mpt3sas: Add dummy Kconfig option for backwards compatibility
        Fix a memory leak in scsi_host_dev_release()
        block/sd: Fix device-imposed transfer length limits
        scsi_debug: fix prevent_allow+verify regressions
        MAINTAINERS: Add myself as co-maintainer of the SCSI subsystem.
        sd: Make discard granularity match logical block size when LBPRZ=1
        scsi: hpsa: select CONFIG_SCSI_SAS_ATTR
        scsi: advansys needs ISA dma api for ISA support
        scsi_sysfs: protect against double execution of __scsi_remove_device()
        st: fix potential null pointer dereference.
        scsi: report 'INQUIRY result too short' once per host
        advansys: fix big-endian builds
        qla2xxx: Fix rwlock recursion
        hpsa: logical vs bitwise AND typo
        mvsas: don't allow negative timeouts
        mpt3sas: Fix use sas_is_tlr_enabled API before enabling MPI2_SCSIIO_CONTROL_TLR_ON flag
      19190f5e
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · a2dbb7b5
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A bunch of change across the board, the main things are some vblank
        fallout in radeon and nouveau required some work, but I think this
        should fix it all.  There is also one drm fix for an oops in vmwgfx
        with how we pass the drm master around.
      
        The rest is just some amdgpu, i915, imx and rockchip fixes.
      
        Probably more than I'd like at this point, but hopefully things settle
        down now"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (40 commits)
        drm/amdgpu: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v3)
        drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2)
        drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt
        drm/amdgpu: add spin lock to protect freed list in vm (v2)
        drm/amdgpu: partially revert "drm/amdgpu: fix VM_CONTEXT*_PAGE_TABLE_END_ADDR" v2
        drm/amdgpu: take a BO reference for the user fence
        drm/amdgpu: take a BO reference in the display code
        drm/amdgpu: set snooped flags only on system addresses v2
        drm/nouveau: Fix pre-nv50 pageflip events (v4)
        drm: Fix an unwanted master inheritance v2
        drm/amdgpu: fix race condition in amd_sched_entity_push_job
        drm/amdgpu: add err check for pin userptr
        drm/i915: take a power domain reference while checking the HDMI live status
        drm/i915: add MISSING_CASE to a few port/aux power domain helpers
        drm/i915/ddi: fix intel_display_port_aux_power_domain() after HDMI detect
        drm/i915: Introduce a gmbus power domain
        drm/i915: Clean up AUX power domain handling
        drm/rockchip: Use CRTC vblank event interface
        drm/rockchip: Fix module autoload for OF platform driver
        drm/rockchip: vop: fix window origin calculation
        ...
      a2dbb7b5
  6. 05 Dec, 2015 4 commits
  7. 04 Dec, 2015 1 commit