* Initio INI-9X00U/UW error handling in 2.6 @ 2004-04-26 11:24 Mirko Caserta 2004-04-30 18:33 ` Jonathan McDowell 0 siblings, 1 reply; 4+ messages in thread From: Mirko Caserta @ 2004-04-26 11:24 UTC (permalink / raw) To: Linux Kernel ML I was just wondering if someone is working on a fix for this: i91u: PCI Base=0xD000, IRQ=11, BIOS=0xFF000, SCSI ID=7 i91u: Reset SCSI Bus ... ERROR: SCSI host `INI9100U' has no error handling ERROR: This is not a safe way to run your SCSI host ERROR: The error handling must be added to this driver [<c02f7728>] scsi_host_alloc+0x2d8/0x2e0 [<c02f774f>] scsi_register+0x1f/0x70 [<c02ffe0f>] i91u_detect+0x1bf/0x2d0 [<c0300440>] i91u_release+0x0/0x46 [<c04e43fe>] init_this_scsi_driver+0x3e/0x100 [<c04c892c>] do_initcalls+0x2c/0xc0 [<c012e1c5>] init_workqueues+0x15/0x2c [<c01004ba>] init+0x5a/0x190 [<c0100460>] init+0x0/0x190 [<c0104035>] kernel_thread_helper+0x5/0x10 scsi0 : Initio INI-9X00U/UW SCSI device driver; Revision: 1.03g scsi: Device offlined - not ready after error recovery: host 0 channel 0 id 0 lun 0 scsi: Device offlined - not ready after error recovery: host 0 channel 0 id 2 lun 0 scsi: Device offlined - not ready after error recovery: host 0 channel 0 id 4 lun 0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Initio INI-9X00U/UW error handling in 2.6 2004-04-26 11:24 Initio INI-9X00U/UW error handling in 2.6 Mirko Caserta @ 2004-04-30 18:33 ` Jonathan McDowell 2004-05-02 21:58 ` Mirko Caserta 0 siblings, 1 reply; 4+ messages in thread From: Jonathan McDowell @ 2004-04-30 18:33 UTC (permalink / raw) To: Mirko Caserta; +Cc: Linux Kernel ML [-- Attachment #1: Type: text/plain, Size: 800 bytes --] On Mon, Apr 26, 2004 at 01:24:34PM +0200, Mirko Caserta wrote: > I was just wondering if someone is working on a fix for this: > > i91u: PCI Base=0xD000, IRQ=11, BIOS=0xFF000, SCSI ID=7 > i91u: Reset SCSI Bus ... > ERROR: SCSI host `INI9100U' has no error handling > ERROR: This is not a safe way to run your SCSI host ... Try the attached; I wrote it a while back and made a cleanup based on comments from James Bottomley, but no one else seemed to be using the driver. It worked for me however. J. -- ] http://www.earth.li/~noodles/ [] Hitler and a TGB. On a bike. At [ ] PGP/GPG Key @ the.earth.li [] 158mph. End of thread. Have a [ ] via keyserver, web or email. [] nice 'froup. [ ] RSA: 4DC4E7FD / DSA: 5B430367 [] [ [-- Attachment #2: initio.patch --] [-- Type: text/plain, Size: 2243 bytes --] diff -ruN linux-2.6.5.orig/drivers/scsi/ini9100u.c linux-2.6.5/drivers/scsi/ini9100u.c --- linux-2.6.5.orig/drivers/scsi/ini9100u.c 2004-04-30 19:36:05.000000000 +0100 +++ linux-2.6.5/drivers/scsi/ini9100u.c 2004-04-30 19:40:06.000000000 +0100 @@ -106,6 +106,8 @@ * - Changed the assumption that HZ = 100 * 10/17/03 mc - v1.04 * - added new DMA API support + * 06/01/04 jmd - v1.04a + * - Re-add reset_bus support **************************************************************************/ #define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S) @@ -149,6 +151,7 @@ .queuecommand = i91u_queue, // .abort = i91u_abort, // .reset = i91u_reset, + .eh_bus_reset_handler = i91u_bus_reset, .bios_param = i91u_biosparam, .can_queue = 1, .this_id = 1, @@ -161,7 +164,7 @@ char *i91uCopyright = "Copyright (C) 1996-98"; char *i91uInitioName = "by Initio Corporation"; char *i91uProductName = "INI-9X00U/UW"; -char *i91uVersion = "v1.04"; +char *i91uVersion = "v1.04a"; #define TULSZ(sz) (sizeof(sz) / sizeof(sz[0])) #define TUL_RDWORD(x,y) (short)(inl((int)((ULONG)((ULONG)x+(UCHAR)y)) )) @@ -550,6 +553,15 @@ return tul_device_reset(pHCB, (ULONG) SCpnt, SCpnt->device->id, reset_flags); } +int i91u_bus_reset(Scsi_Cmnd * SCpnt) +{ + HCS *pHCB; + + pHCB = (HCS *) SCpnt->device->host->base; + tul_reset_scsi(pHCB, 0); + return SUCCESS; +} + /* * Return the "logical geometry" */ diff -ruN linux-2.6.5.orig/drivers/scsi/ini9100u.h linux-2.6.5/drivers/scsi/ini9100u.h --- linux-2.6.5.orig/drivers/scsi/ini9100u.h 2003-12-18 02:58:56.000000000 +0000 +++ linux-2.6.5/drivers/scsi/ini9100u.h 2004-04-30 19:39:30.000000000 +0100 @@ -82,10 +82,11 @@ extern int i91u_queue(Scsi_Cmnd *, void (*done) (Scsi_Cmnd *)); extern int i91u_abort(Scsi_Cmnd *); extern int i91u_reset(Scsi_Cmnd *, unsigned int); +extern int i91u_bus_reset(Scsi_Cmnd *); extern int i91u_biosparam(struct scsi_device *, struct block_device *, sector_t, int *); -#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.03g" +#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.04a" #define VIRT_TO_BUS(i) (unsigned int) virt_to_bus((void *)(i)) #define ULONG unsigned long ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Initio INI-9X00U/UW error handling in 2.6 2004-04-30 18:33 ` Jonathan McDowell @ 2004-05-02 21:58 ` Mirko Caserta 2004-05-04 22:52 ` Jonathan McDowell 0 siblings, 1 reply; 4+ messages in thread From: Mirko Caserta @ 2004-05-02 21:58 UTC (permalink / raw) To: Jonathan McDowell; +Cc: Linux Kernel ML [-- Attachment #1: Type: text/plain, Size: 764 bytes --] On Fri, 30 Apr 2004 19:33:49 +0100, Jonathan McDowell <noodles@earth.li> wrote: > On Mon, Apr 26, 2004 at 01:24:34PM +0200, Mirko Caserta wrote: >> I was just wondering if someone is working on a fix for this: >> >> i91u: PCI Base=0xD000, IRQ=11, BIOS=0xFF000, SCSI ID=7 >> i91u: Reset SCSI Bus ... >> ERROR: SCSI host `INI9100U' has no error handling >> ERROR: This is not a safe way to run your SCSI host > ... > > Try the attached; I wrote it a while back and made a cleanup based on > comments from James Bottomley, but no one else seemed to be using the > driver. It worked for me however. I had to hack it a little bit to make it cleanly patch my 2.6.6-rc2-mm2 and it works great. Thanks, could you please let this patch make its way upstream? Mirko [-- Attachment #2: initio.patch --] [-- Type: application/octet-stream, Size: 2243 bytes --] diff -ruN linux-2.6.5.orig/drivers/scsi/ini9100u.c linux-2.6.5/drivers/scsi/ini9100u.c --- linux-2.6.5.orig/drivers/scsi/ini9100u.c 2004-04-30 19:36:05.000000000 +0100 +++ linux-2.6.5/drivers/scsi/ini9100u.c 2004-04-30 19:40:06.000000000 +0100 @@ -106,6 +106,8 @@ * - Changed the assumption that HZ = 100 * 10/17/03 mc - v1.04 * - added new DMA API support + * 06/01/04 jmd - v1.04a + * - Re-add reset_bus support **************************************************************************/ #define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S) @@ -149,6 +151,7 @@ .queuecommand = i91u_queue, // .abort = i91u_abort, // .reset = i91u_reset, + .eh_bus_reset_handler = i91u_bus_reset, .bios_param = i91u_biosparam, .can_queue = 1, .this_id = 1, @@ -161,7 +164,7 @@ char *i91uCopyright = "Copyright (C) 1996-98"; char *i91uInitioName = "by Initio Corporation"; char *i91uProductName = "INI-9X00U/UW"; -char *i91uVersion = "v1.04"; +char *i91uVersion = "v1.04a"; #define TULSZ(sz) (sizeof(sz) / sizeof(sz[0])) #define TUL_RDWORD(x,y) (short)(inl((int)((ULONG)((ULONG)x+(UCHAR)y)) )) @@ -550,6 +553,15 @@ return tul_device_reset(pHCB, (ULONG) SCpnt, SCpnt->device->id, reset_flags); } +int i91u_bus_reset(Scsi_Cmnd * SCpnt) +{ + HCS *pHCB; + + pHCB = (HCS *) SCpnt->device->host->base; + tul_reset_scsi(pHCB, 0); + return SUCCESS; +} + /* * Return the "logical geometry" */ diff -ruN linux-2.6.5.orig/drivers/scsi/ini9100u.h linux-2.6.5/drivers/scsi/ini9100u.h --- linux-2.6.5.orig/drivers/scsi/ini9100u.h 2003-12-18 02:58:56.000000000 +0000 +++ linux-2.6.5/drivers/scsi/ini9100u.h 2004-04-30 19:39:30.000000000 +0100 @@ -82,10 +82,11 @@ extern int i91u_queue(Scsi_Cmnd *, void (*done) (Scsi_Cmnd *)); extern int i91u_abort(Scsi_Cmnd *); extern int i91u_reset(Scsi_Cmnd *, unsigned int); +extern int i91u_bus_reset(Scsi_Cmnd *); extern int i91u_biosparam(struct scsi_device *, struct block_device *, sector_t, int *); -#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.03g" +#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.04a" #define VIRT_TO_BUS(i) (unsigned int) virt_to_bus((void *)(i)) #define ULONG unsigned long ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Initio INI-9X00U/UW error handling in 2.6 2004-05-02 21:58 ` Mirko Caserta @ 2004-05-04 22:52 ` Jonathan McDowell 0 siblings, 0 replies; 4+ messages in thread From: Jonathan McDowell @ 2004-05-04 22:52 UTC (permalink / raw) To: Mirko Caserta; +Cc: Linux Kernel ML, linux-scsi On Sun, May 02, 2004 at 11:58:59PM +0200, Mirko Caserta wrote: > On Fri, 30 Apr 2004 19:33:49 +0100, Jonathan McDowell <noodles@earth.li> > wrote: > >On Mon, Apr 26, 2004 at 01:24:34PM +0200, Mirko Caserta wrote: > >>I was just wondering if someone is working on a fix for this: > >> > >>i91u: PCI Base=0xD000, IRQ=11, BIOS=0xFF000, SCSI ID=7 > >>i91u: Reset SCSI Bus ... > >>ERROR: SCSI host `INI9100U' has no error handling > >>ERROR: This is not a safe way to run your SCSI host > >... > > > >Try the attached; I wrote it a while back and made a cleanup based on > >comments from James Bottomley, but no one else seemed to be using the > >driver. It worked for me however. > I had to hack it a little bit to make it cleanly patch my 2.6.6-rc2-mm2 > and it works great. Cool, glad it works for you. > Thanks, could you please let this patch make its way upstream? I guess the right people to ask are the folk on linux-scsi; is there any chance of it going into the linux-scsi bk patches that akpm is pulling into -mm? J. -- Revd. Jonathan McDowell, ULC | noodles is criminal ------------ diff -ruN linux-2.6.5.orig/drivers/scsi/ini9100u.c linux-2.6.5/drivers/scsi/ini9100u.c --- linux-2.6.5.orig/drivers/scsi/ini9100u.c 2004-04-30 19:36:05.000000000 +0100 +++ linux-2.6.5/drivers/scsi/ini9100u.c 2004-04-30 19:40:06.000000000 +0100 @@ -106,6 +106,8 @@ * - Changed the assumption that HZ = 100 * 10/17/03 mc - v1.04 * - added new DMA API support + * 06/01/04 jmd - v1.04a + * - Re-add reset_bus support **************************************************************************/ #define CVT_LINUX_VERSION(V,P,S) (V * 65536 + P * 256 + S) @@ -149,6 +151,7 @@ .queuecommand = i91u_queue, // .abort = i91u_abort, // .reset = i91u_reset, + .eh_bus_reset_handler = i91u_bus_reset, .bios_param = i91u_biosparam, .can_queue = 1, .this_id = 1, @@ -161,7 +164,7 @@ char *i91uCopyright = "Copyright (C) 1996-98"; char *i91uInitioName = "by Initio Corporation"; char *i91uProductName = "INI-9X00U/UW"; -char *i91uVersion = "v1.04"; +char *i91uVersion = "v1.04a"; #define TULSZ(sz) (sizeof(sz) / sizeof(sz[0])) #define TUL_RDWORD(x,y) (short)(inl((int)((ULONG)((ULONG)x+(UCHAR)y)) )) @@ -550,6 +553,15 @@ return tul_device_reset(pHCB, (ULONG) SCpnt, SCpnt->device->id, reset_flags); } +int i91u_bus_reset(Scsi_Cmnd * SCpnt) +{ + HCS *pHCB; + + pHCB = (HCS *) SCpnt->device->host->base; + tul_reset_scsi(pHCB, 0); + return SUCCESS; +} + /* * Return the "logical geometry" */ diff -ruN linux-2.6.5.orig/drivers/scsi/ini9100u.h linux-2.6.5/drivers/scsi/ini9100u.h --- linux-2.6.5.orig/drivers/scsi/ini9100u.h 2003-12-18 02:58:56.000000000 +0000 +++ linux-2.6.5/drivers/scsi/ini9100u.h 2004-04-30 19:39:30.000000000 +0100 @@ -82,10 +82,11 @@ extern int i91u_queue(Scsi_Cmnd *, void (*done) (Scsi_Cmnd *)); extern int i91u_abort(Scsi_Cmnd *); extern int i91u_reset(Scsi_Cmnd *, unsigned int); +extern int i91u_bus_reset(Scsi_Cmnd *); extern int i91u_biosparam(struct scsi_device *, struct block_device *, sector_t, int *); -#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.03g" +#define i91u_REVID "Initio INI-9X00U/UW SCSI device driver; Revision: 1.04a" #define VIRT_TO_BUS(i) (unsigned int) virt_to_bus((void *)(i)) #define ULONG unsigned long ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-05-04 22:53 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-04-26 11:24 Initio INI-9X00U/UW error handling in 2.6 Mirko Caserta 2004-04-30 18:33 ` Jonathan McDowell 2004-05-02 21:58 ` Mirko Caserta 2004-05-04 22:52 ` Jonathan McDowell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox