forked from luck/tmp_suning_uos_patched
pcmcia: fix matching rules for pseudo-multi-function cards
Prevent PCMCIA_DEV_ID_MATCH_FUNC_ID from grabbing PFC-cards: I changed the code, so that the first matching struct pcmcia_device_id _PFC_ entry will mark the card has_pfc, preventing PCMCIA_DEV_ID_MATCH_FUNC_ID to match. [linux-pcmcia@lists.infradead.org: re-order commit message] Signed-off-by: Alexander Kurz <linux@kbdbabel.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
parent
04de081617
commit
83bf6f11e8
|
@ -820,11 +820,12 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
|
|||
}
|
||||
|
||||
if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) {
|
||||
if (dev->device_no != did->device_no)
|
||||
return 0;
|
||||
dev_dbg(&dev->dev, "this is a pseudo-multi-function device\n");
|
||||
mutex_lock(&dev->socket->ops_mutex);
|
||||
dev->socket->pcmcia_state.has_pfc = 1;
|
||||
mutex_unlock(&dev->socket->ops_mutex);
|
||||
if (dev->device_no != did->device_no)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (did->match_flags & PCMCIA_DEV_ID_MATCH_FUNC_ID) {
|
||||
|
@ -835,7 +836,7 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
|
|||
|
||||
/* if this is a pseudo-multi-function device,
|
||||
* we need explicit matches */
|
||||
if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO)
|
||||
if (dev->socket->pcmcia_state.has_pfc)
|
||||
return 0;
|
||||
if (dev->device_no)
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue
Block a user