On both 2.4.18-6mdk (from 8.2) and in current cooker pdcraid oopses
immediately after insertion. The reason is usage of uninitialized
variable in drivers/ide/pdcraid.c:


static void __init probedisk(int devindex,int device, int raidlevel)
{
        int i;
        int major, minor;
        struct promise_raid_conf *prom;
        static unsigned char block[4096];
        struct block_device *bdev;

        if (devlist[devindex].device!=-1) /* already assigned to another
array
*/
                return;
        if (strcmp("Promise Technology, Inc.",prom->promise_id))
                return; /* magic number must match */
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

here it bails out. prom is initialized later:

       major = devlist[devindex].major;
        minor = devlist[devindex].minor;

        if (read_disk_sb(major,minor,(unsigned
char*)&block,sizeof(block)))
                return;


        prom = (struct promise_raid_conf*)&block[512];

I am sorry, I do not have vanilla kernel so I cannot check if bug is in
general kernel or Mandrake-specific.

-andrej


Reply via email to