Commit e35ad7ae authored by Linus Torvalds's avatar Linus Torvalds

Merge http://linux-scsi.bkbits.net/scsi-for-linus-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 9a11cf9e 4075c99a
......@@ -1297,7 +1297,6 @@ Scsi_Host_Template aic7xxx_driver_template = {
*/
.max_sectors = 8192,
#endif
#if defined CONFIG_HIGHIO
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,18)
/* Assume RedHat Distribution with its different HIGHIO conventions. */
.can_dma_32 = 1,
......@@ -1305,7 +1304,6 @@ Scsi_Host_Template aic7xxx_driver_template = {
#else
.highmem_io = 1,
#endif
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
.name = "aic7xxx",
.slave_alloc = ahc_linux_slave_alloc,
......
......@@ -166,6 +166,9 @@ ahc_linux_pci_dev_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
ahc->flags |= AHC_39BIT_ADDRESSING;
ahc->platform_data->hw_dma_mask =
(bus_addr_t)(0x7FFFFFFFFFULL & (bus_addr_t)~0);
} else {
ahc_pci_set_dma_mask(pdev, 0xffffffffULL);
ahc->platform_data->hw_dma_mask = 0xffffffffULL;
}
#endif
ahc->dev_softc = pci;
......
This diff is collapsed.
......@@ -172,8 +172,7 @@ void scsi_times_out(Scsi_Cmnd *scmd)
* see whether the host or the device is offline.
*
* Return value:
* FALSE when dev was taken offline by error recovery. TRUE OK to
* proceed.
* 0 when dev was taken offline by error recovery. 1 OK to proceed.
**/
int scsi_block_when_processing_errors(Scsi_Device *sdev)
{
......@@ -1157,7 +1156,7 @@ static void scsi_eh_offline_sdevs(Scsi_Cmnd *sc_todo, struct Scsi_Host *shost)
if (scsi_eh_eflags_chk(scmd, SCSI_EH_CMD_TIMEOUT))
scmd->result |= (DRIVER_TIMEOUT << 24);
scmd->device->online = FALSE;
scmd->device->online = 0;
scsi_eh_finish_cmd(scmd, shost);
}
return;
......@@ -1222,7 +1221,7 @@ int scsi_decide_disposition(Scsi_Cmnd *scmd)
* if the device is offline, then we clearly just pass the result back
* up to the top level.
*/
if (scmd->device->online == FALSE) {
if (!scmd->device->online) {
SCSI_LOG_ERROR_RECOVERY(5, printk("%s: device offline - report"
" as SUCCESS\n",
__FUNCTION__));
......
......@@ -1060,7 +1060,7 @@ void scsi_request_fn(request_queue_t * q)
*/
void scsi_block_requests(struct Scsi_Host * SHpnt)
{
SHpnt->host_self_blocked = TRUE;
SHpnt->host_self_blocked = 1;
}
/*
......@@ -1087,7 +1087,7 @@ void scsi_unblock_requests(struct Scsi_Host * SHpnt)
{
Scsi_Device *SDloop;
SHpnt->host_self_blocked = FALSE;
SHpnt->host_self_blocked = 0;
/* Now that we are unblocked, try to start the queues. */
list_for_each_entry(SDloop, &SHpnt->my_devices, siblings)
scsi_queue_next_request(SDloop->request_queue, NULL);
......
......@@ -537,9 +537,20 @@ static int sd_ioctl(struct inode * inode, struct file * filp,
return sd_hdio_getgeo(bdev, (struct hd_geometry *)arg);
}
error = scsi_cmd_ioctl(bdev, cmd, arg);
if (error != -ENOTTY)
return error;
/*
* Send SCSI addressing ioctls directly to mid level, send other
* ioctls to block level and then onto mid level if they can't be
* resolved.
*/
switch (cmd) {
case SCSI_IOCTL_GET_IDLUN:
case SCSI_IOCTL_GET_BUS_NUMBER:
return scsi_ioctl(sdp, cmd, (void *)arg);
default:
error = scsi_cmd_ioctl(bdev, cmd, arg);
if (error != -ENOTTY)
return error;
}
return scsi_ioctl(sdp, cmd, (void *)arg);
}
......
......@@ -434,6 +434,17 @@ static int sr_block_ioctl(struct inode *inode, struct file *file, unsigned cmd,
unsigned long arg)
{
struct scsi_cd *cd = scsi_cd(inode->i_bdev->bd_disk);
struct scsi_device *sdev = cd->device;
/*
* Send SCSI addressing ioctls directly to mid level, send other
* ioctls to cdrom/block level.
*/
switch (cmd) {
case SCSI_IOCTL_GET_IDLUN:
case SCSI_IOCTL_GET_BUS_NUMBER:
return scsi_ioctl(sdev, cmd, (void *)arg);
}
return cdrom_ioctl(&cd->cdi, inode, cmd, arg);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment