|
@@ -584,14 +584,14 @@ static int __init isapnp_create_device(struct pnp_card *card,
|
|
|
{
|
|
|
int number = 0, skip = 0, priority, compat = 0;
|
|
|
unsigned char type, tmp[17];
|
|
|
- struct pnp_option *option;
|
|
|
+ struct pnp_option *option, *option_independent;
|
|
|
struct pnp_dev *dev;
|
|
|
u32 eisa_id;
|
|
|
char id[8];
|
|
|
|
|
|
if ((dev = isapnp_parse_device(card, size, number++)) == NULL)
|
|
|
return 1;
|
|
|
- option = pnp_register_independent_option(dev);
|
|
|
+ option_independent = option = pnp_register_independent_option(dev);
|
|
|
if (!option) {
|
|
|
kfree(dev);
|
|
|
return 1;
|
|
@@ -613,6 +613,7 @@ static int __init isapnp_create_device(struct pnp_card *card,
|
|
|
size = 0;
|
|
|
skip = 0;
|
|
|
option = pnp_register_independent_option(dev);
|
|
|
+ option_independent = option;
|
|
|
if (!option) {
|
|
|
kfree(dev);
|
|
|
return 1;
|
|
@@ -662,6 +663,10 @@ static int __init isapnp_create_device(struct pnp_card *card,
|
|
|
case _STAG_ENDDEP:
|
|
|
if (size != 0)
|
|
|
goto __skip;
|
|
|
+ if (option_independent == option)
|
|
|
+ dev_warn(&dev->dev, "missing "
|
|
|
+ "_STAG_STARTDEP tag\n");
|
|
|
+ option = option_independent;
|
|
|
dev_dbg(&dev->dev, "end dependent options\n");
|
|
|
break;
|
|
|
case _STAG_IOPORT:
|