[PATCH] s390: Fix missing release function and cosmetic changes
authorCornelia Huck <huckc@de.ibm.com>
Fri, 6 Jan 2006 08:19:26 +0000 (00:19 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 16:33:52 +0000 (08:33 -0800)
- Use kzalloc() in blacklist.c.
- Kill unwanted casts in blacklist.c.
- Provide release function for struct channel_subsystem.

Signed-off-by: Cornelia Huck <huckc@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/s390/cio/blacklist.c
drivers/s390/cio/css.c

index 2d444cb2fdf718e96ce727b2d972d790ca779844..daf21e03b21d43b5e632713f03e0bb9794624558 100644 (file)
@@ -299,10 +299,9 @@ cio_ignore_proc_seq_start(struct seq_file *s, loff_t *offset)
 
        if (*offset >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1))
                return NULL;
-       iter = kmalloc(sizeof(struct ccwdev_iter), GFP_KERNEL);
+       iter = kzalloc(sizeof(struct ccwdev_iter), GFP_KERNEL);
        if (!iter)
                return ERR_PTR(-ENOMEM);
-       memset(iter, 0, sizeof(struct ccwdev_iter));
        iter->ssid = *offset / (__MAX_SUBCHANNEL + 1);
        iter->devno = *offset % (__MAX_SUBCHANNEL + 1);
        return iter;
@@ -322,7 +321,7 @@ cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset)
 
        if (*offset >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1))
                return NULL;
-       iter = (struct ccwdev_iter *)it;
+       iter = it;
        if (iter->devno == __MAX_SUBCHANNEL) {
                iter->devno = 0;
                iter->ssid++;
@@ -339,7 +338,7 @@ cio_ignore_proc_seq_show(struct seq_file *s, void *it)
 {
        struct ccwdev_iter *iter;
 
-       iter = (struct ccwdev_iter *)it;
+       iter = it;
        if (!is_blacklisted(iter->ssid, iter->devno))
                /* Not blacklisted, nothing to output. */
                return 0;
index 9e9d4a157a4cff1aa43465013a62e86d40a8ec27..e565193650c767038b8046a9309e38b5734bc86f 100644 (file)
@@ -444,6 +444,15 @@ css_generate_pgid(struct channel_subsystem *css, u32 tod_high)
 
 }
 
+static void
+channel_subsystem_release(struct device *dev)
+{
+       struct channel_subsystem *css;
+
+       css = to_css(dev);
+       kfree(css);
+}
+
 static inline void __init
 setup_css(int nr)
 {
@@ -453,6 +462,7 @@ setup_css(int nr)
        css[nr]->valid = 1;
        css[nr]->cssid = nr;
        sprintf(css[nr]->device.bus_id, "css%x", nr);
+       css[nr]->device.release = channel_subsystem_release;
        tod_high = (u32) (get_clock() >> 32);
        css_generate_pgid(css[nr], tod_high);
 }