On Thu, Apr 19 2001, Stefan Jaschke wrote:
> Hi Jens,
>
> I applied your patch to 2.4.4-pre4. It compiled fine, but crashed during
> boot (just right after the IDE init) with
> -------------------
> Uniform CD-ROM driver Revision: 3.12
> Unable to handle kernel NULL pointer dereference at virtual address 00000000
> printing eip: ...
> Oops: 0000
> ...
> -------------------
This should fix it.
--
Jens Axboe
--- drivers/cdrom/cdrom.c~ Thu Apr 19 13:44:46 2001
+++ drivers/cdrom/cdrom.c Thu Apr 19 13:45:33 2001
@@ -350,6 +350,12 @@
{
int i, nr, foo;
+ if (!cdrom_numbers) {
+ int n_entries = CDROM_MAX_CDROMS / (sizeof(unsigned long) * 8);
+ cdrom_numbers = kmalloc(n_entries * sizeof(unsigned long), GFP_KERNEL);
+ memset(cdrom_numbers, 0, n_entries * sizeof(unsigned long));
+ }
+
nr = 0;
foo = -1;
for (i = 0; i < CDROM_MAX_CDROMS / (sizeof(unsigned long) * 8); i++) {
@@ -2696,10 +2702,6 @@
static int __init cdrom_init(void)
{
- int n_entries = CDROM_MAX_CDROMS / (sizeof(unsigned long) * 8);
-
- cdrom_numbers = kmalloc(n_entries * sizeof(unsigned long), GFP_KERNEL);
-
#ifdef CONFIG_SYSCTL
cdrom_sysctl_register();
#endif