Update of /cvsroot/linux-vax/kernel-2.5/drivers/scsi
In directory sc8-pr-cvs1:/tmp/cvs-serv28285/drivers/scsi
Modified Files:
Makefile scsi_ioctl.c scsi_merge.c
Log Message:
Merge with 2.5.44
Index: Makefile
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.5/drivers/scsi/Makefile,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Makefile 22 Mar 2003 19:49:41 -0000 1.12
+++ Makefile 26 Mar 2003 00:06:46 -0000 1.13
@@ -138,6 +138,10 @@
cpqfc-objs := cpqfcTSinit.o cpqfcTScontrol.o cpqfcTSi2c.o \
cpqfcTSworker.o cpqfcTStrigger.o
+# Files generated that shall be removed upon make clean
+clean-files := 53c8xx_d.h 53c7xx_d.h sim710_d.h 53c700_d.h \
+ 53c8xx_u.h 53c7xx_u.h sim710_u.h 53c700_u.h
+
include $(TOPDIR)/Rules.make
$(obj)/53c7,8xx.o: $(obj)/53c8xx_d.h $(obj)/53c8xx_u.h
Index: scsi_ioctl.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.5/drivers/scsi/scsi_ioctl.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- scsi_ioctl.c 24 Mar 2003 23:47:44 -0000 1.9
+++ scsi_ioctl.c 26 Mar 2003 00:06:47 -0000 1.10
@@ -160,7 +160,7 @@
return 0;
scsi_cmd[0] = ALLOW_MEDIUM_REMOVAL;
- scsi_cmd[1] = (dev->scsi_level <= SCSI_2) ? (dev->lun << 5) : 0;
+ scsi_cmd[1] = 0;
scsi_cmd[2] = 0;
scsi_cmd[3] = 0;
scsi_cmd[4] = state;
@@ -297,12 +297,6 @@
if(copy_from_user(buf, cmd_in + cmdlen, inlen))
goto error;
- /*
- * Set the lun field to the correct value.
- */
- if (dev->scsi_level <= SCSI_2)
- cmd[1] = (cmd[1] & 0x1f) | (dev->lun << 5);
-
switch (opcode) {
case FORMAT_UNIT:
timeout = FORMAT_UNIT_TIMEOUT;
@@ -423,7 +417,6 @@
int scsi_ioctl(Scsi_Device * dev, int cmd, void *arg)
{
char scsi_cmd[MAX_COMMAND_SIZE];
- char cmd_byte1;
/* No idea how this happens.... */
if (!dev)
@@ -438,7 +431,6 @@
if (!scsi_block_when_processing_errors(dev)) {
return -ENODEV;
}
- cmd_byte1 = (dev->scsi_level <= SCSI_2) ? (dev->lun << 5) : 0;
switch (cmd) {
case SCSI_IOCTL_GET_IDLUN:
@@ -491,7 +483,7 @@
return scsi_set_medium_removal(dev, SCSI_REMOVAL_ALLOW);
case SCSI_IOCTL_TEST_UNIT_READY:
scsi_cmd[0] = TEST_UNIT_READY;
- scsi_cmd[1] = cmd_byte1;
+ scsi_cmd[1] = 0;
scsi_cmd[2] = scsi_cmd[3] = scsi_cmd[5] = 0;
scsi_cmd[4] = 0;
return ioctl_internal_command((Scsi_Device *) dev, scsi_cmd,
@@ -499,7 +491,7 @@
break;
case SCSI_IOCTL_START_UNIT:
scsi_cmd[0] = START_STOP;
- scsi_cmd[1] = cmd_byte1;
+ scsi_cmd[1] = 0;
scsi_cmd[2] = scsi_cmd[3] = scsi_cmd[5] = 0;
scsi_cmd[4] = 1;
return ioctl_internal_command((Scsi_Device *) dev, scsi_cmd,
@@ -507,7 +499,7 @@
break;
case SCSI_IOCTL_STOP_UNIT:
scsi_cmd[0] = START_STOP;
- scsi_cmd[1] = cmd_byte1;
+ scsi_cmd[1] = 0;
scsi_cmd[2] = scsi_cmd[3] = scsi_cmd[5] = 0;
scsi_cmd[4] = 0;
return ioctl_internal_command((Scsi_Device *) dev, scsi_cmd,
Index: scsi_merge.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.5/drivers/scsi/scsi_merge.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- scsi_merge.c 14 Mar 2003 00:43:39 -0000 1.11
+++ scsi_merge.c 26 Mar 2003 00:06:47 -0000 1.12
@@ -62,16 +62,28 @@
int count, gfp_mask;
/*
- * First we need to know how many scatter gather segments are needed.
+ * non-sg block request. FIXME: check bouncing for isa hosts!
*/
- count = req->nr_phys_segments;
+ if ((req->flags & REQ_BLOCK_PC) && !req->bio) {
+ /*
+ * FIXME: isa bouncing
+ */
+ if (SCpnt->host->unchecked_isa_dma)
+ goto fail;
+
+ SCpnt->request_bufflen = req->data_len;
+ SCpnt->request_buffer = req->data;
+ req->buffer = req->data;
+ SCpnt->use_sg = 0;
+ return 1;
+ }
/*
* we used to not use scatter-gather for single segment request,
* but now we do (it makes highmem I/O easier to support without
* kmapping pages)
*/
- SCpnt->use_sg = count;
+ SCpnt->use_sg = req->nr_phys_segments;
gfp_mask = GFP_NOIO;
if (in_interrupt()) {
@@ -111,6 +123,7 @@
/*
* kill it. there should be no leftover blocks in this request
*/
+fail:
SCpnt = scsi_end_request(SCpnt, 0, req->nr_sectors);
BUG_ON(SCpnt);
return 0;
|