1. 12 11月, 2014 26 次提交
  2. 10 11月, 2014 14 次提交
    • M
      bnx2fc: fix tgt spinlock locking · dc6311dd
      Maurizio Lombardi 提交于
      bnx2fc_queuecommand(): when allocating a new io_req, the tgt_lock
      spinlock must be locked before calling bnx2fc_cmd_alloc().
      
      The spinlock should also be kept locked until bnx2fc_post_io_req() has
      been completed.
      If not, a kernel thread may call bnx2fc_process_cq_compl() that extracts
      the newly allocated io_req from hba->cmd_mgr->cmds and destroys it while
      it is still being used by bnx2fc_post_io_req().
      
      BUG: unable to handle kernel NULL pointer dereference at 000000000000004c
      IP: [<ffffffffa03130da>] bnx2fc_init_task+0x6a/0x230 [bnx2fc]
      PGD 0
      Oops: 0000 [#1] SMP
      last sysfs file: /sys/devices/pci0000:00/0000:00:02.0/0000:04:00.3/net/eth3/type
      CPU 33
      Modules linked in: autofs4 target_core_iblock target_core_file target_core_pscsi target_core_mod configfs bnx2fc cnic uio fcoe libfcoe libfc scsi_transport_fc 8021q garp scsi_tgt stp llc cpufreq_ondemand freq_table pcc_cpufreq ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 power_meter microcode iTCO_wdt iTCO_vendor_support hpilo hpwdt sg bnx2x libcrc32c mdio serio_raw lpc_ich mfd_core shpchp ext4 jbd2 mbcache sd_mod crc_t10dif hpsa video output dm_mirror dm_region_hash dm_log dm_mod [last unloaded: scsi_wait_scan]
      
      Pid: 7355, comm: bnx2fc_thread/3 Not tainted 2.6.32-431.el6.x86_64 #1 HP ProLiant BL460c Gen8
      RIP: 0010:[<ffffffffa03130da>]  [<ffffffffa03130da>] bnx2fc_init_task+0x6a/0x230 [bnx2fc]
      RSP: 0018:ffff8820b0da3b68  EFLAGS: 00010246
      RAX: 0000000000000000 RBX: ffff882003801080 RCX: 0000000000000000
      RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff882003801100
      RBP: ffff8820b0da3bc8 R08: ffffffff8160d4e8 R09: 0000000000000040
      R10: 0000000000000000 R11: 0000000000000000 R12: ffff88400e600e00
      R13: ffff8840108fbe40 R14: ffff88200ffe5400 R15: 0000000000000000
      FS:  0000000000000000(0000) GS:ffff8820b0da0000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      CR2: 000000000000004c CR3: 0000002010b67000 CR4: 00000000001407e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process bnx2fc_thread/3 (pid: 7355, threadinfo ffff88401f940000, task ffff884012f5f540)
      Stack:
       ffff8820b0da3bc8 ffffffff81527303 ffff884000000020 ffff8820b0da3bd8
      <d> ffff8820b0da3b98 000000028138931a ffff88400f506078 ffff88400e600e00
      <d> ffff88200ffe5400 ffff88200ffe5590 0000000000000021 0000000000000002
      Call Trace:
       <IRQ>
       [<ffffffff81527303>] ? printk+0x41/0x46
       [<ffffffffa03169bc>] bnx2fc_post_io_req+0x11c/0x440 [bnx2fc]
       [<ffffffff812825b9>] ? cpumask_next_and+0x29/0x50
       [<ffffffff8137ffd0>] ? scsi_done+0x0/0x60
       [<ffffffffa0316df7>] bnx2fc_queuecommand+0x117/0x140 [bnx2fc]
       [<ffffffff81380245>] scsi_dispatch_cmd+0xe5/0x310
       [<ffffffff81388b9e>] scsi_request_fn+0x5ee/0x7a0
       [<ffffffff812658f1>] __blk_run_queue+0x31/0x40
       [<ffffffff81265a40>] blk_run_queue+0x30/0x50
       [<ffffffff81387da6>] scsi_run_queue+0xc6/0x270
       [<ffffffff81260f92>] ? elv_requeue_request+0x52/0xa0
       [<ffffffff813897a0>] scsi_requeue_command+0x90/0xb0
       [<ffffffff81389b84>] scsi_io_completion+0x154/0x6c0
       [<ffffffff8137ff62>] scsi_finish_command+0xc2/0x130
       [<ffffffff8138a255>] scsi_softirq_done+0x145/0x170
       [<ffffffff8126e865>] blk_done_softirq+0x85/0xa0
       [<ffffffff8107a8e1>] __do_softirq+0xc1/0x1e0
       [<ffffffff8100c30c>] ? call_softirq+0x1c/0x30
       [<ffffffff8100c30c>] call_softirq+0x1c/0x30
       <EOI>
       [<ffffffff8100fa75>] ? do_softirq+0x65/0xa0
       [<ffffffff8107a40a>] local_bh_enable_ip+0x9a/0xb0
       [<ffffffff8152a4eb>] _spin_unlock_bh+0x1b/0x20
       [<ffffffffa0313937>] bnx2fc_process_cq_compl+0x257/0x2b0 [bnx2fc]
       [<ffffffffa03114ea>] bnx2fc_percpu_io_thread+0xea/0x160 [bnx2fc]
       [<ffffffffa0311400>] ? bnx2fc_percpu_io_thread+0x0/0x160 [bnx2fc]
       [<ffffffff8109aef6>] kthread+0x96/0xa0
       [<ffffffff8100c20a>] child_rip+0xa/0x20
       [<ffffffff8109ae60>] ? kthread+0x0/0xa0
       [<ffffffff8100c200>] ? child_rip+0x0/0x20
      Code: 89 df 45 8b 7e 30 0f 85 75 01 00 00 89 d1 31 c0 c1 e9 03 83 e2 04 89 c9 f3 48 ab 74 06 c7 07 00 00 00 00 49 89 9c 24 88 01 00 00 <83> 7e 4c 01 b8 01 00 00 00 0f 84 e7 00 00 00 89 c2 0a 53 38 41
      RIP  [<ffffffffa03130da>] bnx2fc_init_task+0x6a/0x230 [bnx2fc]
       RSP <ffff8820b0da3b68>
      CR2: 000000000000004c
      Signed-off-by: NMaurizio Lombardi <mlombard@redhat.com>
      Acked-by: NChad Dupuis <chad.dupuis@qlogic.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      dc6311dd
    • J
      megaraid_sas: fix bug in handling return value of pci_enable_msix_range() · c12de882
      Jiang Liu 提交于
      Function pci_enable_msix_range() may return negative values for error
      conditions. So it's a bug by checking (pci_enable_msix_range() != 0)
      for success and causes failure to megaraid driver when MSI is disabled.
      [   16.487267] megaraid_sas 0000:02:00.0: Controller type: iMR
      [   16.487275] genirq: Flags mismatch irq 0. 00000000 (megasas) vs. 00015a00 (tii
      mer)
      [   16.487347] megasas: Failed to register IRQ for vector 0.
      
      Fixes: 8ae80ed1 "megaraid: Use pci_enable_msix_range() instead of pci_enable_msix()"
      Signed-off-by: NJiang Liu <jiang.liu@linux.intel.com>
      Acked-by: NSumit Saxena <sumit.saxena@avagotech.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Cc: <stable@vger.kernel.org> # 3.17
      c12de882
    • A
      cxgb4i: send abort_rpl correctly · 7b07bf24
      Anish Bhatt 提交于
      Connection retries were not being cleaned up correctly if they failed as a
      result of link down. Applies on top of drivers-for-3.18.
      Signed-off-by: NAnish Bhatt <anish@chelsio.com>
      Signed-off-by: NKaren Xie <kxie@chelsio.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      7b07bf24
    • A
      cxgbi: add maintainer for cxgb3i/cxgb4i · d8ae3c33
      Anish Bhatt 提交于
      Signed-off-by: NAnish Bhatt <anish@chelsio.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      d8ae3c33
    • W
      scsi: TUR path is down after adapter gets reset with multipath · 333b2448
      wenxiong@linux.vnet.ibm.com 提交于
      This patch fixes an issue with multipath ipr SAS devices which require a
      start unit command to be issued following an adapter reset. Without this
      patch, paths get marked failed following an adapter reset and since the
      error handler never gets invoked to issue the start unit, the paths are
      never recovered. Returning FAILED for this case ensures the error
      handler wakes up to issue the start unit.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Tested-by: NWen Xiong <wenxiong@linux.vnet.ibm.com>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      333b2448
    • C
      scsi: call device handler for failed TUR command · e925cc43
      Christoph Hellwig 提交于
      Multipath devices using the TUR path checker need to see the sense
      code for a failed TUR command in their device handler.  Since commit
      14216561 we always return success for mid
      layer issued TUR commands before calling the device handler, which
      stopped the TUR path checker from working.
      
      Move the call to the device handler check sense method before the early
      return for TUR commands to give the device handler a chance to intercept
      them.
      Signed-off-by: NChristoph Hellwig <hch@infradead.org>
      Tested-by: NWen Xiong <wenxiong@linux.vnet.ibm.com>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      e925cc43
    • C
      scsi: only re-lock door after EH on devices that were reset · 48379270
      Christoph Hellwig 提交于
      Setups that use the blk-mq I/O path can lock up if a host with a single
      device that has its door locked enters EH.  Make sure to only send the
      command to re-lock the door to devices that actually were reset and thus
      might have lost their state.  Otherwise the EH code might be get blocked
      on blk_get_request as all requests for non-reset devices might be in use.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reported-by: NMeelis Roos <meelis.roos@ut.ee>
      Tested-by: NMeelis Roos <meelis.roos@ut.ee>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      48379270
    • L
      Linux 3.18-rc4 · 206c5f60
      Linus Torvalds 提交于
      206c5f60
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ee867cf9
      Linus Torvalds 提交于
      Pull arm64 fixes from Catalin Marinas:
       - enable bpf syscall for compat
       - cpu_suspend fix when checking the idle state type
       - defconfig update
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: defconfig: update defconfig for 3.18
        arm64: compat: Enable bpf syscall
        arm64: psci: fix cpu_suspend to check idle state type for index
      ee867cf9
    • L
      Merge tag 'armsoc-for-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b1f368b5
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "Another quiet week:
      
         - a fix to silence edma probe error on non-supported platforms from
           Arnd
         - a fix to enable the PL clock for Parallella, to make mainline
           usable with the SDK.
         - a somewhat verbose fix for the PLL clock tree on VF610
         - enabling of SD/MMC on one of the VF610-based boards (for testing)
         - a fix for i.MX where CONFIG_SPI used to be implicitly enabled and
           now needs to be added to the defconfig instead
         - another maintainer added for bcm2835: Lee Jones"
      
      * tag 'armsoc-for-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: dts: zynq: Enable PL clocks for Parallella
        dma: edma: move device registration to platform code
        ARM: dts: vf610: add SD node to cosmic dts
        MAINTAINERS: update bcm2835 entry
        ARM: imx: Fix the removal of CONFIG_SPI option
        ARM: imx: clk-vf610: define PLL's clock tree
      b1f368b5
    • L
      Merge branch 'devicetree/merge' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · a3157809
      Linus Torvalds 提交于
      Pull devicetree bugfix from Grant Likely:
       "One buffer overflow bug that shouldn't be left around"
      
      * 'devicetree/merge' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
        of: Fix overflow bug in string property parsing functions
      a3157809
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · c4c23fb6
      Linus Torvalds 提交于
      Pull btrfs fix from Chris Mason:
       "It's a one liner for an error cleanup path that leads to crashes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup
      c4c23fb6
    • L
      Merge tag 'driver-core-3.18-rc4' of... · 0b0c7dbd
      Linus Torvalds 提交于
      Merge tag 'driver-core-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fixes from Greg KH:
       "Here are 3 tiny fixes for 3.18-rc4.
      
        One fixes up a long-stading race condition in the driver core for
        removing directories in /sys/devices/virtual/ and the other 2 fix up
        the wording of a new Kconfig option that was added in 3.18-rc1"
      
      * tag 'driver-core-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        tiny: rename ENABLE_DEV_COREDUMP to ALLOW_DEV_COREDUMP
        tiny: reverse logic for DISABLE_DEV_COREDUMP
        sysfs: driver core: Fix glue dir race condition by gdp_mutex
      0b0c7dbd
    • L
      Merge tag 'staging-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 86a7a167
      Linus Torvalds 提交于
      Pull staging driver fixes from Greg KH:
       "Here are some staging/iio fixes for 3.18-rc4.
      
        Nothing major, just a few bugfixes of things that have been reported"
      
      * tag 'staging-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging:iio:ade7758: Remove "raw" from channel name
        staging:iio:ade7758: Fix check if channels are enabled in prenable
        staging:iio:ade7758: Fix NULL pointer deref when enabling buffer
        iio: as3935: allocate correct iio_device size
        io: accel: kxcjk-1013: Fix iio_event_spec direction
        iio: tsl4531: Fix compiler error when CONFIG_PM_OPS is not defined
        iio: adc: mxs-lradc: Disable the clock on probe failure
        iio: st_sensors: Fix buffer copy
        staging:iio:ad5933: Drop "raw" from channel names
        staging:iio:ad5933: Fix NULL pointer deref when enabling buffer
      86a7a167