Date: Wed, 19 May 1999 13:00:24 +1000 From: Bruce Evans <bde@zeta.org.au> To: bright@rush.net, current@FreeBSD.ORG Subject: Re: nodump is not a dump routine. Message-ID: <199905190300.NAA31984@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>i'm wondering why when the system dumpdev is set to a device that >doesn't have a read dump routine (nodump()) why it lies about the >dump being successful. Just another bug. >Index: kern_shutdown.c >=================================================================== >RCS file: /home/ncvs/src/sys/kern/kern_shutdown.c,v >retrieving revision 1.52 >diff -u -r1.52 kern_shutdown.c >--- kern_shutdown.c 1999/05/12 22:30:46 1.52 >+++ kern_shutdown.c 1999/05/19 00:38:43 >@@ -387,6 +387,10 @@ > printf("dump "); > switch ((*bdevsw(dumpdev)->d_dump)(dumpdev)) { > >+ case ENODEV: >+ printf("device has no dump routine\n"); >+ break; >+ Also, the default case should print "failed", and only the 0 case should print "succeeded". >shouldn't >src/sys/i386/i386/autoconf.c, and >src/sys/alpha/alpha/autoconf.c decline to set the dump device >to a device that has nodump() as its dump routine? setdumpdev() probably shouldn't know so much about the dump routine. The driver can easily have a routine that fails when it is actually called for reasons that setdumpdev() can't know. Perhaps nodump should be simply ((d_dump_t)NULL). dumpsys() already checks for a null d_dump pointer before calling it, although setdumpdev() doesn't. >one other question, considering the newbus stuff, shouldn't >there be a way to get the text string of the dump device somehow >so "dumpon" with no arguments can print out the current value >without scanning /dev for a device that matches it? This was broken by "newsysctl", not by newbus. In Lite1, the CONSDEV sysctl is specially handled and the device number is converted to a name using devname(3). Newsysctl neglects to convert to a name, and can't in general, since it has no way of knowing if the device is a cdev or a bdev. devname() is also broken. ISTR it has some fundamental problems, and it now returns NULL instead of the documented "??" when it can't determine the device name. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905190300.NAA31984>