diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-03-24 10:49:14 +0100 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-03-24 10:51:31 +0100 |
commit | 7d7ba8d31eb293016bc91a5c8fc36b21fd917265 (patch) | |
tree | 9b3b64a0f65322a5f95a7f87a331846eeaf5f97e | |
parent | 9713ab28ec92d0c44b2ac5765dfc26c619d9cadd (diff) | |
download | linux-stable-7d7ba8d31eb293016bc91a5c8fc36b21fd917265.tar.gz linux-stable-7d7ba8d31eb293016bc91a5c8fc36b21fd917265.tar.bz2 linux-stable-7d7ba8d31eb293016bc91a5c8fc36b21fd917265.zip |
pcmcia: allow for four multifunction subdevices (again)
Commit aa584ca4 broke what 6cf5be51 had already fixed: there may
be four multifunction devices, but just two pseudo-multifunction
devices per PCMCIA card.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
-rw-r--r-- | drivers/pcmcia/ds.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index ad93ebd7b2a2..52d33b2a5bc5 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c @@ -509,8 +509,12 @@ struct pcmcia_device *pcmcia_device_add(struct pcmcia_socket *s, unsigned int fu p_dev->device_no = (s->device_count++); mutex_unlock(&s->ops_mutex); - /* max of 2 devices per card */ - if (p_dev->device_no >= 2) + /* max of 2 PFC devices */ + if ((p_dev->device_no >= 2) && (function == 0)) + goto err_free; + + /* max of 4 devices overall */ + if (p_dev->device_no >= 4) goto err_free; p_dev->socket = s; |