Date: Fri, 04 Jan 2002 18:35:02 +0300 From: "Vladimir B.Grebenschikov" <vova@sw.ru> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/33535: invalid kernel diagnostic while writing dump on machine with more than 2 Gb RAM Message-ID: <E16MWN4-0001fL-00@vbook.express.ru>
next in thread | raw e-mail | index | archive | help
>Number: 33535 >Category: kern >Synopsis: invalid kernel diagnostic while writing dump on machine with more than 2 Gb RAM >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jan 04 07:40:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Vladimir B. Grebenschikov >Release: FreeBSD 5.0-CURRENT i386 >Organization: SWsoft >Environment: FreeBSD vbook.express.ru 5.0-CURRENT FreeBSD 5.0-CURRENT #10: Fri Dec 28 19:17:02 MSK 2001 root@walder.asplinux.ru:/usr/obj/ext/current/src/sys/VBOOK i386 also checed on 4.4-RELEASE and RELENG_4 >Description: while dumping core ( dumpsys() from kernel ) progress indicator shows negative values, than positive: -1024 .. -2047, 2047 .. 0 >How-To-Repeat: from DDB: db> call dumpsys() dumping to dev #da/0x20007, offset 3948672 dump -1024 -1025 -1026 -1027 -1028 -1029 -1030 -1031 -1032 -1033 -1034 -1035 -1036 -1037 -1038 -1039 -1040 -1041 -1042 -1043 -1044 -1045 -1046 -1047 -1048 -1049 ... -2042 -2043 -2044 -2045 -2046 -2047 2047 2046 2045 2044 2043 2042 2041 2040 2039 2038 ... 10 9 8 7 6 5 4 3 2 1 0 succeeded >Fix: Index: sys/cam/scsi/scsi_da.c =================================================================== RCS file: /ext/vcvs/src/sys/cam/scsi/scsi_da.c,v retrieving revision 1.42.2.12 diff -u -r1.42.2.12 scsi_da.c --- sys/cam/scsi/scsi_da.c 2001/07/30 00:48:20 1.42.2.12 +++ sys/cam/scsi/scsi_da.c 2002/01/04 15:15:40 @@ -739,7 +739,7 @@ return(EIO); } - if (dumpstatus(addr, (long)(num * softc->params.secsize)) < 0) + if (dumpstatus(addr, (unsigned long)(num * softc->params.secsize)) < 0) return (EINTR); /* update block count */ Index: sys/dev/ata/ata-disk.c =================================================================== RCS file: /ext/vcvs/src/sys/dev/ata/ata-disk.c,v retrieving revision 1.60.2.16 diff -u -r1.60.2.16 ata-disk.c --- sys/dev/ata/ata-disk.c 2001/08/28 17:56:14 1.60.2.16 +++ sys/dev/ata/ata-disk.c 2002/01/04 15:15:41 @@ -329,7 +329,7 @@ DELAY(20); } - if (dumpstatus(addr, (long)(count * DEV_BSIZE)) < 0) + if (dumpstatus(addr, (unsigned long)(count * DEV_BSIZE)) < 0) return EINTR; blkno += blkcnt * dumppages; Index: sys/kern/kern_shutdown.c =================================================================== RCS file: /ext/vcvs/src/sys/kern/kern_shutdown.c,v retrieving revision 1.72.2.8 diff -u -r1.72.2.8 kern_shutdown.c --- sys/kern/kern_shutdown.c 2001/08/23 10:32:29 1.72.2.8 +++ sys/kern/kern_shutdown.c 2002/01/04 15:15:44 @@ -394,7 +394,7 @@ */ static u_long const dumpmag = 0x8fca0101UL; -static int dumpsize = 0; /* also for savecore */ +static unsigned int dumpsize = 0; /* also for savecore */ static int dodump = 1; @@ -406,7 +406,7 @@ dev_t dev; { int psize; - long newdumplo; + unsigned long newdumplo; if (dev == NODEV) { dumpdev = dev; @@ -523,7 +523,7 @@ } int -dumpstatus(vm_offset_t addr, long count) +dumpstatus(vm_offset_t addr, unsigned long count) { int c; @@ -532,7 +532,7 @@ if (wdog_tickler) (*wdog_tickler)(); #endif - printf("%ld ", count / (1024 * 1024)); + printf("%lu ", count / (1024 * 1024)); } if ((c = cncheckc()) == 0x03) Index: sys/sys/systm.h =================================================================== RCS file: /ext/vcvs/src/sys/sys/systm.h,v retrieving revision 1.111.2.8 diff -u -r1.111.2.8 systm.h --- sys/sys/systm.h 2001/07/30 23:28:01 1.111.2.8 +++ sys/sys/systm.h 2002/01/04 15:15:45 @@ -101,7 +101,7 @@ struct uio; void Debugger __P((const char *msg)); -int dumpstatus __P((vm_offset_t addr, long count)); +int dumpstatus __P((vm_offset_t addr, unsigned long count)); int nullop __P((void)); int eopnotsupp __P((void)); int einval __P((void)); >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E16MWN4-0001fL-00>