Messages in this thread Patch in this message |  | | Date | Sat, 16 Nov 1996 11:07:52 +0100 (MET) | From | Gerd Knorr <> | Subject | Re: 2.1.10 FYI |
| |
On Fri, 15 Nov 1996, Erik B. Andersen wrote:
> >From the latest version of Documentation/cdrom/cdrom-standard.tex: > > ... These parameters are declared $const$ because they describe properties > of the drive, which don't change after registration. ... The > capability flag is declared $const$, to prevent drivers from > accidentally tampering with the contents. > > The patch you submitted for ucdrom.h is the WrongThing(tm). These values > must be set during drive registration, but they should be declared const so > that nothing can change them subsequently (thereby screwing up the kernel). > [ ... ] > The ide-cd driver simply adds a cast to suppress the compiler warning. > This allows you to set the const values on drive initialization without > warnings. Just don't do this somewhere else in your code... This is the > RightThing(tm) to do, IMHO. Do something like this to sr.c: > > ---> *(int *)&devinfo->speed = 0; > ---> *(int *)&devinfo->capacity = nslots;
Hmm, does'nt sound perfect either. But maybe the best way we have to handle these "write-once" variables. Here comes the patch for sr.c.
Gerd
--------------------------------------------------------------------- --- linux/drivers/scsi/sr.c-2.1.10 Sat Nov 16 09:17:18 1996 +++ linux/drivers/scsi/sr.c Sat Nov 16 09:22:38 1996 @@ -793,8 +793,8 @@ scsi_CDs[i].cdi.handle = &scsi_CDs[i]; scsi_CDs[i].cdi.dev = MKDEV(MAJOR_NR,i); scsi_CDs[i].cdi.mask = 0; - scsi_CDs[i].cdi.speed = 1; - scsi_CDs[i].cdi.capacity = 1; + (int)scsi_CDs[i].cdi.speed = 1; + (int)scsi_CDs[i].cdi.capacity = 1; register_cdrom(&scsi_CDs[i].cdi, "sr"); #ifdef CONFIG_BLK_DEV_SR_VENDOR
|  |