1. 21 12月, 2011 1 次提交
  2. 20 12月, 2011 6 次提交
  3. 19 12月, 2011 10 次提交
  4. 18 12月, 2011 4 次提交
  5. 17 12月, 2011 11 次提交
  6. 16 12月, 2011 2 次提交
  7. 15 12月, 2011 2 次提交
    • J
      [SCSI] fcoe: fix fcoe in a DCB environment by adding DCB notifiers to set skb priority · 6f6c2aa3
      john fastabend 提交于
      Use DCB notifiers to set the skb priority to allow packets
      to be steered and tagged correctly over DCB enabled drivers
      that setup traffic classes.
      
      This allows queue_mapping() routines to be removed in these
      drivers that were previously inspecting the ethertype of
      every skb to mark FCoE/FIP frames.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NRobert Love <robert.w.love@intel.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      6f6c2aa3
    • A
      PCI: Set device power state to PCI_D0 for device without native PM support · b51306c6
      Ajaykumar Hotchandani 提交于
      During test of one IB card with guest VM, found that, msi is not
      initialized properly.
      
      It turns out __write_msi_msg will do nothing if device current_state is
      not PCI_D0.  And, that pci device does not have pm_cap in guest VM.
      
      There is an error in setting of power state to PCI_D0 in
      pci_enable_device(), but error is not returned for this.  Following is
      code flow:
      
      pci_enable_device() -->   __pci_enable_device_flags() -->
      do_pci_enable_device() -->   pci_set_power_state() -->
      __pci_start_power_transition()
      
      We have following condition inside __pci_start_power_transition():
               if (platform_pci_power_manageable(dev)) {
                       error = platform_pci_set_power_state(dev, state);
                       if (!error)
                               pci_update_current_state(dev, state);
               } else {
                       error = -ENODEV;
                       /* Fall back to PCI_D0 if native PM is not supported */
                       if (!dev->pm_cap)
                               dev->current_state = PCI_D0;
               }
      
      Here, from platform_pci_set_power_state(), acpi_pci_set_power_state() is
      getting called and that is failing with ENODEV because of following
      condition:
      
               if (!handle || ACPI_SUCCESS(acpi_get_handle(handle, "_EJ0",&tmp)))
                       return -ENODEV;
      
      Because of that, pci_update_current_state() is not getting called.
      
      With this patch, if device power state can not be set via
      platform_pci_set_power_state and that device does not have native pm
      support, then PCI device power state will be set to PCI_D0.
      
      -v2: This also reverts 47e9037a, as it's
           not needed after this change.
      Acked-by: N"Rafael J. Wysocki" <rjw@sisk.pl>
      Signed-off-by: Ajaykumar Hotchandani<ajaykumar.hotchandani@oracle.com>
      Signed-off-by: Yinghai Lu<yinghai.lu@oracle.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      b51306c6
  8. 14 12月, 2011 4 次提交
    • E
      [SCSI] bnx2i: Fixed kernel panic caused by unprotected task->sc->request deref · a878185c
      Eddie Wai 提交于
      During session recovery, the conn_stop call will trigger a flush
      to all outstanding SCSI cmds in the xmit queue.  This will set
      all outstanding task->sc to NULL prior to the session_teardown
      call which frees the task memory.
      
      In the bnx2i SCSI response processing path, only the task was being checked
      for NULL under the session lock before the task->sc->request dereferencing.
      If there are outstanding SCSI cmd responses pending for process, the
      following kernel panic can be exposed where task->sc was found to be NULL.
      
       Call Trace:
      [   69.720205]  [<ffffffffa040d0d0>] bnx2i_process_new_cqes+0x290/0x3c0 [bnx2i]
      [   69.804289]  [<ffffffffa040d233>] bnx2i_fastpath_notification+0x33/0xa0 [bnx2
      i]
      [   69.891490]  [<ffffffffa040d37b>] bnx2i_indicate_kcqe+0xdb/0x330 [bnx2i]
      [   69.971427]  [<ffffffffa03eac5e>] service_kcqes+0x16e/0x1d0 [cnic]
      [   70.045132]  [<ffffffffa03eacea>] cnic_service_bnx2x_kcq+0x2a/0x50 [cnic]
      [   70.126105]  [<ffffffffa03ead53>] cnic_service_bnx2x_bh+0x43/0x140 [cnic]
      [   70.207081]  [<ffffffff81060676>] tasklet_action+0x66/0x110
      [   70.273521]  [<ffffffff8106025f>] __do_softirq+0xef/0x220
      [   70.337887]  [<ffffffff81447ebc>] call_softirq+0x1c/0x30
      
      This patch adds the !task->sc check and also protects the sc dereferencing
      under the session lock.
      Signed-off-by: NEddie Wai <eddie.wai@broadcom.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      a878185c
    • M
      [SCSI] qla4xxx: check for failed conn setup · ff1d0319
      Mike Christie 提交于
      iscsi_conn_setup can fail so we must check for NULL being
      returned.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      ff1d0319
    • T
      [SCSI] qla4xxx: a small loop fix · e1cd89c5
      Tomas Henzl 提交于
      When the qla4xxx_get_fwddb_entry returns QLA_ERROR
      the nex_idx is not updated,
            for (idx = 0; idx < max_ddbs; idx = next_idx) {
                      ret = qla4xxx_get_fwddb_entry(ha, idx, NULL, 0, NULL,
                                                    &next_idx, &state, &conn_err,
                                                      NULL, NULL);
                      if (ret == QLA_ERROR)
                              continue;
      
      This means there is a risk that the 'idx < max_ddbs' condition will never
      met and the loop will loop forever.
      Fix this by explicitly increasing the next_idx in the error condition.
      
      Maybe a break instead of continue is more appropriate, leaving the decision
      on the qlogic maintainer.
      Signed-off-by: NTomas Henzl <thenzl@redhat.com>
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      e1cd89c5
    • M
      [SCSI] qla4xxx: fix flash/ddb support · 13483730
      Mike Christie 提交于
      With open-iscsi support, target entries persisted in the FLASH were not
      login. Added support in the qla4xxx driver to do the login on probe
      time to the target entries saved in the FLASH by user.
      With this changes upgrade to the new kernel with open-iscsi support in
      qla4xxx will ensure users original target entries login on driver load
      Signed-off-by: NManish Rangankar <manish.rangankar@qlogic.com>
      Signed-off-by: NRavi Anand <ravi.anand@qlogic.com>
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      13483730