1. 23 4月, 2008 1 次提交
  2. 21 4月, 2008 1 次提交
    • F
      block: move the padding adjustment to blk_rq_map_sg · f18573ab
      FUJITA Tomonori 提交于
      blk_rq_map_user adjusts bi_size of the last bio. It breaks the rule
      that req->data_len (the true data length) is equal to sum(bio). It
      broke the scsi command completion code.
      
      commit e97a294e was introduced to fix
      the above issue. However, the partial completion code doesn't work
      with it. The commit is also a layer violation (scsi mid-layer should
      not know about the block layer's padding).
      
      This patch moves the padding adjustment to blk_rq_map_sg (suggested by
      James). The padding works like the drain buffer. This patch breaks the
      rule that req->data_len is equal to sum(sg), however, the drain buffer
      already broke it. So this patch just restores the rule that
      req->data_len is equal to sub(bio) without breaking anything new.
      
      Now when a low level driver needs padding, blk_rq_map_user and
      blk_rq_map_user_iov guarantee there's enough room for padding.
      blk_rq_map_sg can safely extend the last entry of a scatter list.
      
      blk_rq_map_sg must extend the last entry of a scatter list only for a
      request that got through bio_copy_user_iov. This patches introduces
      new REQ_COPY_USER flag.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: Mike Christie <michaelc@cs.wisc.edu>
      Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      f18573ab
  3. 20 4月, 2008 1 次提交
  4. 19 4月, 2008 5 次提交
  5. 18 4月, 2008 12 次提交
    • B
      ide-scsi: do non-atomic pc->flags testing · e3bfae4c
      Borislav Petkov 提交于
      ...also, convert ide-scsi to using the generic pc->flags defines.
      Signed-off-by: NBorislav Petkov <petkovbb@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      e3bfae4c
    • B
    • B
      ide: remove IDE_*_REG macros · 23579a2a
      Bartlomiej Zolnierkiewicz 提交于
      * Add IDE_{ALTSTATUS,IREASON,BCOUNTL,BCOUNTH}_OFFSET defines.
      
      * Remove IDE_*_REG macros - this results in more readable
        and slightly smaller code.
      
      There should be no functional changes caused by this patch.
      
      Cc: Borislav Petkov <petkovbb@gmail.com>
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      23579a2a
    • B
      ide: add ide_atapi_{discard_data,write_zeros} inline helpers · 7616c0ad
      Bartlomiej Zolnierkiewicz 提交于
      Add ide_atapi_{discard_data,write_zeros} inline helpers to <linux/ide.h>
      and use them instead of home-brewn helpers in ide-{floppy,tape,scsi}.
      
      There should be no functional changes caused by this patch.
      
      Cc: Borislav Petkov <petkovbb@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      7616c0ad
    • T
      libata: kill ata_noop_dev_select() · c9f75b04
      Tejun Heo 提交于
      Now that SFF assumptions are separated out from non-SFF reset
      sequence, port_ops->sff_dev_select() is no longer necessary for
      non-SFF controllers.  Kill ata_noop_dev_select() and ->sff_dev_select
      initialization from base and other non-SFF port_ops.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      c9f75b04
    • T
      libata: remove check_status from non-SFF drivers · 520d06f9
      Tejun Heo 提交于
      Now that all SFF stuff is separated out of core layer, core layer
      doesn't call ops->[alt_]check_status().  In fact, no one calls them
      for non-SFF drivers anymore.  Kill them.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      520d06f9
    • T
      libata: replace tf_read with qc_fill_rtf for non-SFF drivers · 4c9bf4e7
      Tejun Heo 提交于
      Now that all SFF stuff is separated out of core layer, core layer
      doesn't call ops->tf_read directly.  It gets called only via
      ops->qc_fill_rtf() for non-SFF drivers.  This patch directly
      implements private ops->qc_fill_rtf() for non-SFF controllers and kill
      ops->tf_read().
      
      This is much cleaner for non-SFF controllers as some of them have to
      cache SFF register values in private data structure and report the
      cached values via ops->tf_read().  Also, ops->tf_read() gets nasty for
      controllers which don't have clear notion of TF registers when
      operation is not in progress.
      
      As this change makes default ops->qc_fill_rtf unnecessary, move
      ata_sff_qc_fill_rtf() form ata_base_port_ops to ata_sff_port_ops where
      it belongs.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      4c9bf4e7
    • T
      libata: add qc_fill_rtf port operation · 22183bf5
      Tejun Heo 提交于
      On command completion, ata_qc_complete() directly called ops->tf_read
      to fill qc->result_tf.  This patch adds ops->qc_fill_rtf to replace
      hardcoded ops->tf_read usage.
      
      ata_sff_qc_fill_rtf() which uses ops->tf_read to fill result_tf is
      implemented and set in ata_base_port_ops and other ops tables which
      don't inherit from ata_base_port_ops, so this patch doesn't introduce
      any behavior change.
      
      ops->qc_fill_rtf() is similar to ops->sff_tf_read() but can only be
      called when a command finishes.  As some non-SFF controllers don't
      have TF registers defined unless they're associated with in-flight
      commands, this limited operation makes life easier for those drivers
      and help lifting SFF assumptions from libata core layer.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      22183bf5
    • T
      libata: rename SFF port ops · 5682ed33
      Tejun Heo 提交于
      Add sff_ prefix to SFF specific port ops.
      
      This rename is in preparation of separating SFF support out of libata
      core layer.  This patch strictly renames ops and doesn't introduce any
      behavior difference.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      5682ed33
    • T
      libata: make reset related methods proper port operations · a1efdaba
      Tejun Heo 提交于
      Currently reset methods are not specified directly in the
      ata_port_operations table.  If a LLD wants to use custom reset
      methods, it should construct and use a error_handler which uses those
      reset methods.  It's done this way for two reasons.
      
      First, the ops table already contained too many methods and adding
      four more of them would noticeably increase the amount of necessary
      boilerplate code all over low level drivers.
      
      Second, as ->error_handler uses those reset methods, it can get
      confusing.  ie. By overriding ->error_handler, those reset ops can be
      made useless making layering a bit hazy.
      
      Now that ops table uses inheritance, the first problem doesn't exist
      anymore.  The second isn't completely solved but is relieved by
      providing default values - most drivers can just override what it has
      implemented and don't have to concern itself about higher level
      callbacks.  In fact, there currently is no driver which actually
      modifies error handling behavior.  Drivers which override
      ->error_handler just wraps the standard error handler only to prepare
      the controller for EH.  I don't think making ops layering strict has
      any noticeable benefit.
      
      This patch makes ->prereset, ->softreset, ->hardreset, ->postreset and
      their PMP counterparts propoer ops.  Default ops are provided in the
      base ops tables and drivers are converted to override individual reset
      methods instead of creating custom error_handler.
      
      * ata_std_error_handler() doesn't use sata_std_hardreset() if SCRs
        aren't accessible.  sata_promise doesn't need to use separate
        error_handlers for PATA and SATA anymore.
      
      * softreset is broken for sata_inic162x and sata_sx4.  As libata now
        always prefers hardreset, this doesn't really matter but the ops are
        forced to NULL using ATA_OP_NULL for documentation purpose.
      
      * pata_hpt374 needs to use different prereset for the first and second
        PCI functions.  This used to be done by branching from
        hpt374_error_handler().  The proper way to do this is to use
        separate ops and port_info tables for each function.  Converted.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      a1efdaba
    • A
      [SCSI] qla1280: remove version check · 0e4ff797
      Adrian Bunk 提交于
      There's no point for an in-kernel driver to check whether it's compiled
      under kernel < 2.6.0 .
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Cc: Jes Sorensen <jes@sgi.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      0e4ff797
    • A
      17b7a8de
  6. 16 4月, 2008 5 次提交
  7. 12 4月, 2008 1 次提交
  8. 10 4月, 2008 4 次提交
    • J
      [SCSI] lpfc 8.2.6 : Update lpfc driver version to 8.2.6 · 9f448b55
      James Smart 提交于
      Update lpfc driver version to 8.2.6
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      9f448b55
    • J
      [SCSI] lpfc 8.2.6 : Miscellaneous Fixes · 97eab634
      James Smart 提交于
      Miscellaneous Fixes
      - Allow WRITE_VPARAM command when the virtual port is in a stopped state
      - Fixed handling of our queue depth max that was unconditionally raising
        the depth on all vports, rather than just the vport affected.
      - Fix race in interrupt handler for mailbox processing that did not take
        out the host lock.
      - Removed unused functions: find_node, findnode_rpi, and fabric_abort_flogi
      - Correct misspelled word unsolicited in message 0146
      - Correct HW-error 5 handling - it should not reset the adapter
      - Correct handling of IOCBs, which did not null out our pCmd field before
        invoking the midlayer io done function.
      - Changed our maximum supported target id to 4096
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      97eab634
    • J
      [SCSI] lpfc 8.2.6 : PCI Parity and EEH handling fixes · 9b379605
      James Smart 提交于
      PCI Parity and EEH handling Fixes:
      - Under a PCI Data Parity Error, remove a completion routine callback that
        was on a command that we had already failed and released.
      - Under PCI parity error, we were not reinstalling the interrupt handler
        in the slot_reset callback, so we never became functional again.
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      9b379605
    • J
      [SCSI] lpfc 8.2.6 : Multiple discovery fixes · 58da1ffb
      James Smart 提交于
      Multiple Discovery Fixes:
      - Fix race on discovery due to link events coinciding with vport_delete.
      - Use NLP_FABRIC state to filter out switch-based pseudo initiators that
         reuse the same WWNs.
      - Correct erroneous setting of DID=0 in lpfc_matchdid()
      - Correct extra reference count that was in the lookup path for the
        remoteid from an unsolicited ELS.
      - Correct double-free bug in els abort path.
      - Correct FDMI server discovery logic for switch that return a WWN of 0.
      - Fix bugs in ndlp mgmt when a node changes address
      - Correct bug that did not delete RSCNs for vports upon link transitions
      - Fix "0216 Link event during NS query" error which pops up when vports
        are swapped to different switch ports.
      - Add sanity checks on ndlp structures
      - Fix devloss log message to dump WWN correctly
      - Hold off mgmt commands that were interferring with discovery mailbox cmds
      - Remove unnecessary FC_ESTABLISH_LINK logic.
      - Correct some race conditions in the worker thread, resulting in devloss:
        - Clear the work_port_events field before handling the work port events
        - Clear the deferred ring event before handling a deferred ring event
        - Hold the hba lock when waking up the work thread
        - Send an acc for the rscn even when we aren't going to handle it
      - Fix locking behavior that was not properly protecting the ACTIVE flag,
        thus allowing mailbox command order to shift.
      Signed-off-by: NJames Smart <james.smart@emulex.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      58da1ffb
  9. 08 4月, 2008 10 次提交