linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ide-tape oops
@ 2005-03-10  2:25 Grahame Jordan
  2005-03-10  3:13 ` Randy.Dunlap
  2005-03-10  5:23 ` Randy.Dunlap
  0 siblings, 2 replies; 6+ messages in thread
From: Grahame Jordan @ 2005-03-10  2:25 UTC (permalink / raw)
  To: linux-ide

Hi,

I have a machine on which when I run something like mt -f /dev/ht0 status
it seg faults. However I have another machine same spec that works OK?

Any help would be appreciated

Thanks

Grahame Jordan

Debian testing
Linux hanlay 2.6.8-2-686-smp #1 SMP Mon Jan 24 02:32:52 EST 2005 i686
GNU/Linux
P4 3.2GHz
1GB RAM

 <6>i2c /dev entries driver
Unable to handle kernel NULL pointer dereference at virtual address 00000020
 printing eip:
f891744e
*pde = 00000000
Oops: 0000 [#3]
PREEMPT SMP
Modules linked in: i2c_dev i2c_i801 i2c_core tsdev mousedev psmouse ipv6
snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport
snd_mpu401_uart snd_rawmidi snd_seq_device snd hw_random shpchp pciehp
pci_hotplug intel_agp intel_mch_agp agpgart evdev ehci_hcd eth1394
uhci_hcd usbcore i810_audio ac97_codec soundcore piix sk98lin ohci1394
capability commoncap ide_tape sbp2 ieee1394 ide_cd ide_core genrtc ext2
ext3 jbd mbcache sr_mod cdrom sd_mod sata_promise ata_piix libata scsi_mod
unix font vesafb cfbcopyarea cfbimgblt cfbfillrect
CPU:    0
EIP:    0060:[<f891744e>]    Not tainted
EFLAGS: 00010297   (2.6.8-2-686-smp)
EIP is at idetape_chrdev_open+0x3e/0x190 [ide_tape]
eax: 00000000   ebx: 00000000   ecx: f738d440   edx: fffffffa
esi: 00000000   edi: cb534000   ebp: f7642380   esp: cb535dac
ds: 007b   es: 007b   ss: 0068
Process mt (pid: 7038, threadinfo=cb534000 task=f7005210)
Stack: f738b51c f7642380 0000000f 00000001 00000286 00000000 00000132
f7b2ac00
       f756cd9c 422faee6 24eb6ec0 f756cdd8 cb457400 cb457404 40165000
c1000000
       c014de6b c1169f40 422faee6 24eb6ec0 00000000 c02de380 00000282
00000246
Call Trace:
 [<c014de6b>] zap_pte_range+0x3b/0x2d0
 [<c0142a56>] buffered_rmqueue+0x116/0x230
 [<c0142e80>] __alloc_pages+0x310/0x370
 [<c013e2bb>] find_get_page+0x3b/0x70
 [<c013f5b9>] filemap_nopage+0x229/0x3c0
 [<c0179cf1>] dput+0x31/0x270
 [<c016fe4e>] link_path_walk+0xc2e/0x1020
 [<c014d9ee>] pte_alloc_map+0xae/0x100
 [<c016ebf7>] permission+0x67/0x80
 [<c016a453>] cdev_get+0x53/0xb0
 [<c016a0a5>] chrdev_open+0x125/0x290
 [<c0160931>] get_empty_filp+0x71/0x110
 [<c015ec2a>] dentry_open+0x16a/0x260
 [<c015eab8>] filp_open+0x68/0x70
 [<c015ed69>] get_unused_fd+0x49/0x100
 [<c015ef9b>] sys_open+0x5b/0x90
 [<c01061fb>] syscall_call+0x7/0xb
Code: 8b 5e 20 89 b5 80 00 00 00 f0 0f ba ab fc 18 00 00 02 19 c0




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

* Re: ide-tape oops
  2005-03-10  2:25 ide-tape oops Grahame Jordan
@ 2005-03-10  3:13 ` Randy.Dunlap
  2005-03-10  5:23 ` Randy.Dunlap
  1 sibling, 0 replies; 6+ messages in thread
From: Randy.Dunlap @ 2005-03-10  3:13 UTC (permalink / raw)
  To: Grahame Jordan; +Cc: linux-ide

Grahame Jordan wrote:
> Hi,
> 
> I have a machine on which when I run something like mt -f /dev/ht0 status
> it seg faults. However I have another machine same spec that works OK?
> 
> Any help would be appreciated
> 
> Thanks
> 
> Grahame Jordan
> 
> Debian testing
> Linux hanlay 2.6.8-2-686-smp #1 SMP Mon Jan 24 02:32:52 EST 2005 i686

Is it possible for you to try to recreate this on a more recent
kernel?

> GNU/Linux
> P4 3.2GHz
> 1GB RAM
> 
>  <6>i2c /dev entries driver
> Unable to handle kernel NULL pointer dereference at virtual address 00000020
>  printing eip:
> f891744e
> *pde = 00000000
> Oops: 0000 [#3]
> PREEMPT SMP
> Modules linked in: i2c_dev i2c_i801 i2c_core tsdev mousedev psmouse ipv6
> snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport
> snd_mpu401_uart snd_rawmidi snd_seq_device snd hw_random shpchp pciehp
> pci_hotplug intel_agp intel_mch_agp agpgart evdev ehci_hcd eth1394
> uhci_hcd usbcore i810_audio ac97_codec soundcore piix sk98lin ohci1394
> capability commoncap ide_tape sbp2 ieee1394 ide_cd ide_core genrtc ext2
> ext3 jbd mbcache sr_mod cdrom sd_mod sata_promise ata_piix libata scsi_mod
> unix font vesafb cfbcopyarea cfbimgblt cfbfillrect
> CPU:    0
> EIP:    0060:[<f891744e>]    Not tainted
> EFLAGS: 00010297   (2.6.8-2-686-smp)
> EIP is at idetape_chrdev_open+0x3e/0x190 [ide_tape]
> eax: 00000000   ebx: 00000000   ecx: f738d440   edx: fffffffa
> esi: 00000000   edi: cb534000   ebp: f7642380   esp: cb535dac
> ds: 007b   es: 007b   ss: 0068
> Process mt (pid: 7038, threadinfo=cb534000 task=f7005210)
> Stack: f738b51c f7642380 0000000f 00000001 00000286 00000000 00000132
> f7b2ac00
>        f756cd9c 422faee6 24eb6ec0 f756cdd8 cb457400 cb457404 40165000
> c1000000
>        c014de6b c1169f40 422faee6 24eb6ec0 00000000 c02de380 00000282
> 00000246
> Call Trace:
>  [<c014de6b>] zap_pte_range+0x3b/0x2d0
>  [<c0142a56>] buffered_rmqueue+0x116/0x230
>  [<c0142e80>] __alloc_pages+0x310/0x370
>  [<c013e2bb>] find_get_page+0x3b/0x70
>  [<c013f5b9>] filemap_nopage+0x229/0x3c0
>  [<c0179cf1>] dput+0x31/0x270
>  [<c016fe4e>] link_path_walk+0xc2e/0x1020
>  [<c014d9ee>] pte_alloc_map+0xae/0x100
>  [<c016ebf7>] permission+0x67/0x80
>  [<c016a453>] cdev_get+0x53/0xb0
>  [<c016a0a5>] chrdev_open+0x125/0x290
>  [<c0160931>] get_empty_filp+0x71/0x110
>  [<c015ec2a>] dentry_open+0x16a/0x260
>  [<c015eab8>] filp_open+0x68/0x70
>  [<c015ed69>] get_unused_fd+0x49/0x100
>  [<c015ef9b>] sys_open+0x5b/0x90
>  [<c01061fb>] syscall_call+0x7/0xb
> Code: 8b 5e 20 89 b5 80 00 00 00 f0 0f ba ab fc 18 00 00 02 19 c0


-- 
~Randy

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

* Re: ide-tape oops
  2005-03-10  2:25 ide-tape oops Grahame Jordan
  2005-03-10  3:13 ` Randy.Dunlap
@ 2005-03-10  5:23 ` Randy.Dunlap
  2005-03-11 10:22   ` Grahame Jordan
  1 sibling, 1 reply; 6+ messages in thread
From: Randy.Dunlap @ 2005-03-10  5:23 UTC (permalink / raw)
  To: Grahame Jordan; +Cc: linux-ide

[-- Attachment #1: Type: text/plain, Size: 2616 bytes --]

Grahame Jordan wrote:
> Hi,
> 
> I have a machine on which when I run something like mt -f /dev/ht0 status
> it seg faults. However I have another machine same spec that works OK?
> 
> Any help would be appreciated
> 

<drive> is null in idetape_chrdev_open.
Please apply and test with the attached patch, just to try to
find out what is going one.

> 
> Debian testing
> Linux hanlay 2.6.8-2-686-smp #1 SMP Mon Jan 24 02:32:52 EST 2005 i686
> GNU/Linux
> P4 3.2GHz
> 1GB RAM
> 
>  <6>i2c /dev entries driver
> Unable to handle kernel NULL pointer dereference at virtual address 00000020
>  printing eip:
> f891744e
> *pde = 00000000
> Oops: 0000 [#3]
> PREEMPT SMP
> Modules linked in: i2c_dev i2c_i801 i2c_core tsdev mousedev psmouse ipv6
> snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport
> snd_mpu401_uart snd_rawmidi snd_seq_device snd hw_random shpchp pciehp
> pci_hotplug intel_agp intel_mch_agp agpgart evdev ehci_hcd eth1394
> uhci_hcd usbcore i810_audio ac97_codec soundcore piix sk98lin ohci1394
> capability commoncap ide_tape sbp2 ieee1394 ide_cd ide_core genrtc ext2
> ext3 jbd mbcache sr_mod cdrom sd_mod sata_promise ata_piix libata scsi_mod
> unix font vesafb cfbcopyarea cfbimgblt cfbfillrect
> CPU:    0
> EIP:    0060:[<f891744e>]    Not tainted
> EFLAGS: 00010297   (2.6.8-2-686-smp)
> EIP is at idetape_chrdev_open+0x3e/0x190 [ide_tape]
> eax: 00000000   ebx: 00000000   ecx: f738d440   edx: fffffffa
> esi: 00000000   edi: cb534000   ebp: f7642380   esp: cb535dac
> ds: 007b   es: 007b   ss: 0068
> Process mt (pid: 7038, threadinfo=cb534000 task=f7005210)
> Stack: f738b51c f7642380 0000000f 00000001 00000286 00000000 00000132
> f7b2ac00
>        f756cd9c 422faee6 24eb6ec0 f756cdd8 cb457400 cb457404 40165000
> c1000000
>        c014de6b c1169f40 422faee6 24eb6ec0 00000000 c02de380 00000282
> 00000246
> Call Trace:
>  [<c014de6b>] zap_pte_range+0x3b/0x2d0
>  [<c0142a56>] buffered_rmqueue+0x116/0x230
>  [<c0142e80>] __alloc_pages+0x310/0x370
>  [<c013e2bb>] find_get_page+0x3b/0x70
>  [<c013f5b9>] filemap_nopage+0x229/0x3c0
>  [<c0179cf1>] dput+0x31/0x270
>  [<c016fe4e>] link_path_walk+0xc2e/0x1020
>  [<c014d9ee>] pte_alloc_map+0xae/0x100
>  [<c016ebf7>] permission+0x67/0x80
>  [<c016a453>] cdev_get+0x53/0xb0
>  [<c016a0a5>] chrdev_open+0x125/0x290
>  [<c0160931>] get_empty_filp+0x71/0x110
>  [<c015ec2a>] dentry_open+0x16a/0x260
>  [<c015eab8>] filp_open+0x68/0x70
>  [<c015ed69>] get_unused_fd+0x49/0x100
>  [<c015ef9b>] sys_open+0x5b/0x90
>  [<c01061fb>] syscall_call+0x7/0xb
> Code: 8b 5e 20 89 b5 80 00 00 00 f0 0f ba ab fc 18 00 00 02 19 c0


-- 
~Randy

[-- Attachment #2: ide_tape_test.patch --]
[-- Type: text/x-patch, Size: 1344 bytes --]


idetape_chrdev_open() is finding drive == NULL; test why?

Signed-off-by: Randy Dunlap <rddunlap@osdl.org>

diffstat:=
 drivers/ide/ide-tape.c |    5 +++++
 1 files changed, 5 insertions(+)

diff -Naurp ./drivers/ide/ide-tape.c~ide_tape_test ./drivers/ide/ide-tape.c
--- ./drivers/ide/ide-tape.c~ide_tape_test	2005-03-01 23:37:54.000000000 -0800
+++ ./drivers/ide/ide-tape.c	2005-03-09 21:16:57.000000000 -0800
@@ -4108,6 +4108,8 @@ static int idetape_chrdev_open (struct i
 	if (i >= MAX_HWIFS * MAX_DRIVES)
 		return -ENXIO;
 	drive = idetape_chrdevs[i].drive;
+	printk("ide-tape-open-test: using minor = %d, i = %d, drive = 0x%p\n",
+		minor, i, drive);
 	tape = drive->driver_data;
 	filp->private_data = drive;
 
@@ -4640,6 +4642,7 @@ static int idetape_cleanup (ide_drive_t 
 		return 1;
 	}
 	idetape_chrdevs[minor].drive = NULL;
+	printk("ide-tape-cleanup-test: clearing drive for minor = %d\n", minor);
 	spin_unlock_irqrestore(&ide_lock, flags);
 	DRIVER(drive)->busy = 0;
 	(void) ide_unregister_subdriver(drive);
@@ -4779,6 +4782,8 @@ static int idetape_attach (ide_drive_t *
 		;
 	idetape_setup(drive, tape, minor);
 	idetape_chrdevs[minor].drive = drive;
+	printk("ide-tape-attach-test: using minor = %d for drive = 0x%p\n",
+		minor, drive);
 
 	devfs_mk_cdev(MKDEV(HWIF(drive)->major, minor),
 			S_IFCHR | S_IRUGO | S_IWUGO,

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

* Re: ide-tape oops
  2005-03-10  5:23 ` Randy.Dunlap
@ 2005-03-11 10:22   ` Grahame Jordan
  2005-03-12 23:54     ` Randy.Dunlap
  0 siblings, 1 reply; 6+ messages in thread
From: Grahame Jordan @ 2005-03-11 10:22 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: Grahame Jordan, linux-ide

Randy,

Applied patch and get:

Mar 11 21:02:37 hanlay -- MARK --
Mar 11 21:08:45 hanlay kernel: ide-tape-open-test: using minor = 0, i = 0,
drive = 0x00000000
Mar 11 21:08:45 hanlay kernel: f8917470
Mar 11 21:08:45 hanlay kernel: PREEMPT SMP
...

Does not look like it is getting attached.


Should this module taint the kernel?
Mar 11 15:22:41 hanlay kernel: ide_tape: no version for "struct_module"
found: kernel tainted.



Cheers

Grahame Jordan

> Grahame Jordan wrote:
>> Hi,
>>
>> I have a machine on which when I run something like mt -f /dev/ht0
>> status
>> it seg faults. However I have another machine same spec that works OK?
>>
>> Any help would be appreciated
>>
>
> <drive> is null in idetape_chrdev_open.
> Please apply and test with the attached patch, just to try to
> find out what is going one.
>
>>
>> Debian testing
>> Linux hanlay 2.6.8-2-686-smp #1 SMP Mon Jan 24 02:32:52 EST 2005 i686
>> GNU/Linux
>> P4 3.2GHz
>> 1GB RAM
>>
>>  <6>i2c /dev entries driver
>> Unable to handle kernel NULL pointer dereference at virtual address
>> 00000020
>>  printing eip:
>> f891744e
>> *pde = 00000000
>> Oops: 0000 [#3]
>> PREEMPT SMP
>> Modules linked in: i2c_dev i2c_i801 i2c_core tsdev mousedev psmouse ipv6
>> snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport
>> snd_mpu401_uart snd_rawmidi snd_seq_device snd hw_random shpchp pciehp
>> pci_hotplug intel_agp intel_mch_agp agpgart evdev ehci_hcd eth1394
>> uhci_hcd usbcore i810_audio ac97_codec soundcore piix sk98lin ohci1394
>> capability commoncap ide_tape sbp2 ieee1394 ide_cd ide_core genrtc ext2
>> ext3 jbd mbcache sr_mod cdrom sd_mod sata_promise ata_piix libata
>> scsi_mod
>> unix font vesafb cfbcopyarea cfbimgblt cfbfillrect
>> CPU:    0
>> EIP:    0060:[<f891744e>]    Not tainted
>> EFLAGS: 00010297   (2.6.8-2-686-smp)
>> EIP is at idetape_chrdev_open+0x3e/0x190 [ide_tape]
>> eax: 00000000   ebx: 00000000   ecx: f738d440   edx: fffffffa
>> esi: 00000000   edi: cb534000   ebp: f7642380   esp: cb535dac
>> ds: 007b   es: 007b   ss: 0068
>> Process mt (pid: 7038, threadinfo=cb534000 task=f7005210)
>> Stack: f738b51c f7642380 0000000f 00000001 00000286 00000000 00000132
>> f7b2ac00
>>        f756cd9c 422faee6 24eb6ec0 f756cdd8 cb457400 cb457404 40165000
>> c1000000
>>        c014de6b c1169f40 422faee6 24eb6ec0 00000000 c02de380 00000282
>> 00000246
>> Call Trace:
>>  [<c014de6b>] zap_pte_range+0x3b/0x2d0
>>  [<c0142a56>] buffered_rmqueue+0x116/0x230
>>  [<c0142e80>] __alloc_pages+0x310/0x370
>>  [<c013e2bb>] find_get_page+0x3b/0x70
>>  [<c013f5b9>] filemap_nopage+0x229/0x3c0
>>  [<c0179cf1>] dput+0x31/0x270
>>  [<c016fe4e>] link_path_walk+0xc2e/0x1020
>>  [<c014d9ee>] pte_alloc_map+0xae/0x100
>>  [<c016ebf7>] permission+0x67/0x80
>>  [<c016a453>] cdev_get+0x53/0xb0
>>  [<c016a0a5>] chrdev_open+0x125/0x290
>>  [<c0160931>] get_empty_filp+0x71/0x110
>>  [<c015ec2a>] dentry_open+0x16a/0x260
>>  [<c015eab8>] filp_open+0x68/0x70
>>  [<c015ed69>] get_unused_fd+0x49/0x100
>>  [<c015ef9b>] sys_open+0x5b/0x90
>>  [<c01061fb>] syscall_call+0x7/0xb
>> Code: 8b 5e 20 89 b5 80 00 00 00 f0 0f ba ab fc 18 00 00 02 19 c0
>
>
> --
> ~Randy
>



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

* Re: ide-tape oops
  2005-03-11 10:22   ` Grahame Jordan
@ 2005-03-12 23:54     ` Randy.Dunlap
  2005-05-13 13:04       ` Grahame Jordan
  0 siblings, 1 reply; 6+ messages in thread
From: Randy.Dunlap @ 2005-03-12 23:54 UTC (permalink / raw)
  To: Grahame Jordan; +Cc: linux-ide

[-- Attachment #1: Type: text/plain, Size: 3606 bytes --]

Grahame Jordan wrote:
> Randy,
> 
> Applied patch and get:
> 
> Mar 11 21:02:37 hanlay -- MARK --
> Mar 11 21:08:45 hanlay kernel: ide-tape-open-test: using minor = 0, i = 0,
> drive = 0x00000000
> Mar 11 21:08:45 hanlay kernel: f8917470
> Mar 11 21:08:45 hanlay kernel: PREEMPT SMP
> ...
> 
> Does not look like it is getting attached.

Right, I have no idea why.  Don't really know anything about this
driver.  However, if you want to find out why, here's a small
patch that should tell us more...


> Should this module taint the kernel?
> Mar 11 15:22:41 hanlay kernel: ide_tape: no version for "struct_module"
> found: kernel tainted.

It appears that your kernel .config file contains
CONFIG_MODVERSIONS=y
but this module does not contain any versioning data.

Was this module built at the same time as the rest of the
kernel?  and with the same config options?


> Cheers
> 
> Grahame Jordan
> 
> 
>>Grahame Jordan wrote:
>>
>>>Hi,
>>>
>>>I have a machine on which when I run something like mt -f /dev/ht0
>>>status
>>>it seg faults. However I have another machine same spec that works OK?
>>>
>>>Any help would be appreciated
>>>
>>
>><drive> is null in idetape_chrdev_open.
>>Please apply and test with the attached patch, just to try to
>>find out what is going one.
>>
>>
>>>Debian testing
>>>Linux hanlay 2.6.8-2-686-smp #1 SMP Mon Jan 24 02:32:52 EST 2005 i686
>>>GNU/Linux
>>>P4 3.2GHz
>>>1GB RAM
>>>
>>> <6>i2c /dev entries driver
>>>Unable to handle kernel NULL pointer dereference at virtual address
>>>00000020
>>> printing eip:
>>>f891744e
>>>*pde = 00000000
>>>Oops: 0000 [#3]
>>>PREEMPT SMP
>>>Modules linked in: i2c_dev i2c_i801 i2c_core tsdev mousedev psmouse ipv6
>>>snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport
>>>snd_mpu401_uart snd_rawmidi snd_seq_device snd hw_random shpchp pciehp
>>>pci_hotplug intel_agp intel_mch_agp agpgart evdev ehci_hcd eth1394
>>>uhci_hcd usbcore i810_audio ac97_codec soundcore piix sk98lin ohci1394
>>>capability commoncap ide_tape sbp2 ieee1394 ide_cd ide_core genrtc ext2
>>>ext3 jbd mbcache sr_mod cdrom sd_mod sata_promise ata_piix libata
>>>scsi_mod
>>>unix font vesafb cfbcopyarea cfbimgblt cfbfillrect
>>>CPU:    0
>>>EIP:    0060:[<f891744e>]    Not tainted
>>>EFLAGS: 00010297   (2.6.8-2-686-smp)
>>>EIP is at idetape_chrdev_open+0x3e/0x190 [ide_tape]
>>>eax: 00000000   ebx: 00000000   ecx: f738d440   edx: fffffffa
>>>esi: 00000000   edi: cb534000   ebp: f7642380   esp: cb535dac
>>>ds: 007b   es: 007b   ss: 0068
>>>Process mt (pid: 7038, threadinfo=cb534000 task=f7005210)
>>>Stack: f738b51c f7642380 0000000f 00000001 00000286 00000000 00000132
>>>f7b2ac00
>>>       f756cd9c 422faee6 24eb6ec0 f756cdd8 cb457400 cb457404 40165000
>>>c1000000
>>>       c014de6b c1169f40 422faee6 24eb6ec0 00000000 c02de380 00000282
>>>00000246
>>>Call Trace:
>>> [<c014de6b>] zap_pte_range+0x3b/0x2d0
>>> [<c0142a56>] buffered_rmqueue+0x116/0x230
>>> [<c0142e80>] __alloc_pages+0x310/0x370
>>> [<c013e2bb>] find_get_page+0x3b/0x70
>>> [<c013f5b9>] filemap_nopage+0x229/0x3c0
>>> [<c0179cf1>] dput+0x31/0x270
>>> [<c016fe4e>] link_path_walk+0xc2e/0x1020
>>> [<c014d9ee>] pte_alloc_map+0xae/0x100
>>> [<c016ebf7>] permission+0x67/0x80
>>> [<c016a453>] cdev_get+0x53/0xb0
>>> [<c016a0a5>] chrdev_open+0x125/0x290
>>> [<c0160931>] get_empty_filp+0x71/0x110
>>> [<c015ec2a>] dentry_open+0x16a/0x260
>>> [<c015eab8>] filp_open+0x68/0x70
>>> [<c015ed69>] get_unused_fd+0x49/0x100
>>> [<c015ef9b>] sys_open+0x5b/0x90
>>> [<c01061fb>] syscall_call+0x7/0xb
>>>Code: 8b 5e 20 89 b5 80 00 00 00 f0 0f ba ab fc 18 00 00 02 19 c0


-- 
~Randy

[-- Attachment #2: ide_tape_attach.patch --]
[-- Type: text/x-patch, Size: 1099 bytes --]


ide-tape: print attach failure messages;

Signed-off-by: Randy Dunlap <rddunlap@osdl.org>

diffstat:=
 drivers/ide/ide-tape.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff -Naurp ./drivers/ide/ide-tape.c~ide_tape_attach ./drivers/ide/ide-tape.c
--- ./drivers/ide/ide-tape.c~ide_tape_attach	2005-03-01 23:37:54.000000000 -0800
+++ ./drivers/ide/ide-tape.c	2005-03-11 13:56:14.000000000 -0800
@@ -4747,12 +4747,18 @@ static int idetape_attach (ide_drive_t *
 	idetape_tape_t *tape;
 	int minor;
 
-	if (!strstr("ide-tape", drive->driver_req))
+	if (!strstr("ide-tape", drive->driver_req)) {
+		printk("%s: strstr failed\n", __FUNCTION__);
 		goto failed;
-	if (!drive->present)
+	}
+	if (!drive->present) {
+		printk("%s: drive not present\n", __FUNCTION__);
 		goto failed;
-	if (drive->media != ide_tape)
+	}
+	if (drive->media != ide_tape) {
+		printk("%s: media not ide_tape\n", __FUNCTION__);
 		goto failed;
+	}
 	if (!idetape_identify_device (drive)) {
 		printk(KERN_ERR "ide-tape: %s: not supported by this version of ide-tape\n", drive->name);
 		goto failed;

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

* Re: ide-tape oops
  2005-03-12 23:54     ` Randy.Dunlap
@ 2005-05-13 13:04       ` Grahame Jordan
  0 siblings, 0 replies; 6+ messages in thread
From: Grahame Jordan @ 2005-05-13 13:04 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: linux-ide

[-- Attachment #1: Type: text/plain, Size: 4007 bytes --]

Hi Randy,

I have finally revisited this.

The problem was happening because ide-generic was not loaded. I guess that
some symbol should be exported to make this load anyway.

Anyway to stop the oops I have provided a little patch.


Thanks for your help

Grahame Jordan




> Grahame Jordan wrote:
>> Randy,
>>
>> Applied patch and get:
>>
>> Mar 11 21:02:37 hanlay -- MARK --
>> Mar 11 21:08:45 hanlay kernel: ide-tape-open-test: using minor = 0, i =
>> 0,
>> drive = 0x00000000
>> Mar 11 21:08:45 hanlay kernel: f8917470
>> Mar 11 21:08:45 hanlay kernel: PREEMPT SMP
>> ...
>>
>> Does not look like it is getting attached.
>
> Right, I have no idea why.  Don't really know anything about this
> driver.  However, if you want to find out why, here's a small
> patch that should tell us more...
>
>
>> Should this module taint the kernel?
>> Mar 11 15:22:41 hanlay kernel: ide_tape: no version for "struct_module"
>> found: kernel tainted.
>
> It appears that your kernel .config file contains
> CONFIG_MODVERSIONS=y
> but this module does not contain any versioning data.
>
> Was this module built at the same time as the rest of the
> kernel?  and with the same config options?
>
>
>> Cheers
>>
>> Grahame Jordan
>>
>>
>>>Grahame Jordan wrote:
>>>
>>>>Hi,
>>>>
>>>>I have a machine on which when I run something like mt -f /dev/ht0
>>>>status
>>>>it seg faults. However I have another machine same spec that works OK?
>>>>
>>>>Any help would be appreciated
>>>>
>>>
>>><drive> is null in idetape_chrdev_open.
>>>Please apply and test with the attached patch, just to try to
>>>find out what is going one.
>>>
>>>
>>>>Debian testing
>>>>Linux hanlay 2.6.8-2-686-smp #1 SMP Mon Jan 24 02:32:52 EST 2005 i686
>>>>GNU/Linux
>>>>P4 3.2GHz
>>>>1GB RAM
>>>>
>>>> <6>i2c /dev entries driver
>>>>Unable to handle kernel NULL pointer dereference at virtual address
>>>>00000020
>>>> printing eip:
>>>>f891744e
>>>>*pde = 00000000
>>>>Oops: 0000 [#3]
>>>>PREEMPT SMP
>>>>Modules linked in: i2c_dev i2c_i801 i2c_core tsdev mousedev psmouse
>>>> ipv6
>>>>snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport
>>>>snd_mpu401_uart snd_rawmidi snd_seq_device snd hw_random shpchp pciehp
>>>>pci_hotplug intel_agp intel_mch_agp agpgart evdev ehci_hcd eth1394
>>>>uhci_hcd usbcore i810_audio ac97_codec soundcore piix sk98lin ohci1394
>>>>capability commoncap ide_tape sbp2 ieee1394 ide_cd ide_core genrtc ext2
>>>>ext3 jbd mbcache sr_mod cdrom sd_mod sata_promise ata_piix libata
>>>>scsi_mod
>>>>unix font vesafb cfbcopyarea cfbimgblt cfbfillrect
>>>>CPU:    0
>>>>EIP:    0060:[<f891744e>]    Not tainted
>>>>EFLAGS: 00010297   (2.6.8-2-686-smp)
>>>>EIP is at idetape_chrdev_open+0x3e/0x190 [ide_tape]
>>>>eax: 00000000   ebx: 00000000   ecx: f738d440   edx: fffffffa
>>>>esi: 00000000   edi: cb534000   ebp: f7642380   esp: cb535dac
>>>>ds: 007b   es: 007b   ss: 0068
>>>>Process mt (pid: 7038, threadinfo=cb534000 task=f7005210)
>>>>Stack: f738b51c f7642380 0000000f 00000001 00000286 00000000 00000132
>>>>f7b2ac00
>>>>       f756cd9c 422faee6 24eb6ec0 f756cdd8 cb457400 cb457404 40165000
>>>>c1000000
>>>>       c014de6b c1169f40 422faee6 24eb6ec0 00000000 c02de380 00000282
>>>>00000246
>>>>Call Trace:
>>>> [<c014de6b>] zap_pte_range+0x3b/0x2d0
>>>> [<c0142a56>] buffered_rmqueue+0x116/0x230
>>>> [<c0142e80>] __alloc_pages+0x310/0x370
>>>> [<c013e2bb>] find_get_page+0x3b/0x70
>>>> [<c013f5b9>] filemap_nopage+0x229/0x3c0
>>>> [<c0179cf1>] dput+0x31/0x270
>>>> [<c016fe4e>] link_path_walk+0xc2e/0x1020
>>>> [<c014d9ee>] pte_alloc_map+0xae/0x100
>>>> [<c016ebf7>] permission+0x67/0x80
>>>> [<c016a453>] cdev_get+0x53/0xb0
>>>> [<c016a0a5>] chrdev_open+0x125/0x290
>>>> [<c0160931>] get_empty_filp+0x71/0x110
>>>> [<c015ec2a>] dentry_open+0x16a/0x260
>>>> [<c015eab8>] filp_open+0x68/0x70
>>>> [<c015ed69>] get_unused_fd+0x49/0x100
>>>> [<c015ef9b>] sys_open+0x5b/0x90
>>>> [<c01061fb>] syscall_call+0x7/0xb
>>>>Code: 8b 5e 20 89 b5 80 00 00 00 f0 0f ba ab fc 18 00 00 02 19 c0
>
>
> --
> ~Randy
>

[-- Attachment #2: ide-tape_catch_nul_dev.patch --]
[-- Type: application/octet-stream, Size: 533 bytes --]


ide-tape: catch null device

Signed-off-by: Grahame Jordan <gbj@theforce.com.au>

--- drivers/ide/ide-tape.c	2005-05-13 22:31:50.002652480 +1000
+++ drivers/ide/ide-tape.c-catch_null_dev	2005-05-13 22:29:19.580520120 +1000
@@ -4186,6 +4186,11 @@ static int idetape_chrdev_open (struct i
 	if (i >= MAX_HWIFS * MAX_DRIVES)
 		return -ENXIO;
 	drive = idetape_chrdevs[i].drive;
+	if(drive == NULL)
+	{
+		printk(KERN_ERR "ide-tape: drive == NULL\n");
+		return -ENXIO;
+	}
 	tape = drive->driver_data;
 	filp->private_data = drive;
 

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

end of thread, other threads:[~2005-05-13 13:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-10  2:25 ide-tape oops Grahame Jordan
2005-03-10  3:13 ` Randy.Dunlap
2005-03-10  5:23 ` Randy.Dunlap
2005-03-11 10:22   ` Grahame Jordan
2005-03-12 23:54     ` Randy.Dunlap
2005-05-13 13:04       ` Grahame Jordan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).