Hi,
just tried the new 2.5.1-pre3 and got the following oops when trying to
burn a cd (ide-cd/rw with ide-scsi emulation).
I Hope this is some useful information.
____
ksymoops 2.4.3 on i586 2.5.1-pre3. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.5.1-pre3/ (default)
-m /boot/System.map-2.5.1-pre3 (default)
Warning: You did not tell me where to find
symbol information. I will
assume that the log matches the kernel and
modules that are running
right now and I'll use the default options
above for symbol resolution.
If the current kernel and/or modules do not
match the log, you can get
more accurate output by telling me the kernel
version and where to find
map, modules, ksyms etc. ksymoops -h explains
the options.
Unable to handle kernel NULL pointer dereference at virtual address
00000038
c01af582
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[idescsi_queue+1158/1396] Not tainted
EFLAGS: 00210002
eax: 00000000 ebx: d3f64320 ecx: d3f64ea0 edx: 00000000
esi: c0989000 edi: d3f64ea0 ebp: d3f64320 esp: c7321cc4
ds: 0018 es: 0018 ss: 0018
Process cdrecord (pid: 1055, stackpage=c7321000)
Stack: 00200293 d36761d4 d3eef800 d3f2dba0 00000000 c8a76ee0 d3eef858 c0989000
00000001 00000000 c7d5d3c0 c150eee0 c02c3be4 c01a7309 d3eef800 c01a77b4
d3eef800 d36761d4 d3eef8b8 d36761d4 00000000 c01ac422 d3eef800 d3eef800
Call Trace: [scsi_dispatch_cmd+257/372] [scsi_done+0/144] [scsi_request_fn+786/808] [__scsi_in sert_special+118/128] [scsi_insert_special_req+25/32]
Code: 03 42 38 89 46 00 83 c6 14 89 74 24 1c 83 6c 24 20 01 73 bf
Using defaults from ksymoops -t elf32-i386 -a i386
Code; 00000000 Before first symbol
00000000 <_EIP>:
Code; 00000000 Before first symbol
0: 03 42 38 add 0x38(%edx),%eax
Code; 00000002 Before first symbol
3: 89 46 00 mov %eax,0x0(%esi)
Code; 00000006 Before first symbol
6: 83 c6 14 add $0x14,%esi
Code; 00000008 Before first symbol
9: 89 74 24 1c mov %esi,0x1c(%esp,1)
Code; 0000000c Before first symbol
d: 83 6c 24 20 01 subl $0x1,0x20(%esp,1)
Code; 00000012 Before first symbol
12: 73 bf jae ffffffd3 <_EIP+0xffffffd3> ffffffd2 <END_OF_CODE+2af53fd0/????>
1 warning issued. Results may not be reliable.
____
After the oops the following message appeared in syslog:
Nov 29 18:06:01 enterprise kernel: <6>scsi: device set offline -
command error recover failed: host 0 channel 0 id 0 lun 0
____
lsmod shows no loaded ide-scsi or cdrom modules, so the oops happened
before loading them.
____
Please CC: me in replies or if you need further information as I'm not
subscribed to l-k.
Cheers,
Dirk
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
Have you applied any other patches than the 2.5.1-pre3?
If/When not you'll probably get some data corruption :(
Please apply the 2 Patches attatched and
http://kernel.org/pub/linux/kernel/people/axboe/patches/v2.5/2.5.1-pre3/bio-pre3-1.gz
Then recompile your kernel ;)
These patches were posted before by Alan Cox and Jens Axboe
CD burning works fine for me with this patches but I have compiled all SCSI
and IDE stuff directly into the kernel... maybe this matters
Bye
Am Donnerstag, 29. November 2001 19:19 schrieb Dirk Pritsch:
> Hi,
>
> just tried the new 2.5.1-pre3 and got the following oops when trying to
> burn a cd (ide-cd/rw with ide-scsi emulation).
>
> I Hope this is some useful information.
>
>
> ____
> ksymoops 2.4.3 on i586 2.5.1-pre3. Options used
> -V (default)
> -k /proc/ksyms (default)
> -l /proc/modules (default)
> -o /lib/modules/2.5.1-pre3/ (default)
> -m /boot/System.map-2.5.1-pre3 (default)
>
> Warning: You did not tell me where to find
> symbol information. I will
> assume that the log matches the kernel and
> modules that are running
> right now and I'll use the default options
> above for symbol resolution.
> If the current kernel and/or modules do not
> match the log, you can get
> more accurate output by telling me the kernel
> version and where to find
> map, modules, ksyms etc. ksymoops -h explains
> the options.
>
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000038
> c01af582
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[idescsi_queue+1158/1396] Not tainted
> EFLAGS: 00210002
> eax: 00000000 ebx: d3f64320 ecx: d3f64ea0 edx: 00000000
> esi: c0989000 edi: d3f64ea0 ebp: d3f64320 esp: c7321cc4
> ds: 0018 es: 0018 ss: 0018
> Process cdrecord (pid: 1055, stackpage=c7321000)
> Stack: 00200293 d36761d4 d3eef800 d3f2dba0 00000000 c8a76ee0 d3eef858
> c0989000 00000001 00000000 c7d5d3c0 c150eee0 c02c3be4 c01a7309 d3eef800
> c01a77b4 d3eef800 d36761d4 d3eef8b8 d36761d4 00000000 c01ac422 d3eef800
> d3eef800 Call Trace: [scsi_dispatch_cmd+257/372] [scsi_done+0/144]
> [scsi_request_fn+786/808] [__scsi_in sert_special+118/128]
> [scsi_insert_special_req+25/32] Code: 03 42 38 89 46 00 83 c6 14 89 74 24
> 1c 83 6c 24 20 01 73 bf
> Using defaults from ksymoops -t elf32-i386 -a i386
>
> Code; 00000000 Before first symbol
> 00000000 <_EIP>:
> Code; 00000000 Before first symbol
> 0: 03 42 38 add 0x38(%edx),%eax
> Code; 00000002 Before first symbol
> 3: 89 46 00 mov %eax,0x0(%esi)
> Code; 00000006 Before first symbol
> 6: 83 c6 14 add $0x14,%esi
> Code; 00000008 Before first symbol
> 9: 89 74 24 1c mov %esi,0x1c(%esp,1)
> Code; 0000000c Before first symbol
> d: 83 6c 24 20 01 subl $0x1,0x20(%esp,1)
> Code; 00000012 Before first symbol
> 12: 73 bf jae ffffffd3 <_EIP+0xffffffd3> ffffffd2
> <END_OF_CODE+2af53fd0/????>
>
>
> 1 warning issued. Results may not be reliable.
> ____
>
> After the oops the following message appeared in syslog:
>
> Nov 29 18:06:01 enterprise kernel: <6>scsi: device set offline -
> command error recover failed: host 0 channel 0 id 0 lun 0
>
> ____
>
> lsmod shows no loaded ide-scsi or cdrom modules, so the oops happened
> before loading them.
>
> ____
>
>
>
>
> Please CC: me in replies or if you need further information as I'm not
> subscribed to l-k.
>
>
> Cheers,
>
> Dirk
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE8BoCwvIHrJes3kVIRAmvGAJ9RATNkAHklG/lr8zzP42y9hsNUvgCcCxP6
Y1/zljBJTzZFvFEb0goURGA=
=TlL+
-----END PGP SIGNATURE-----
On Thu, Nov 29 2001, Dirk Pritsch wrote:
> Hi,
>
> just tried the new 2.5.1-pre3 and got the following oops when trying to
> burn a cd (ide-cd/rw with ide-scsi emulation).
>
> I Hope this is some useful information.
>
>
> ____
> ksymoops 2.4.3 on i586 2.5.1-pre3. Options used
> -V (default)
> -k /proc/ksyms (default)
> -l /proc/modules (default)
> -o /lib/modules/2.5.1-pre3/ (default)
> -m /boot/System.map-2.5.1-pre3 (default)
>
> Warning: You did not tell me where to find
> symbol information. I will
> assume that the log matches the kernel and
> modules that are running
> right now and I'll use the default options
> above for symbol resolution.
> If the current kernel and/or modules do not
> match the log, you can get
> more accurate output by telling me the kernel
> version and where to find
> map, modules, ksyms etc. ksymoops -h explains
> the options.
>
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000038
> c01af582
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[idescsi_queue+1158/1396] Not tainted
Hmm, I bet the problem is not really bio but the fact that someone is
still sending down a scatterlist with ->address set instead of
->page/offset.
Let me hack a quick fix up for you to test... 2 minutes.
--
Jens Axboe
Hi,
On Thu, Nov 29, 2001 at 07:38:25PM +0100, Slo Mo Snail wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi,
> Have you applied any other patches than the 2.5.1-pre3?
> If/When not you'll probably get some data corruption :(
> Please apply the 2 Patches attatched and
> http://kernel.org/pub/linux/kernel/people/axboe/patches/v2.5/2.5.1-pre3/bio-pre3-1.gz
> Then recompile your kernel ;)
> These patches were posted before by Alan Cox and Jens Axboe
>
> CD burning works fine for me with this patches but I have compiled all SCSI
> and IDE stuff directly into the kernel... maybe this matters
> Bye
>
thanks for the info, the patch from Alan was applied, but not the one
from Jens, I will try it again with both patches.
Cheers,
Dirk
On Thu, Nov 29 2001, Jens Axboe wrote:
> Hmm, I bet the problem is not really bio but the fact that someone is
> still sending down a scatterlist with ->address set instead of
> ->page/offset.
>
> Let me hack a quick fix up for you to test... 2 minutes.
Please try this, and check for oops and "jens was right" in dmesg. Let
me know how it goes, thanks.
--- /opt/kernel/linux-2.5.1-pre3/drivers/scsi/ide-scsi.c Thu Nov 29 06:07:21 2001
+++ drivers/scsi/ide-scsi.c Thu Nov 29 13:44:04 2001
@@ -708,16 +708,30 @@
printk ("ide-scsi: %s: building DMA table, %d segments, %dkB total\n", drive->name, segments, pc->request_transfer >> 10);
#endif /* IDESCSI_DEBUG_LOG */
while (segments--) {
- bh->bi_io_vec[0].bv_page = sg->page;
+ struct page *page = sg->page;
+ int offset = sg->offset;
+ static int foo;
+
+ if (!page) {
+ BUG_ON(!sg->address);
+ if (!foo) {
+ printk("jens was right\n");
+ foo = 1;
+ }
+ page = virt_to_page(sg->address);
+ offset = (unsigned long) sg->address & ~PAGE_MASK;
+ }
+
+ bh->bi_io_vec[0].bv_page = page;
bh->bi_io_vec[0].bv_len = sg->length;
- bh->bi_io_vec[0].bv_offset = sg->offset;
+ bh->bi_io_vec[0].bv_offset = offset;
bh->bi_size = sg->length;
bh = bh->bi_next;
/*
* just until scsi_merge is fixed up...
*/
- BUG_ON(PageHighMem(sg->page));
- sg->address = page_address(sg->page) + sg->offset;
+ BUG_ON(PageHighMem(page));
+ sg->address = page_address(page) + offset;
sg++;
}
} else {
--
Jens Axboe
Am Donnerstag, 29. November 2001 19:45 schrieben Sie:
> Hi,
>
> On Thu, Nov 29, 2001 at 07:38:25PM +0100, Slo Mo Snail wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Hi,
> > Have you applied any other patches than the 2.5.1-pre3?
> > If/When not you'll probably get some data corruption :(
> > Please apply the 2 Patches attatched and
> > http://kernel.org/pub/linux/kernel/people/axboe/patches/v2.5/2.5.1-pre3/b
> >io-pre3-1.gz Then recompile your kernel ;)
> > These patches were posted before by Alan Cox and Jens Axboe
> >
> > CD burning works fine for me with this patches but I have compiled all
> > SCSI and IDE stuff directly into the kernel... maybe this matters
> > Bye
>
> thanks for the info, the patch from Alan was applied, but not the one
>
> >from Jens, I will try it again with both patches.
>
> Cheers,
>
> Dirk
I've forgotten something...
You need first the bio-pre3-1.gz and then the one which was attatched
The first fixes some things in the new block i/o architecture, the 2nd fixes
the data corruption and fixes some things in the block i/o
Bye
Hi,
On Thu, Nov 29, 2001 at 07:47:52PM +0100, Jens Axboe wrote:
> On Thu, Nov 29 2001, Jens Axboe wrote:
> > Hmm, I bet the problem is not really bio but the fact that someone is
> > still sending down a scatterlist with ->address set instead of
> > ->page/offset.
> >
> > Let me hack a quick fix up for you to test... 2 minutes.
>
> Please try this, and check for oops and "jens was right" in dmesg. Let
> me know how it goes, thanks.
>
>
Ok, applied the diff from Alan, and the two I got from you, and it seems
to work (burning still in progress).
Instead of an oops, syslog now tells me:
Nov 29 20:32:49 enterprise kernel: jens was right
when loading the modules.
Thanks for the quick fix,
Cheers,
Dirk