Skip to content

Commit

Permalink
PNP: remove extra 0x100 bit from option priority
Browse files Browse the repository at this point in the history
When building resource options, ISAPNP and PNPBIOS set the priority
to something like "0x100 | PNP_RES_PRIORITY_ACCEPTABLE", but we
immediately mask off the 0x100 again in pnp_build_option(), so that
bit looks superfluous.

Thanks to Rene Herman <[email protected]> for pointing this out.

Signed-off-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Andi Kleen <[email protected]>
Acked-by: Rene Herman <[email protected]>
Signed-off-by: Len Brown <[email protected]>
  • Loading branch information
Bjorn Helgaas authored and Andi Kleen committed Jul 16, 2008
1 parent d5ebde6 commit e2a1a6f
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 9 deletions.
8 changes: 3 additions & 5 deletions drivers/pnp/isapnp/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,7 @@ isapnp_parse_name(char *name, unsigned int name_max, unsigned short *size)
static int __init isapnp_create_device(struct pnp_card *card,
unsigned short size)
{
int number = 0, skip = 0, priority = 0, compat = 0;
int number = 0, skip = 0, priority, compat = 0;
unsigned char type, tmp[17];
struct pnp_option *option;
struct pnp_dev *dev;
Expand Down Expand Up @@ -621,7 +621,6 @@ static int __init isapnp_create_device(struct pnp_card *card,
} else {
skip = 1;
}
priority = 0;
compat = 0;
break;
case _STAG_COMPATDEVID:
Expand Down Expand Up @@ -650,10 +649,10 @@ static int __init isapnp_create_device(struct pnp_card *card,
case _STAG_STARTDEP:
if (size > 1)
goto __skip;
priority = 0x100 | PNP_RES_PRIORITY_ACCEPTABLE;
priority = PNP_RES_PRIORITY_ACCEPTABLE;
if (size > 0) {
isapnp_peek(tmp, size);
priority = 0x100 | tmp[0];
priority = tmp[0];
size = 0;
}
option = pnp_register_dependent_option(dev, priority);
Expand All @@ -663,7 +662,6 @@ static int __init isapnp_create_device(struct pnp_card *card,
case _STAG_ENDDEP:
if (size != 0)
goto __skip;
priority = 0;
dev_dbg(&dev->dev, "end dependent options\n");
break;
case _STAG_IOPORT:
Expand Down
2 changes: 1 addition & 1 deletion drivers/pnp/pnpacpi/rsparser.c
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@ struct acpipnp_parse_option_s {
static __init acpi_status pnpacpi_option_resource(struct acpi_resource *res,
void *data)
{
int priority = 0;
int priority;
struct acpipnp_parse_option_s *parse_data = data;
struct pnp_dev *dev = parse_data->dev;
struct pnp_option *option = parse_data->option;
Expand Down
6 changes: 3 additions & 3 deletions drivers/pnp/pnpbios/rsparser.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ pnpbios_parse_resource_option_data(unsigned char *p, unsigned char *end,
struct pnp_dev *dev)
{
unsigned int len, tag;
int priority = 0;
int priority;
struct pnp_option *option, *option_independent;

if (!p)
Expand Down Expand Up @@ -389,9 +389,9 @@ pnpbios_parse_resource_option_data(unsigned char *p, unsigned char *end,
case SMALL_TAG_STARTDEP:
if (len > 1)
goto len_err;
priority = 0x100 | PNP_RES_PRIORITY_ACCEPTABLE;
priority = PNP_RES_PRIORITY_ACCEPTABLE;
if (len > 0)
priority = 0x100 | p[1];
priority = p[1];
option = pnp_register_dependent_option(dev, priority);
if (!option)
return NULL;
Expand Down

0 comments on commit e2a1a6f

Please sign in to comment.