public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] m68k link error and NCR5380_exit()
       [not found]                     ` <Pine.LNX.4.61.0502212233290.15372@loopy.telegraphics.com.au>
@ 2005-03-07  6:30                       ` Finn Thain
  2005-03-07  6:37                         ` Christoph Hellwig
  0 siblings, 1 reply; 9+ messages in thread
From: Finn Thain @ 2005-03-07  6:30 UTC (permalink / raw)
  To: James.Bottomley; +Cc: linux scsi, Geert Uytterhoeven, Noah Misch, linux m68k


If this patch looks okay to you SCSI people, I'll ask the m68k maintainer 
to apply it. It fixes a link failure in the !CONFIG_HOTPLUG m68k kernel 
caused by the mac_scsi driver. The patch should apply to v2.6.10.

AFAICT, the introduction of __devexit NCR5380_exit() in 2.6.9 necessitated
this fix for m68k macs, which don't need hotplug, and typically want 
mac_scsi built into the kernel.

Given !MODULE and !HOTPLUG, g_NCR5380 has the same problem (as do other 
NCR5380 SCSI drivers, I expect). However, the x86 linker doesn't care, and 
I don't have the hardware, so I haven't patched them.

Signed-off-by: fthain@telegraphics.com.au


--- a/drivers/scsi/mac_scsi.c	2005-02-28 15:12:31.050279180 +1100
+++ b/drivers/scsi/mac_scsi.c	2005-02-28 15:14:16.499002032 +1100
@@ -233,7 +233,7 @@
  *
  */
  
-int macscsi_detect(Scsi_Host_Template * tpnt)
+int __init macscsi_detect(Scsi_Host_Template * tpnt)
 {
     static int called = 0;
     int flags = 0;
@@ -322,7 +322,7 @@
     return 1;
 }
 
-int macscsi_release (struct Scsi_Host *shpnt)
+int __exit macscsi_release (struct Scsi_Host *shpnt)
 {
 	if (shpnt->irq != SCSI_IRQ_NONE)
 		free_irq (shpnt->irq, NCR5380_intr);
@@ -336,7 +336,7 @@
  * Our 'bus reset on boot' function
  */
 
-static void mac_scsi_reset_boot(struct Scsi_Host *instance)
+static void __init mac_scsi_reset_boot(struct Scsi_Host *instance)
 {
 	unsigned long end;
 
@@ -586,7 +586,7 @@
 	.proc_info			= macscsi_proc_info,
 	.name				= "Macintosh NCR5380 SCSI",
 	.detect				= macscsi_detect,
-	.release			= macscsi_release,
+	.release			= __exit_p(macscsi_release),
 	.info				= macscsi_info,
 	.queuecommand			= macscsi_queue_command,
 	.eh_abort_handler		= macscsi_abort,
--- a/drivers/scsi/scsi_module.c	2005-02-28 18:16:17.408413324 +1100
+++ b/drivers/scsi/scsi_module.c	2005-02-28 18:16:46.696503105 +1100
@@ -21,12 +21,14 @@
 	struct list_head *l;
 	int error;
 
+#ifdef MODULE
 	if (!sht->release) {
 		printk(KERN_ERR
 		    "scsi HBA driver %s didn't set a release method.\n",
 		    sht->name);
 		return -EINVAL;
 	}
+#endif
 
 	sht->module = THIS_MODULE;
 	INIT_LIST_HEAD(&sht->legacy_hosts);

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] m68k link error and NCR5380_exit()
  2005-03-07  6:30                       ` [PATCH] m68k link error and NCR5380_exit() Finn Thain
@ 2005-03-07  6:37                         ` Christoph Hellwig
  2005-03-07 13:45                           ` Finn Thain
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2005-03-07  6:37 UTC (permalink / raw)
  To: Finn Thain
  Cc: James.Bottomley, linux scsi, Geert Uytterhoeven, Noah Misch,
	linux m68k

>  	.detect				= macscsi_detect,
> -	.release			= macscsi_release,
> +	.release			= __exit_p(macscsi_release),

Please get rid of your ->detect/->release useage instead.  Allocate
the host struct directly with scsi_host_alloc and add it when setup using
scsi_add_host/scsi_scan_host in your init routine and call scsi_remove_host/
scsi_host_put in the module exit routine.  see qla1280.c for an example
that does this for the 2.6 case and to ease your porting also has the 2.4
code ifdefed so you have the direct comparism.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] m68k link error and NCR5380_exit()
  2005-03-07  6:37                         ` Christoph Hellwig
@ 2005-03-07 13:45                           ` Finn Thain
  2005-03-07 17:53                             ` Brad Boyer
  0 siblings, 1 reply; 9+ messages in thread
From: Finn Thain @ 2005-03-07 13:45 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: James.Bottomley, linux scsi, Geert Uytterhoeven, Noah Misch,
	linux m68k



On Mon, 7 Mar 2005, Christoph Hellwig wrote:

> >  	.detect				= macscsi_detect,
> > -	.release			= macscsi_release,
> > +	.release			= __exit_p(macscsi_release),
> 
> Please get rid of your ->detect/->release useage instead.  Allocate the 
> host struct directly with scsi_host_alloc and add it when setup using 
> scsi_add_host/scsi_scan_host in your init routine and call 
> scsi_remove_host/ scsi_host_put in the module exit routine.

Fair enough, I just noticed that scsi_module.c is deprecated. My patch is 
flogging a dead horse.

I guess that those who require the legacy NCR5380 drivers (being 
mac_scsi.c, dtc.c, t128.c, pas16.c and g_NCR5380.c) can use CONFIG_HOTPLUG 
to avoid the problem.

> see qla1280.c for an example that does this for the 2.6 case and to ease 
> your porting also has the 2.4 code ifdefed so you have the direct 
> comparism.

Having qla1280.c as a guide will help, thanks. My next question is, what 
does a NuBus architecture do in place of pci_(un)register_driver?

My main reservation about embarking on this is that I don't think mac_scsi 
ever actually worked under 2.6 (or 2.5?) kernels. I'm not competent enough 
to submit a good, untested patch for a broken driver. Maybe the best thing 
is to make it work before worrying about style. At least then I can test 
my work.

To that end, I've included a boot log below. Maybe someone familiar with 
the NCR5380 driver can make some sense of the failure?

-f


Linux version 2.6.10-m68k (fthain@nippy) (gcc version 3.4.3) #6 Fri Mar 11 09:10:02 EST 2005
Detected Macintosh model: 27
 Penguin bootinfo data:
 Video: addr 0x60b00000 row 0x280 depth 8 dimensions 640 x 480
 Videological 0xf0300000 phys. 0x60b00000, SCC at 0x50f04000
 Boottime: 0xe7bb738f GMTBias: 0x0
 Machine ID: 27 CPUid: 0x1 memory size: 0x8
VIA1 at 50f00000 is a 6522 or clone
VIA2 at 50f26000 is an RBV
Apple Macintosh LC III
On node 0 totalpages: 2048
  DMA zone: 2048 pages, LIFO batch:1
  Normal zone: 0 pages, LIFO batch:1
  HighMem zone: 0 pages, LIFO batch:1
Built 1 zonelists
Kernel command line: ro root=/dev/sdb4 init=/boot.sh debug debug=ser console=tty0
Killing onboard sonic... Done.
PID hash table entries: 64 (order: 6, 1024 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 5452k/8192k available (2028k kernel code, 568k data, 120k init)
Calibrating delay loop... 6.11 BogoMIPS (lpj=30592)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
NET: Registered protocol family 16
NuBus: Scanning NuBus slots.
SCSI subsystem initialized
audit: initializing netlink socket (disabled)
audit(0.860:0): initialized
macfb: framebuffer at 0x60b00000, mapped to 0xd0000000, size 300k
macfb: mode is 640x480x8, linelength=640
macfb: scrolling: redraw
fbcon_startup: No VBL detected, using timer based cursor.
mac_delete_irq: tried to remove invalid irq
Console: switching to colour frame buffer device 80x30
fb0: Macintosh Sonora built-in frame buffer device
io scheduler noop registered
io scheduler anticipatory registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with
idebus=xx
Macintosh SCSI: resetting the SCSI bus...<6> done
scsi0: generic 5380 at port 50F10000 irq<6> 19<6> options CAN_QUEUE=16 CMD_PER_LUN=2 release=2<6>
scsi0: generic options AUTOSENSE PSEUDO DMA USLEEP, USLEEP_POLL=20 USLEEP_SLEEP=2 generic release=7
scsi0 :
elevator: using anticipatory as default io scheduler
blk_queue_max_hw_segments: set to minimum 1
  Vendor: QUANTUM   Model: CTS80S            Rev: 4.2
  Type:   Direct-Access                      ANSI SCSI revision: 02
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
  Vendor: CONNER    Model: CP30540  SUN0535  Rev: B0CD
  Type:   Direct-Access                      ANSI SCSI revision: 02
blk_queue_max_hw_segments: set to minimum 1
SCSI device sda: 166200 512-byte hdwr sectors (85 MB)
scsi0 : aborting command
scsi0 : destination target 0, lun 0
        command = Mode Sense 00 08 00 20 00

NCR5380 core release=7.
Base Addr: 0x00000    io_port: 50f10000      IRQ: 19.
scsi0 : destination target 0, lun 0
        command = 26 (0x1a)00 08 00 20 00
scsi0: issue_queue
scsi0: disconnected_queue

scsi0 : aborting command
scsi0 : destination target 0, lun 0
        command = Mode Sense 00 08 00 20 00

NCR5380 core release=7.
Base Addr: 0x00000    io_port: 50f10000      IRQ: 19.
scsi0 : destination target 0, lun 0
        command = 26 (0x1a)00 08 00 20 00
scsi0: issue_queue
scsi0: disconnected_queue


NCR5380 core release=7.
Base Addr: 0x00000    io_port: 50f10000      IRQ: 19.
scsi0 : destination target 0, lun 0
        command = 26 (0x1a)00 08 00 20 00
scsi0: issue_queue
scsi0: disconnected_queue

Data read fault at 0x667a26b9 in Super Data (pc=0x149b6a)
BAD KERNEL BUSERR
Oops: 00000000
Modules linked in:
PC: [<00149b6a>] macscsi_intr+0x1a/0x74

SR: 2700  SP: 003c1e4c  a2: 0031c420
d0: 00002000    d1: 00000000    d2: 00002000    d3: 00000000
d4: 00000001    d5: 00000013    a0: 667a2669    a1: 50f26000
Process scsi_eh_0 (pid: 11, stackpage=0031d420)
Stack from 003c1e4c:
        00000000 00002000 00000000 00000001 00000013 667a2669 50f26000 0031c420
        00002000 ffffffff 00000000 27000014 9b6ab008 1eec0755 120049c1 667a26b9
        667a26b9 00002000 10280050 00149b72 00149b70 00149b6e 667a26ff 00500064
        000ff487 00000001 50f00000 00003c18 00000000 80080000 667a26b9 00000000
        00000040 00149b66 00002200 00000013 00000013 00000013 00242164 003c1f4c
        00007d30 00000013 00149b50 003c1f4c 00002008 00000008 00001c13 003bdc90
Call Trace: [<00008f00>] via2_irq+0x6e/0x96
 [<00002000>] _start+0x0/0x8
 [<00141372>] __scsi_iterate_devices+0x0/0x5e
 [<00001000>] _stext+0x0/0x1000
 [<00003d90>] process_int+0x4c/0x62
 [<000024a0>] inthandler+0x2a/0x2c
 [<0001a36f>] sys_sched_rr_get_interval+0xb/0xa6
 [<00002000>] _start+0x0/0x8
 [<00141372>] __scsi_iterate_devices+0x0/0x5e
 [<00001000>] _stext+0x0/0x1000
 [<00007780>] parse_booter+0x188/0x58a
 [<0014aa12>] macscsi_bus_reset+0x1a/0x26
 [<00143a4e>] scsi_try_bus_reset+0x44/0xb2
 [<001442fc>] scsi_error_handler+0x77c/0x844
 [<00186ad0>] tcp_write_timer+0x6a/0x5f2
 [<00001000>] _stext+0x0/0x1000
 [<00143b80>] scsi_error_handler+0x0/0x844
 [<00002762>] kernel_thread+0x3c/0x50

Kernel panic - not syncing: Aiee, killing interrupt handler!


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] m68k link error and NCR5380_exit()
  2005-03-07 13:45                           ` Finn Thain
@ 2005-03-07 17:53                             ` Brad Boyer
  2005-03-07 23:42                               ` Kenn Humborg
  0 siblings, 1 reply; 9+ messages in thread
From: Brad Boyer @ 2005-03-07 17:53 UTC (permalink / raw)
  To: Finn Thain
  Cc: Christoph Hellwig, James.Bottomley, linux scsi,
	Geert Uytterhoeven, Noah Misch, linux m68k

On Tue, Mar 08, 2005 at 12:45:28AM +1100, Finn Thain wrote:
> Having qla1280.c as a guide will help, thanks. My next question is, what 
> does a NuBus architecture do in place of pci_(un)register_driver?

Eventually, you should use macio_(un)register_driver. However, I
don't have the support quite finished for mac68k. If I get some
time to work on it, I have most of the code written. It's close
enough that it should work on nubus-pmac, and I passed some
preliminary versions of the code off to them.

> My main reservation about embarking on this is that I don't think mac_scsi 
> ever actually worked under 2.6 (or 2.5?) kernels. I'm not competent enough 
> to submit a good, untested patch for a broken driver. Maybe the best thing 
> is to make it work before worrying about style. At least then I can test 
> my work.

I certainly never got it to work, but I only tried on my IIfx which
doesn't have exactly the same version of the chip anyway.

> To that end, I've included a boot log below. Maybe someone familiar with 
> the NCR5380 driver can make some sense of the failure?

Looks to me like the interrupt came in after the driver already
decided to give up for some reason. I had a big problem with that
while I was trying to fix the driver to use DMA on the IIfx. I
never did get it to give me the interrupt for dma completion
before the scsi mid layer timed out.

	Brad Boyer
	flar@allandria.com


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] m68k link error and NCR5380_exit()
  2005-03-07 17:53                             ` Brad Boyer
@ 2005-03-07 23:42                               ` Kenn Humborg
  2005-03-08 15:16                                 ` mac_scsi boot crash, was " Finn Thain
  0 siblings, 1 reply; 9+ messages in thread
From: Kenn Humborg @ 2005-03-07 23:42 UTC (permalink / raw)
  To: Brad Boyer
  Cc: Finn Thain, Christoph Hellwig, James.Bottomley, linux scsi,
	Geert Uytterhoeven, Noah Misch, linux m68k

On Mon, Mar 07, 2005 at 09:53:22AM -0800, Brad Boyer wrote:
> On Tue, Mar 08, 2005 at 12:45:28AM +1100, Finn Thain wrote:
> > My main reservation about embarking on this is that I don't think mac_scsi 
> > ever actually worked under 2.6 (or 2.5?) kernels. I'm not competent enough 
> > to submit a good, untested patch for a broken driver. Maybe the best thing 
> > is to make it work before worrying about style. At least then I can test 
> > my work.
> 
> I certainly never got it to work, but I only tried on my IIfx which
> doesn't have exactly the same version of the chip anyway.
> 
> > To that end, I've included a boot log below. Maybe someone familiar with 
> > the NCR5380 driver can make some sense of the failure?
> 
> Looks to me like the interrupt came in after the driver already
> decided to give up for some reason. I had a big problem with that
> while I was trying to fix the driver to use DMA on the IIfx. I
> never did get it to give me the interrupt for dma completion
> before the scsi mid layer timed out.

It broke in 2.6.9 for us Linux/VAX guys.

Try the NCR5380_set_timer() change from this patch:

   http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg01499.html

Later,
Kenn
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mac_scsi boot crash, was Re: [PATCH] m68k link error and NCR5380_exit()
  2005-03-07 23:42                               ` Kenn Humborg
@ 2005-03-08 15:16                                 ` Finn Thain
  2005-03-08 17:39                                   ` Brad Boyer
  0 siblings, 1 reply; 9+ messages in thread
From: Finn Thain @ 2005-03-08 15:16 UTC (permalink / raw)
  To: Kenn Humborg; +Cc: Brad Boyer, linux scsi, linux m68k


On Mon, 7 Mar 2005, Kenn Humborg wrote:

> On Mon, Mar 07, 2005 at 09:53:22AM -0800, Brad Boyer wrote:

> > ...

> > Looks to me like the interrupt came in after the driver already 
> > decided to give up for some reason. I had a big problem with that 
> > while I was trying to fix the driver to use DMA on the IIfx. I never 
> > did get it to give me the interrupt for dma completion before the scsi 
> > mid layer timed out.
> 
> It broke in 2.6.9 for us Linux/VAX guys.
> 
> Try the NCR5380_set_timer() change from this patch:
> 
>    http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg01499.html

That seems to have helped. It still crashes with the same bus error, but 
the preceding issue/disconnect/abort cycle is gone now. Log is below. 
Hopefully I'll get a chance to look at the bus error soon.

BTW, I found your patch is available here intact,

    http://article.gmane.org/gmane.linux.scsi/14617/raw

Thanks for your help.

-f


Linux version 2.6.10-m68k (fthain@nippy) (gcc version 3.4.3) #20 Wed Mar 9 01:42:11 EST 2005
Detected Macintosh model: 27
 Penguin bootinfo data:
 Video: addr 0x60b00000 row 0x280 depth 8 dimensions 640 x 480
 Videological 0xf0300000 phys. 0x60b00000, SCC at 0x50f04000
 Boottime: 0xe7c4e54a GMTBias: 0x0
 Machine ID: 27 CPUid: 0x1 memory size: 0x8
VIA1 at 50f00000 is a 6522 or clone
VIA2 at 50f26000 is an RBV
Apple Macintosh LC III
On node 0 totalpages: 2048
  DMA zone: 2048 pages, LIFO batch:1
  Normal zone: 0 pages, LIFO batch:1
  HighMem zone: 0 pages, LIFO batch:1
Built 1 zonelists
Kernel command line: ro root=/dev/sdb4 init=/boot.sh debug debug=ser console=tty0
Killing onboard sonic... Done.
PID hash table entries: 64 (order: 6, 1024 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 5788k/8192k available (1736k kernel code, 528k data, 116k init)
Calibrating delay loop... 6.11 BogoMIPS (lpj=30592)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
NET: Registered protocol family 16
NuBus: Scanning NuBus slots.
SCSI subsystem initialized
audit: initializing netlink socket (disabled)
audit(0.860:0): initialized
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
Initializing Cryptographic API
macfb: framebuffer at 0x60b00000, mapped to 0xd0000000, size 300k
macfb: mode is 640x480x8, linelength=640
macfb: scrolling: redraw
fbcon_startup: No VBL detected, using timer based cursor.
mac_delete_irq: tried to remove invalid irq
Console: switching to colour frame buffer device 80x30
fb0: Macintosh Sonora built-in frame buffer device
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
Macintosh SCSI: resetting the SCSI bus...<6> done
scsi0: generic 5380 at port 50F10000 irq<6> 19<6> options CAN_QUEUE=16 CMD_PER_LUN=2 release=2<6>
scsi0: generic options AUTOSENSE PSEUDO DMA USLEEP, USLEEP_POLL=20 USLEEP_SLEEP=2 generic release=7
scsi0 :
elevator: using anticipatory as default io scheduler
blk_queue_max_hw_segments: set to minimum 1
  Vendor: QUANTUM   Model: CTS80S            Rev: 4.2
  Type:   Direct-Access                      ANSI SCSI revision: 02
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
blk_queue_max_hw_segments: set to minimum 1
  Vendor: CONNER    Model: CP30540  SUN0535  Rev: B0CD
  Type:   Direct-Access                      ANSI SCSI revision: 02
blk_queue_max_hw_segments: set to minimum 1
SCSI device sda: 166200 512-byte hdwr sectors (85 MB)
SCSI device sda: drive cache: write through
SCSI device sda: 166200 512-byte hdwr sectors (85 MB)
SCSI device sda: drive cache: write through
 sda:Data read fault at 0x667a26b9 in Super Data (pc=0x114cec)
BAD KERNEL BUSERR
Oops: 00000000
Modules linked in:
PC: [<00114cec>] macscsi_intr+0x1a/0x74

SR: 2700  SP: 00239e74  a2: 001b34cc
d0: 00232100    d1: 00000100    d2: 00232100    d3: 00000000
d4: 00000001    d5: 00000013    a0: 667a2669    a1: 50f26000
Process swapper (pid: 0, stackpage=001b44cc)
Stack from 00239e74:
        00000100 00232100 00000000 00000001 00000013 667a2669 50f26000 001b34cc
        00232100 ffffffff 00000000 27000011 4cecb008 0eec0755 120049c1 667a26b9
        667a26b9 00002100 10280050 00114cf4 00114cf2 00114cf0 667a26ff 00500064
        000ff487 00000001 00000000 00003c18 00000000 80080000 667a26b9 00000000
        001f3208 00114ce8 00232200 00000013 00000013 00000013 001f32d0 00239f74
        00007d30 00000013 00114cd2 00239f74 0023a008 00000008 00001c13 00002000
Call Trace: [<00008eb8>] via2_irq+0x6e/0x96
 [<00186ad0>] __func__.1+0xe6f/0x21576
 [<00001000>] _stext+0x0/0x1000
 [<00177776>] schedule+0x0/0x4d2
 [<00003d90>] process_int+0x4c/0x62
 [<000024a0>] inthandler+0x2a/0x2c
 [<00186ad0>] __func__.1+0xe6f/0x21576
 [<00001000>] _stext+0x0/0x1000
 [<0000261c>] default_idle+0x0/0xe
 [<00186ad0>] __func__.1+0xe6f/0x21576
 [<00001000>] _stext+0x0/0x1000
 [<0000261c>] default_idle+0x0/0xe
 [<00002640>] cpu_idle+0x16/0x22
 [<0001c778>] printk+0x0/0x18
 [<00002022>] rest_init+0x1a/0x1c
 [<0021d03c>] start_kernel+0x1b8/0x1c4
 [<0021b3d2>] __start+0x3d2/0xa48

Kernel panic - not syncing: Aiee, killing interrupt handler!

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: mac_scsi boot crash, was Re: [PATCH] m68k link error and NCR5380_exit()
  2005-03-08 15:16                                 ` mac_scsi boot crash, was " Finn Thain
@ 2005-03-08 17:39                                   ` Brad Boyer
  2005-03-09 12:00                                     ` [PATCH] mac_scsi boot crash fix Finn Thain
  0 siblings, 1 reply; 9+ messages in thread
From: Brad Boyer @ 2005-03-08 17:39 UTC (permalink / raw)
  To: Finn Thain; +Cc: Kenn Humborg, linux scsi, linux m68k

On Wed, Mar 09, 2005 at 02:16:45AM +1100, Finn Thain wrote:
> That seems to have helped. It still crashes with the same bus error, but 
> the preceding issue/disconnect/abort cycle is gone now. Log is below. 
> Hopefully I'll get a chance to look at the bus error soon.

I notice it got through all the device identify stuff. It dies as soon
as it actually tries to tranfer a real block of data (the partition map)
and do something useful with it. Could you see if disabling PDMA helps?
There's a way to do it with the command line, but that is messy. If you
don't mind recompiling, just set the FLAG_NO_PSEUDO_DMA flag like it
always does for the IIfx case. The performance will be terrible, but
it might help narrow down the problem.

	Brad Boyer
	flar@allandria.com


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] mac_scsi boot crash fix
  2005-03-08 17:39                                   ` Brad Boyer
@ 2005-03-09 12:00                                     ` Finn Thain
  2005-03-09 12:06                                       ` Kenn Humborg
  0 siblings, 1 reply; 9+ messages in thread
From: Finn Thain @ 2005-03-09 12:00 UTC (permalink / raw)
  To: Brad Boyer; +Cc: Kenn Humborg, Geert Uytterhoeven, linux scsi, linux m68k


I found the bus error, the trivial fix is below.

I don't know if this patch will work for others quite yet, since my kernel 
has had some work done to slow interrupt handling. I intend to post that 
patch soon.

On Tue, 8 Mar 2005, Brad Boyer wrote:

> I notice it got through all the device identify stuff. It dies as soon
> as it actually tries to tranfer a real block of data (the partition map)
> and do something useful with it. Could you see if disabling PDMA helps?

I tested both: my Daystar Mac II now works great with or without PDMA, so 
hopefully the IIfx will work too.

Kenn, my macs like your patch :-) Did it make it upstream?

-f


Signed-off-by: Finn Thain <fthain@telegraphics.com.au>


--- a/drivers/scsi/mac_scsi.c	2005-03-09 22:21:01.369397570 +1100
+++ b/drivers/scsi/mac_scsi.c	2005-03-09 22:02:12.594082086 +1100
@@ -302,7 +302,7 @@ int macscsi_detect(Scsi_Host_Template * 
 
     if (instance->irq != SCSI_IRQ_NONE)
 	if (request_irq(instance->irq, NCR5380_intr, IRQ_FLG_SLOW, 
-		"ncr5380", NCR5380_intr)) {
+		"ncr5380", instance)) {
 	    printk(KERN_WARNING "scsi%d: IRQ%d not free, interrupts disabled\n",
 		   instance->host_no, instance->irq);
 	    instance->irq = SCSI_IRQ_NONE;

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] mac_scsi boot crash fix
  2005-03-09 12:00                                     ` [PATCH] mac_scsi boot crash fix Finn Thain
@ 2005-03-09 12:06                                       ` Kenn Humborg
  0 siblings, 0 replies; 9+ messages in thread
From: Kenn Humborg @ 2005-03-09 12:06 UTC (permalink / raw)
  To: Brad Boyer
  Cc: Kenn Humborg, Geert Uytterhoeven, linux scsi, linux m68k,
	Finn Thain

> Kenn, my macs like your patch :-) Did it make it upstream?

Yes.

   http://linux-scsi.bkbits.net:8080/scsi-misc-2.6/cset@422c0597IwLRDp_6wcde
xrPCoj1REg?nav=index.html|ChangeSet@-3d

Later,
Kenn




^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-03-09 12:07 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <Pine.LNX.4.61.0502110155440.7310@loopy.telegraphics.com.au>
     [not found] ` <20050210171518.GA22265@pants.nu>
     [not found]   ` <Pine.LNX.4.61.0502111930340.11381@loopy.telegraphics.com.au>
     [not found]     ` <Pine.LNX.4.61.0502121539440.20941@loopy.telegraphics.com.au>
     [not found]       ` <20050212075645.GA30669@pants.nu>
     [not found]         ` <Pine.LNX.4.61.0502122135230.21876@loopy.telegraphics.com.au>
     [not found]           ` <20050213040948.GA10198@orchestra.cs.caltech.edu>
     [not found]             ` <Pine.LNX.4.61.0502131618470.25204@loopy.telegraphics.com.au>
     [not found]               ` <20050213063225.GA17415@orchestra.cs.caltech.edu>
     [not found]                 ` <Pine.LNX.4.61.0502131736300.25553@loopy.telegraphics.com.au>
     [not found]                   ` <20050213075506.GA18622@orchestra.cs.caltech.edu>
     [not found]                     ` <Pine.LNX.4.61.0502212233290.15372@loopy.telegraphics.com.au>
2005-03-07  6:30                       ` [PATCH] m68k link error and NCR5380_exit() Finn Thain
2005-03-07  6:37                         ` Christoph Hellwig
2005-03-07 13:45                           ` Finn Thain
2005-03-07 17:53                             ` Brad Boyer
2005-03-07 23:42                               ` Kenn Humborg
2005-03-08 15:16                                 ` mac_scsi boot crash, was " Finn Thain
2005-03-08 17:39                                   ` Brad Boyer
2005-03-09 12:00                                     ` [PATCH] mac_scsi boot crash fix Finn Thain
2005-03-09 12:06                                       ` Kenn Humborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox