diff options
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/core/sdio_cis.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/mmc/core/sdio_cis.c b/drivers/mmc/core/sdio_cis.c index e1035c895808..f85dcd536508 100644 --- a/drivers/mmc/core/sdio_cis.c +++ b/drivers/mmc/core/sdio_cis.c | |||
@@ -29,6 +29,8 @@ static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func, | |||
29 | unsigned i, nr_strings; | 29 | unsigned i, nr_strings; |
30 | char **buffer, *string; | 30 | char **buffer, *string; |
31 | 31 | ||
32 | /* Find all null-terminated (including zero length) strings in | ||
33 | the TPLLV1_INFO field. Trailing garbage is ignored. */ | ||
32 | buf += 2; | 34 | buf += 2; |
33 | size -= 2; | 35 | size -= 2; |
34 | 36 | ||
@@ -39,11 +41,8 @@ static int cistpl_vers_1(struct mmc_card *card, struct sdio_func *func, | |||
39 | if (buf[i] == 0) | 41 | if (buf[i] == 0) |
40 | nr_strings++; | 42 | nr_strings++; |
41 | } | 43 | } |
42 | 44 | if (nr_strings == 0) | |
43 | if (nr_strings < 4) { | ||
44 | printk(KERN_WARNING "SDIO: ignoring broken CISTPL_VERS_1\n"); | ||
45 | return 0; | 45 | return 0; |
46 | } | ||
47 | 46 | ||
48 | size = i; | 47 | size = i; |
49 | 48 | ||