static void pcmcia_bus_rescan(struct pcmcia_socket *skt)
 {
        int no_devices=0;
+       int ret = 0;
        unsigned long flags;
 
        /* must be called with skt_mutex held */
         * missing resource information or other trouble, we need to
         * do this now. */
        if (no_devices) {
-               int ret = pcmcia_card_add(skt);
+               ret = pcmcia_card_add(skt);
                if (ret)
                        return;
        }
 
        /* we re-scan all devices, not just the ones connected to this
         * socket. This does not matter, though. */
-       bus_rescan_devices(&pcmcia_bus_type);
+       ret = bus_rescan_devices(&pcmcia_bus_type);
+       if (ret)
+               printk(KERN_INFO "pcmcia: bus_rescan_devices failed\n");
 }
 
 static inline int pcmcia_devmatch(struct pcmcia_device *dev,
                struct device_attribute *attr, const char *buf, size_t count)
 {
        struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
+       int ret;
 
        if (!count)
                return -EINVAL;
        p_dev->allow_func_id_match = 1;
        mutex_unlock(&p_dev->socket->skt_mutex);
 
-       bus_rescan_devices(&pcmcia_bus_type);
+       ret = bus_rescan_devices(&pcmcia_bus_type);
+       if (ret)
+               printk(KERN_INFO "pcmcia: bus_rescan_devices failed after "
+                      "allowing func_id matches\n");
 
        return count;
 }