diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 23:59:17 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 23:59:17 -0800 |
| commit | 51f4a834d5661caada395e99fd713065f04bfc69 (patch) | |
| tree | 3c409bfa49dd93aefccd9a05dcec76899c059828 /drivers/message | |
| parent | fe0976511d3b5cf2894da54bc451e561bd6b1482 (diff) | |
v2.5.0.11 -> v2.5.1
- Al Viro: floppy_eject cleanup, mount cleanups
- Jens Axboe: bio updates
- Ingo Molnar: mempool fixes
- GOTO Masanori: Fix O_DIRECT error handling
Diffstat (limited to 'drivers/message')
| -rw-r--r-- | drivers/message/fusion/mptctl.c | 1 | ||||
| -rw-r--r-- | drivers/message/fusion/mptscsih.c | 38 | ||||
| -rw-r--r-- | drivers/message/i2o/i2o_block.c | 9 |
3 files changed, 26 insertions, 22 deletions
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c index 372583a05c21..6044b0531110 100644 --- a/drivers/message/fusion/mptctl.c +++ b/drivers/message/fusion/mptctl.c @@ -69,6 +69,7 @@ #include <linux/version.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/major.h> #include <linux/errno.h> #include <linux/init.h> #include <linux/slab.h> diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 1e7c77b395af..9b6d48e9e3e9 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c @@ -65,7 +65,7 @@ #include <linux/errno.h> #include <linux/kdev_t.h> #include <linux/blkdev.h> -#include <linux/blk.h> /* for io_request_lock (spinlock) decl */ +#include <linux/blk.h> #include "../../scsi/scsi.h" #include "../../scsi/hosts.h" #include "../../scsi/sd.h" @@ -246,9 +246,9 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r) mf_chk = search_taskQ(1,sc,MPI_SCSITASKMGMT_TASKTYPE_ABORT_TASK); if (mf_chk != NULL) { sc->result = DID_ABORT << 16; - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&sc->host->host_lock, flags); sc->scsi_done(sc); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&sc->host->host_lock, flags); return 1; } } @@ -426,9 +426,9 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r) scsi_to_pci_dma_dir(sc->sc_data_direction)); } - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&sc->host->host_lock, flags); sc->scsi_done(sc); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&sc->host->host_lock, flags); } return 1; @@ -928,9 +928,9 @@ mptscsih_qcmd(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) } SCpnt->resid = SCpnt->request_bufflen - mpt_sdev->sense_sz; SCpnt->result = 0; -/* spin_lock(&io_request_lock); */ +/* spin_lock(&SCpnt->host->host_lock); */ SCpnt->scsi_done(SCpnt); -/* spin_unlock(&io_request_lock); */ +/* spin_unlock(&SCpnt->host->host_lock); */ return 0; } } @@ -1333,9 +1333,9 @@ mptscsih_abort(Scsi_Cmnd * SCpnt) if (ctx2abort == -1) { printk(KERN_ERR MYNAM ": ERROR - ScsiLookup fail(#2) for SCpnt=%p\n", SCpnt); SCpnt->result = DID_SOFT_ERROR << 16; - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&SCpnt->host->host_lock, flags); SCpnt->scsi_done(SCpnt); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&SCpnt->host->host_lock, flags); mpt_free_msg_frame(ScsiTaskCtx, hd->ioc->id, mf); } else { dprintk((KERN_INFO MYNAM ":DbG: ctx2abort = %08x\n", ctx2abort)); @@ -1352,9 +1352,9 @@ mptscsih_abort(Scsi_Cmnd * SCpnt) ": WARNING[2] - IOC error (%d) processing TaskMgmt request (mf=%p:sc=%p)\n", i, mf, SCpnt); SCpnt->result = DID_SOFT_ERROR << 16; - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&SCpnt->host->host_lock, flags); SCpnt->scsi_done(SCpnt); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&SCpnt->host->host_lock, flags); mpt_free_msg_frame(ScsiTaskCtx, hd->ioc->id, mf); } } @@ -1428,9 +1428,9 @@ mptscsih_dev_reset(Scsi_Cmnd * SCpnt) ": WARNING[3] - IOC error (%d) processing TaskMgmt request (mf=%p:sc=%p)\n", i, mf, SCpnt); SCpnt->result = DID_SOFT_ERROR << 16; - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&SCpnt->host->host_lock, flags); SCpnt->scsi_done(SCpnt); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&SCpnt->host->host_lock, flags); mpt_free_msg_frame(ScsiTaskCtx, hd->ioc->id, mf); } @@ -1502,9 +1502,9 @@ mptscsih_bus_reset(Scsi_Cmnd * SCpnt) ": WARNING[4] - IOC error (%d) processing TaskMgmt request (mf=%p:sc=%p)\n", i, mf, SCpnt); SCpnt->result = DID_SOFT_ERROR << 16; - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&SCpnt->host->host_lock, flags); SCpnt->scsi_done(SCpnt); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&SCpnt->host->host_lock, flags); mpt_free_msg_frame(ScsiTaskCtx, hd->ioc->id, mf); } @@ -1748,9 +1748,9 @@ mptscsih_taskmgmt_bh(void *sc) if (ctx2abort == -1) { printk(KERN_ERR MYNAM ": ERROR - ScsiLookup fail(#1) for SCpnt=%p\n", SCpnt); SCpnt->result = DID_SOFT_ERROR << 16; - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&SCpnt->host->host_lock, flags); SCpnt->scsi_done(SCpnt); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&SCpnt->host->host_lock, flags); mpt_free_msg_frame(ScsiTaskCtx, hd->ioc->id, mf); continue; } @@ -1797,9 +1797,9 @@ mptscsih_taskmgmt_bh(void *sc) != 0) { printk(KERN_WARNING MYNAM ": WARNING[1] - IOC error (%d) processing TaskMgmt request (mf=%p:sc=%p)\n", i, mf, SCpnt); SCpnt->result = DID_SOFT_ERROR << 16; - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&SCpnt->host->host_lock, flags); SCpnt->scsi_done(SCpnt); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&SCpnt->host->host_lock, flags); mpt_free_msg_frame(ScsiTaskCtx, hd->ioc->id, mf); } else { /* Spin-Wait for TaskMgmt complete!!! */ diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c index bdf52592bd26..c64b7393b484 100644 --- a/drivers/message/i2o/i2o_block.c +++ b/drivers/message/i2o/i2o_block.c @@ -1301,7 +1301,8 @@ static int i2ob_install_device(struct i2o_controller *c, struct i2o_device *d, i request_queue_t *q = i2ob_dev[unit].req_queue; blk_queue_max_sectors(q, 256); - blk_queue_max_segments(q, (d->controller->status_block->inbound_frame_size - 8)/2); + blk_queue_max_phys_segments(q, (d->controller->status_block->inbound_frame_size - 8)/2); + blk_queue_max_hw_segments(q, (d->controller->status_block->inbound_frame_size - 8)/2); if(d->controller->type == I2O_TYPE_PCI && d->controller->bus.pci.queue_buggy == 2) i2ob_dev[i].depth = 32; @@ -1309,14 +1310,16 @@ static int i2ob_install_device(struct i2o_controller *c, struct i2o_device *d, i if(d->controller->type == I2O_TYPE_PCI && d->controller->bus.pci.queue_buggy == 1) { blk_queue_max_sectors(q, 32); - blk_queue_max_segments(q, 8); + blk_queue_max_phys_segments(q, 8); + blk_queue_max_hw_segments(q, 8); i2ob_dev[i].depth = 4; } if(d->controller->type == I2O_TYPE_PCI && d->controller->bus.pci.short_req) { blk_queue_max_sectors(q, 8); - blk_queue_max_segments(q, 8); + blk_queue_max_phys_segments(q, 8); + blk_queue_max_hw_segments(q, 8); } } |
