linux-stable/drivers/firewire
Stefan Richter 09b12dd4e3 firewire: fw-sbp2: enforce s/g segment size limit
1. We don't need to round the SBP-2 segment size limit down to a
   multiple of 4 kB (0xffff -> 0xf000).  It is only necessary to
   ensure quadlet alignment (0xffff -> 0xfffc).

2. Use dma_set_max_seg_size() to tell the DMA mapping infrastructure
   and the block IO layer about the restriction.  This way we can
   remove the size checks and segment splitting in the queuecommand
   path.

   This assumes that no other code in the firewire stack uses
   dma_map_sg() with conflicting requirements.  It furthermore assumes
   that the controller device's platform actually allows us to set the
   segment size to our liking.  Assert the latter with a BUG_ON().

3. Also use blk_queue_max_segment_size() to tell the block IO layer
   about it.  It cannot know it because our scsi_add_host() does not
   point to the FireWire controller's device.

Thanks to Grant Grundler and FUJITA Tomonori for advice.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2008-10-15 22:21:10 +02:00
..
fw-card.c firewire: fw_send_request_sync() 2008-10-15 22:21:09 +02:00
fw-cdev.c firewire: Preserve response data alignment bug when it is harmless 2008-08-02 20:03:49 +02:00
fw-device.c firewire: fw_send_request_sync() 2008-10-15 22:21:09 +02:00
fw-device.h firewire: remove unused struct members 2008-07-14 13:06:03 +02:00
fw-iso.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
fw-ohci.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-07-27 10:24:06 -07:00
fw-ohci.h firewire: fw-ohci: log regAccessFail events 2008-04-18 17:55:34 +02:00
fw-sbp2.c firewire: fw-sbp2: enforce s/g segment size limit 2008-10-15 22:21:10 +02:00
fw-topology.c firewire: fix race of bus reset with request transmission 2008-07-14 13:06:04 +02:00
fw-topology.h firewire: reread config ROM when device reset the bus 2008-04-18 17:55:36 +02:00
fw-transaction.c firewire: fw_send_request_sync() 2008-10-15 22:21:09 +02:00
fw-transaction.h firewire: fw_send_request_sync() 2008-10-15 22:21:09 +02:00
Kconfig firewire: Kconfig help update 2008-08-19 18:47:56 +02:00
Makefile firewire: prefix modules with firewire- instead of fw- 2007-05-27 23:21:01 +02:00