diff options
Diffstat (limited to 'drivers/ide/ide-generic.c')
-rw-r--r-- | drivers/ide/ide-generic.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c index e8818362eb46..a7082c28d06f 100644 --- a/drivers/ide/ide-generic.c +++ b/drivers/ide/ide-generic.c | |||
@@ -28,9 +28,8 @@ MODULE_PARM_DESC(probe_mask, "probe mask for legacy ISA IDE ports"); | |||
28 | 28 | ||
29 | static ssize_t store_add(struct class *cls, const char *buf, size_t n) | 29 | static ssize_t store_add(struct class *cls, const char *buf, size_t n) |
30 | { | 30 | { |
31 | struct ide_host *host; | ||
32 | unsigned int base, ctl; | 31 | unsigned int base, ctl; |
33 | int irq; | 32 | int irq, rc; |
34 | hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; | 33 | hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; |
35 | 34 | ||
36 | if (sscanf(buf, "%x:%x:%d", &base, &ctl, &irq) != 3) | 35 | if (sscanf(buf, "%x:%x:%d", &base, &ctl, &irq) != 3) |
@@ -41,11 +40,9 @@ static ssize_t store_add(struct class *cls, const char *buf, size_t n) | |||
41 | hw.irq = irq; | 40 | hw.irq = irq; |
42 | hw.chipset = ide_generic; | 41 | hw.chipset = ide_generic; |
43 | 42 | ||
44 | host = ide_host_alloc(NULL, hws); | 43 | rc = ide_host_add(NULL, hws, NULL); |
45 | if (host == NULL) | 44 | if (rc) |
46 | return -ENOENT; | 45 | return rc; |
47 | |||
48 | ide_host_register(host, NULL, hws); | ||
49 | 46 | ||
50 | return n; | 47 | return n; |
51 | }; | 48 | }; |