2.2.19 hard hang from userspace while accessing /dev/mdXX devices

From: Jeff V. Merkey (jmerkey@vger.timpanogas.org)
Date: Thu Dec 28 2000 - 18:59:48 EST


Hard hand in 2.2.19

If you open a non-existant md device (i.e. /dev/md11) from userspace
with an open() call, then send an ioctl() command, it results in the
following message then hard hangs the entire system if you attempt
to open any /dev/mdXX device with a minor number greater than 10.
Used to work on 2.2.17.

message is:

md map 11
bap map 11 ll_rw_block
       

offending code that causes the hard hang is:

        register int fd, ccode;
        struct hd_geometry geometry;

        fd = open("/dev/md11", O_RDWR);
        if (fd < 0)
            return 1;

#ifdef HDIO_REQ
       ccode = ioctl(fd, HDIO_REQ, &geometry);
#else
       ccode = ioctl(fd, HDIO_GETGEO, &geometry);
#endif
       if ((ccode == -EINVAL) || (ccode == -ENODEV))
       {
          close(fd);
          return 1;
       }
       close(fd)
       return 0;

Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Dec 31 2000 - 21:00:11 EST