diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-06-07 12:31:17 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-06-07 12:34:16 -0400 |
commit | b83156b52dd77979cc93bafc2283929532f6f7d0 (patch) | |
tree | 28c75d4bffb7fc30469999ad9884594ba017df8b /drivers | |
parent | 287b87a350de4e344d60697a1f16abe2a6cd350a (diff) |
pcmcia: avoid validate_cis failure on CIS override
Commit a8408c17 introduced a new check to pccard_validate_cis(),
which avoids any "late" calls to this function. This broke the
insertion of cards which require a CIS override which changes
the number of card functions. Fix this by asserting that this
is _not_ a late call, but a proper call early during the card
insertion process.
Fixes https://bugzilla.kernel.org/show_bug.cgi?id=16138
Reported-by: Mikulas Patocka <mpatocka@redhat.com>
CC: <stable@kernel.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pcmcia/ds.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index 7ef7adee5e4f..9fc339845538 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c | |||
@@ -671,6 +671,7 @@ static void pcmcia_requery(struct pcmcia_socket *s) | |||
671 | if (old_funcs != new_funcs) { | 671 | if (old_funcs != new_funcs) { |
672 | /* we need to re-start */ | 672 | /* we need to re-start */ |
673 | pcmcia_card_remove(s, NULL); | 673 | pcmcia_card_remove(s, NULL); |
674 | s->functions = 0; | ||
674 | pcmcia_card_add(s); | 675 | pcmcia_card_add(s); |
675 | } | 676 | } |
676 | } | 677 | } |