From: Kenn H. <ke...@us...> - 2003-03-26 00:06:50
|
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; |