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
/
isapnp
/
core.c
diff --git
a/drivers/pnp/isapnp/core.c
b/drivers/pnp/isapnp/core.c
index
ee6d1ed
..
6ec4862
100644
(file)
--- a/
drivers/pnp/isapnp/core.c
+++ b/
drivers/pnp/isapnp/core.c
@@
-58,13
+58,13
@@
int isapnp_verbose = 1; /* verbose mode */
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Generic ISA Plug & Play support");
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Generic ISA Plug & Play support");
-
MODULE_PARM(isapnp_disable, "i"
);
+
module_param(isapnp_disable, int, 0
);
MODULE_PARM_DESC(isapnp_disable, "ISA Plug & Play disable");
MODULE_PARM_DESC(isapnp_disable, "ISA Plug & Play disable");
-
MODULE_PARM(isapnp_rdp, "i"
);
+
module_param(isapnp_rdp, int, 0
);
MODULE_PARM_DESC(isapnp_rdp, "ISA Plug & Play read data port");
MODULE_PARM_DESC(isapnp_rdp, "ISA Plug & Play read data port");
-
MODULE_PARM(isapnp_reset, "i"
);
+
module_param(isapnp_reset, int, 0
);
MODULE_PARM_DESC(isapnp_reset, "ISA Plug & Play reset all cards");
MODULE_PARM_DESC(isapnp_reset, "ISA Plug & Play reset all cards");
-
MODULE_PARM(isapnp_verbose, "i"
);
+
module_param(isapnp_verbose, int, 0
);
MODULE_PARM_DESC(isapnp_verbose, "ISA Plug & Play verbose mode");
MODULE_LICENSE("GPL");
MODULE_PARM_DESC(isapnp_verbose, "ISA Plug & Play verbose mode");
MODULE_LICENSE("GPL");
@@
-477,12
+477,14
@@
static void __init isapnp_parse_irq_resource(struct pnp_option *option,
{
unsigned char tmp[3];
struct pnp_irq *irq;
{
unsigned char tmp[3];
struct pnp_irq *irq;
+ unsigned long bits;
isapnp_peek(tmp, size);
irq = isapnp_alloc(sizeof(struct pnp_irq));
if (!irq)
return;
isapnp_peek(tmp, size);
irq = isapnp_alloc(sizeof(struct pnp_irq));
if (!irq)
return;
- irq->map = (tmp[1] << 8) | tmp[0];
+ bits = (tmp[1] << 8) | tmp[0];
+ bitmap_copy(irq->map, &bits, 16);
if (size > 2)
irq->flags = tmp[2];
else
if (size > 2)
irq->flags = tmp[2];
else
@@
-655,8
+657,10
@@
static int __init isapnp_create_device(struct pnp_card *card,
if ((dev = isapnp_parse_device(card, size, number++)) == NULL)
return 1;
option = pnp_register_independent_option(dev);
if ((dev = isapnp_parse_device(card, size, number++)) == NULL)
return 1;
option = pnp_register_independent_option(dev);
- if (!option)
+ if (!option) {
+ kfree(dev);
return 1;
return 1;
+ }
pnp_add_card_device(card,dev);
while (1) {
pnp_add_card_device(card,dev);
while (1) {