ccwgroup: Unify parsing for group attribute.
Instead of having each driver for ccwgroup slave device parsing the input itself and calling ccwgroup_create(), introduce a new function ccwgroup_create_from_string() and handle parsing inside the ccwgroup core. Signed-off-by: Ursula Braun <braunu@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
committed by
Jeff Garzik
parent
8bbf84404b
commit
022b660ae5
@@ -3827,27 +3827,8 @@ static struct ccw_driver qeth_ccw_driver = {
|
||||
static int qeth_core_driver_group(const char *buf, struct device *root_dev,
|
||||
unsigned long driver_id)
|
||||
{
|
||||
const char *start, *end;
|
||||
char bus_ids[3][BUS_ID_SIZE], *argv[3];
|
||||
int i;
|
||||
|
||||
start = buf;
|
||||
for (i = 0; i < 3; i++) {
|
||||
static const char delim[] = { ',', ',', '\n' };
|
||||
int len;
|
||||
|
||||
end = strchr(start, delim[i]);
|
||||
if (!end)
|
||||
return -EINVAL;
|
||||
len = min_t(ptrdiff_t, BUS_ID_SIZE, end - start);
|
||||
strncpy(bus_ids[i], start, len);
|
||||
bus_ids[i][len] = '\0';
|
||||
start = end + 1;
|
||||
argv[i] = bus_ids[i];
|
||||
}
|
||||
|
||||
return (ccwgroup_create(root_dev, driver_id,
|
||||
&qeth_ccw_driver, 3, argv));
|
||||
return ccwgroup_create_from_string(root_dev, driver_id,
|
||||
&qeth_ccw_driver, 3, buf);
|
||||
}
|
||||
|
||||
int qeth_core_hardsetup_card(struct qeth_card *card)
|
||||
|
Reference in New Issue
Block a user