[PATCH] s/390: Use klist in cio

Convert the common I/O layer to use the klist interfaces.

This patch has been adapted from the previous version to the changed interface
semantics.  Also, gcc 4.0 compile warnings have been removed.

Signed-off-by: Cornelia Huck <cohuck@de.ibm.com>
Cc: Greg KH <greg@kroah.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Cornelia Huck
2005-06-25 14:55:27 -07:00
committed by Linus Torvalds
parent 84dd8d7e9c
commit b0744bd292
3 changed files with 66 additions and 82 deletions

View File

@@ -128,34 +128,28 @@ css_probe_device(int irq)
return ret;
}
static int
check_subchannel(struct device * dev, void * data)
{
struct subchannel *sch;
int irq = (unsigned long)data;
sch = to_subchannel(dev);
return (sch->irq == irq);
}
struct subchannel *
get_subchannel_by_schid(int irq)
{
struct subchannel *sch;
struct list_head *entry;
struct device *dev;
if (!get_bus(&css_bus_type))
return NULL;
down_read(&css_bus_type.subsys.rwsem);
sch = NULL;
list_for_each(entry, &css_bus_type.devices.list) {
dev = get_device(container_of(entry,
struct device, bus_list));
if (!dev)
continue;
sch = to_subchannel(dev);
if (sch->irq == irq)
break;
put_device(dev);
sch = NULL;
}
up_read(&css_bus_type.subsys.rwsem);
put_bus(&css_bus_type);
dev = bus_find_device(&css_bus_type, NULL,
(void *)(unsigned long)irq, check_subchannel);
return sch;
return dev ? to_subchannel(dev) : NULL;
}
static inline int
css_get_subchannel_status(struct subchannel *sch, int schid)
{