diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c index 9ad18e6..72d92b4 100644 --- a/drivers/pcmcia/pcmcia_ioctl.c +++ b/drivers/pcmcia/pcmcia_ioctl.c @@ -601,6 +601,10 @@ static int ds_ioctl(struct inode * inode ret = CS_BAD_ARGS; else { struct pcmcia_device *p_dev = get_pcmcia_device(s, buf->config.Function); + if (!p_dev) { + err = -ENODEV; + break; + } ret = pccard_get_configuration_info(s, p_dev, &buf->config); pcmcia_put_dev(p_dev); } @@ -632,6 +636,10 @@ static int ds_ioctl(struct inode * inode ret = CS_BAD_ARGS; else { struct pcmcia_device *p_dev = get_pcmcia_device(s, buf->status.Function); + if (!p_dev) { + err = -ENODEV; + break; + } ret = pccard_get_status(s, p_dev, &buf->status); pcmcia_put_dev(p_dev); }