]> git.neil.brown.name Git - history.git/commit
scsi_initialise_merge_fn() will only set highio if ->type == TYPE_DISK.
authorAndrew Morton <akpm@zip.com.au>
Mon, 30 Sep 2002 13:38:52 +0000 (09:38 -0400)
committerJames Bottomley <jejb@mulgrave.(none)>
Mon, 30 Sep 2002 13:38:52 +0000 (09:38 -0400)
commit2b56224279a0bc1cd1ede5446ff5d968cb315d60
tree113d78b1e5830509297d1bc6a7d238bef7e0dfa1
parentb2fd37fa241bb2157f637de6f35247d4757a1599
scsi_initialise_merge_fn() will only set highio if ->type == TYPE_DISK.
But it's called from scsi_add_lun()->scsi_alloc_sdev() before the type
is known.  The type is -1 all the time in scsi_initialise_merge_fn()
and scsi always bounces.

This patch makes it do the right thing - just enable block-highmem for
all scsi devices.

Jens had this to say:

"I guess that block-highmem has been around long enough, that I can
 use the term 'historically' at least in the kernel sense :-)

 This extra check was added for IDE because each device type driver
 (ide-disk, ide-cd, etc) needed to be updated to not assume virtual
 mappings of request data was valid.  I only did that for ide-disk,
 since this is the only one where bounce buffering really hurt
 performance wise.  So while ide-cd and ide-tape etc could have been
 updated, I deemed it uninteresting and not worthwhile.

 Now, this was just carried straight into the scsi counter parts,
 conveniently, because of laziness.  A quick glance at sr shows that it
 too can aviod bouncing easily (no changes needed).  st may need some
 changes, though.  So again, for scsi it was a matter of not impacting
 existing code in 2.4 too much.

 So TYPE_DISK check can be killed in 2.5 if someone does the work of
 checking that it is safe.  I'm not so sure it will make eg your SCSI
 CD-ROM that much faster :-)"
drivers/scsi/scsi_merge.c