diff options
Diffstat (limited to 'drivers/block/paride')
-rw-r--r-- | drivers/block/paride/bpck6.c | 3 | ||||
-rw-r--r-- | drivers/block/paride/pd.c | 3 | ||||
-rw-r--r-- | drivers/block/paride/pg.c | 8 | ||||
-rw-r--r-- | drivers/block/paride/pt.c | 8 |
4 files changed, 13 insertions, 9 deletions
diff --git a/drivers/block/paride/bpck6.c b/drivers/block/paride/bpck6.c index 08d858ad64d..41a237c5957 100644 --- a/drivers/block/paride/bpck6.c +++ b/drivers/block/paride/bpck6.c @@ -224,10 +224,9 @@ static void bpck6_log_adapter( PIA *pi, char * scratch, int verbose ) static int bpck6_init_proto(PIA *pi) { - Interface *p = kmalloc(sizeof(Interface), GFP_KERNEL); + Interface *p = kzalloc(sizeof(Interface), GFP_KERNEL); if (p) { - memset(p, 0, sizeof(Interface)); pi->private = (unsigned long)p; return 0; } diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c index 62d2464c12f..2403721f9db 100644 --- a/drivers/block/paride/pd.c +++ b/drivers/block/paride/pd.c @@ -151,6 +151,7 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_GEO, D_SBY, D_DLY, D_SLV}; #include <linux/cdrom.h> /* for the eject ioctl */ #include <linux/blkdev.h> #include <linux/blkpg.h> +#include <linux/kernel.h> #include <asm/uaccess.h> #include <linux/sched.h> #include <linux/workqueue.h> @@ -275,7 +276,7 @@ static void pd_print_error(struct pd_unit *disk, char *msg, int status) int i; printk("%s: %s: status = 0x%x =", disk->name, msg, status); - for (i = 0; i < 18; i++) + for (i = 0; i < ARRAY_SIZE(pd_errs); i++) if (status & (1 << i)) printk(" %s", pd_errs[i]); printk("\n"); diff --git a/drivers/block/paride/pg.c b/drivers/block/paride/pg.c index 6f5df0fad70..79b86825403 100644 --- a/drivers/block/paride/pg.c +++ b/drivers/block/paride/pg.c @@ -643,7 +643,8 @@ static ssize_t pg_read(struct file *filp, char __user *buf, size_t count, loff_t static int __init pg_init(void) { - int unit, err = 0; + int unit; + int err; if (disable){ err = -1; @@ -657,16 +658,17 @@ static int __init pg_init(void) goto out; } - if (register_chrdev(major, name, &pg_fops)) { + err = register_chrdev(major, name, &pg_fops); + if (err < 0) { printk("pg_init: unable to get major number %d\n", major); for (unit = 0; unit < PG_UNITS; unit++) { struct pg *dev = &devices[unit]; if (dev->present) pi_release(dev->pi); } - err = -1; goto out; } + major = err; /* In case the user specified `major=0' (dynamic) */ pg_class = class_create(THIS_MODULE, "pg"); if (IS_ERR(pg_class)) { err = PTR_ERR(pg_class); diff --git a/drivers/block/paride/pt.c b/drivers/block/paride/pt.c index 715ae5dc88f..d2013d36240 100644 --- a/drivers/block/paride/pt.c +++ b/drivers/block/paride/pt.c @@ -943,7 +943,8 @@ static ssize_t pt_write(struct file *filp, const char __user *buf, size_t count, static int __init pt_init(void) { - int unit, err = 0; + int unit; + int err; if (disable) { err = -1; @@ -955,14 +956,15 @@ static int __init pt_init(void) goto out; } - if (register_chrdev(major, name, &pt_fops)) { + err = register_chrdev(major, name, &pt_fops); + if (err < 0) { printk("pt_init: unable to get major number %d\n", major); for (unit = 0; unit < PT_UNITS; unit++) if (pt[unit].present) pi_release(pt[unit].pi); - err = -1; goto out; } + major = err; pt_class = class_create(THIS_MODULE, "pt"); if (IS_ERR(pt_class)) { err = PTR_ERR(pt_class); |