Messages in this thread Patch in this message | | | From | Andrzej Krzysztofowicz <kufel!ankry> | Subject | [PATCH] devfs Oops while re-reading part.table (fwd) | Date | Tue, 7 Mar 2000 01:58:21 +0100 (CET) |
| |
From ankry Tue Mar 7 01:49:45 2000 Return-Path: <ankry> Received: (from ankry@localhost) by kufel.dom (8.9.3/8.9.3) id BAA00657 for ankry; Tue, 7 Mar 2000 01:49:44 +0100 From: Andrzej Krzysztofowicz <ankry@kufel.dom> Message-Id: <200003070049.BAA00657@kufel.dom> Subject: [PATCH] devfs Oops while re-reading part.table To: ankry@kufel.dom Date: Tue, 7 Mar 2000 01:49:44 +0100 (CET) X-Mailer: ELM [version 2.5 PL0pre8] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit
Hi, devfs oopses while re-reading DOS partition tables containing some second level partitions (*BSD, x86 solaris, unixware; extended is safe). Oops and patch against 2.3.50pre2 follows... Andrzej
***************************************************************************** Mar 7 01:14:06 kufel kernel: /dev/ide/host0/bus1/target0/lun0: p1 p2 p3 Mar 7 01:14:06 kufel kernel: ide/host0/bus1/target0/lun0/part3: <unixware: p5 p6 > Mar 7 01:14:06 kufel kernel: Unable to handle kernel paging request at virtual address 31737562 Mar 7 01:14:06 kufel kernel: printing eip: Mar 7 01:14:06 kufel kernel: 31737562 Mar 7 01:14:06 kufel kernel: *pde = 00000000 Mar 7 01:14:06 kufel kernel: Oops: 0000 Mar 7 01:14:06 kufel kernel: CPU: 0 Mar 7 01:14:06 kufel kernel: EIP: 0010:[<31737562>] Mar 7 01:14:06 kufel kernel: EFLAGS: 00010282 Mar 7 01:14:06 kufel kernel: eax: 00000003 ebx: c2a46800 ecx: c393e000 edx: c393ff80 Mar 7 01:14:06 kufel kernel: esi: c2a469de edi: 00000003 ebp: 00000003 esp: c2aa5dfc Mar 7 01:14:06 kufel kernel: ds: 0018 es: 0018 ss: 0018 Mar 7 01:14:06 kufel kernel: Process fdisk (pid: 449, stackpage=c2aa5000) Mar 7 01:14:06 kufel kernel: Stack: 7261742f 30746567 6e756c2f 61702f30 00337472 c114cbc0 0000494c 000000ff Mar 7 01:14:06 kufel kernel: 00000001 00000001 0000003f c2a46800 c2a50760 c1141600 c013e783 c114cbc0 Mar 7 01:14:06 kufel kernel: 00001600 00000000 00000001 00000000 c114cbc0 00000040 00813300 00000000 Mar 7 01:14:06 kufel kernel: Call Trace: [<c013e783>] [<c013ebab>] [<c015a113>] [<c015b638>] [<c010f1f2>] [<c011157b>] [<c01311f3>] Mar 7 01:14:06 kufel kernel: [<c0136bd0>] [<c01311d0>] [<c01095c8>] Mar 7 01:14:06 kufel kernel: Code: Bad EIP value.
8818 symbols from /usr/src/kernel/2.3/linux/System.map
EIP: 0x31737562 ??? trace: 0xc013e783 t check_partition+0xd7/0x11c trace: 0xc013ebab T grok_partitions+0x6b/0xa4 trace: 0xc015a113 T ide_revalidate_disk+0x13b/0x15c trace: 0xc015b638 t ide_ioctl+0x2dc/0x6d8 trace: 0xc010f1f2 T do_page_fault+0x172/0x4c0 trace: 0xc011157b T schedule+0x277/0x3ac trace: 0xc01311f3 t blkdev_ioctl+0x23/0x30 trace: 0xc0136bd0 T sys_ioctl+0x1a8/0x1d0 trace: 0xc01311d0 t blkdev_ioctl+0x0/0x30 trace: 0xc01095c8 T system_call+0x34/0x38 /tmp/decode-oops.c:1: warning: overflow in implicit constant conversion code: 00000000 <oops>: code: 0: ad lods %ds:(%esi),%eax code: 1: 0e push %cs
******************************************************************************* --- linux/fs/partitions/msdos.c~ Tue Mar 7 01:19:51 2000 +++ linux/fs/partitions/msdos.c Tue Mar 7 01:34:00 2000 @@ -191,7 +191,11 @@ brelse(bh); return; } +#ifdef CONFIG_DEVFS_FS + printk(" p%d: <solaris:", (minor & ((1 << hd->minor_shift) - 1))); +#else printk(" %s: <solaris:", disk_name(hd, minor, buf)); +#endif if(v->v_version != 1) { printk(" cannot handle version %ld vtoc>\n", v->v_version); brelse(bh); @@ -276,7 +280,11 @@ brelse(bh); return; } +#ifdef CONFIG_DEVFS_FS + printk(" p%d:", (minor & ((1 << hd->minor_shift) - 1))); +#else printk(" %s:", disk_name(hd, minor, buf)); +#endif printk((type == OPENBSD_PARTITION) ? " <openbsd:" : (type == NETBSD_PARTITION) ? " <netbsd:" : " <bsd:"); @@ -319,7 +327,11 @@ brelse(bh); return; } +#ifdef CONFIG_DEVFS_FS + printk(" p%d: <unixware:", (minor & ((1 << hd->minor_shift) - 1))); +#else printk(" %s: <unixware:", disk_name(hd, minor, buf)); +#endif p = &l->vtoc.v_slice[1]; /* I omit the 0th slice as it is the same as whole disk. */ while (p - &l->vtoc.v_slice[0] < UNIXWARE_NUMSLICE) {
-- ======================================================================= Andrzej M. Krzysztofowicz ankry@mif.pg.gda.pl tel. (0-58) 347 14 61 Wydz.Fizyki Technicznej i Matematyki Stosowanej Politechniki Gdanskiej - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |