git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
drivers
/
pnp
/
manager.c
diff --git
a/drivers/pnp/manager.c
b/drivers/pnp/manager.c
index
b31a33a
..
0cbdf9d
100644
(file)
--- a/
drivers/pnp/manager.c
+++ b/
drivers/pnp/manager.c
@@
-150,13
+150,19
@@
static int pnp_assign_irq(struct pnp_dev * dev, struct pnp_irq *rule, int idx)
*flags |= rule->flags | IORESOURCE_IRQ;
*flags &= ~IORESOURCE_UNSET;
*flags |= rule->flags | IORESOURCE_IRQ;
*flags &= ~IORESOURCE_UNSET;
- if (
!rule->map
) {
+ if (
bitmap_empty(rule->map, PNP_IRQ_NR)
) {
*flags |= IORESOURCE_DISABLED;
return 1; /* skip disabled resource requests */
}
*flags |= IORESOURCE_DISABLED;
return 1; /* skip disabled resource requests */
}
+ /* TBD: need check for >16 IRQ */
+ *start = find_next_bit(rule->map, PNP_IRQ_NR, 16);
+ if (*start < PNP_IRQ_NR) {
+ *end = *start;
+ return 1;
+ }
for (i = 0; i < 16; i++) {
for (i = 0; i < 16; i++) {
- if(
rule->map & (1<<xtab[i]
)) {
+ if(
test_bit(xtab[i], rule->map
)) {
*start = *end = xtab[i];
if(pnp_check_irq(dev, idx))
return 1;
*start = *end = xtab[i];
if(pnp_check_irq(dev, idx))
return 1;