diff options
Diffstat (limited to 'drivers/pcmcia/pcmcia_ioctl.c')
-rw-r--r-- | drivers/pcmcia/pcmcia_ioctl.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c index 2b11a332175e..c53db7ceda5e 100644 --- a/drivers/pcmcia/pcmcia_ioctl.c +++ b/drivers/pcmcia/pcmcia_ioctl.c | |||
@@ -304,6 +304,7 @@ static int get_device_info(struct pcmcia_socket *s, bind_info_t *bind_info, int | |||
304 | { | 304 | { |
305 | dev_node_t *node; | 305 | dev_node_t *node; |
306 | struct pcmcia_device *p_dev; | 306 | struct pcmcia_device *p_dev; |
307 | struct pcmcia_driver *p_drv; | ||
307 | unsigned long flags; | 308 | unsigned long flags; |
308 | int ret = 0; | 309 | int ret = 0; |
309 | 310 | ||
@@ -358,7 +359,8 @@ static int get_device_info(struct pcmcia_socket *s, bind_info_t *bind_info, int | |||
358 | found: | 359 | found: |
359 | spin_unlock_irqrestore(&pcmcia_dev_list_lock, flags); | 360 | spin_unlock_irqrestore(&pcmcia_dev_list_lock, flags); |
360 | 361 | ||
361 | if (p_dev->state & DEV_CONFIG_PENDING) { | 362 | p_drv = to_pcmcia_drv(p_dev->dev.driver); |
363 | if (p_drv && !p_dev->_locked) { | ||
362 | ret = -EAGAIN; | 364 | ret = -EAGAIN; |
363 | goto err_put; | 365 | goto err_put; |
364 | } | 366 | } |