Commit f06f6f32 authored by Cornelia Huck's avatar Cornelia Huck Committed by Jeff Garzik

qeth: Use ccw_device_get_id().

Get the devno from the ccw device via ccw_device_get_id() instead
of parsing the bus_id.
Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarFrank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent e5bd7be5
...@@ -1407,12 +1407,6 @@ static void qeth_init_func_level(struct qeth_card *card) ...@@ -1407,12 +1407,6 @@ static void qeth_init_func_level(struct qeth_card *card)
} }
} }
static inline __u16 qeth_raw_devno_from_bus_id(char *id)
{
id += (strlen(id) - 4);
return (__u16) simple_strtoul(id, &id, 16);
}
static int qeth_idx_activate_get_answer(struct qeth_channel *channel, static int qeth_idx_activate_get_answer(struct qeth_channel *channel,
void (*idx_reply_cb)(struct qeth_channel *, void (*idx_reply_cb)(struct qeth_channel *,
struct qeth_cmd_buffer *)) struct qeth_cmd_buffer *))
...@@ -1468,6 +1462,7 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel, ...@@ -1468,6 +1462,7 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel,
__u16 temp; __u16 temp;
__u8 tmp; __u8 tmp;
int rc; int rc;
struct ccw_dev_id temp_devid;
card = CARD_FROM_CDEV(channel->ccwdev); card = CARD_FROM_CDEV(channel->ccwdev);
...@@ -1494,8 +1489,8 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel, ...@@ -1494,8 +1489,8 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel,
&card->token.issuer_rm_w, QETH_MPC_TOKEN_LENGTH); &card->token.issuer_rm_w, QETH_MPC_TOKEN_LENGTH);
memcpy(QETH_IDX_ACT_FUNC_LEVEL(iob->data), memcpy(QETH_IDX_ACT_FUNC_LEVEL(iob->data),
&card->info.func_level, sizeof(__u16)); &card->info.func_level, sizeof(__u16));
temp = qeth_raw_devno_from_bus_id(CARD_DDEV_ID(card)); ccw_device_get_id(CARD_DDEV(card), &temp_devid);
memcpy(QETH_IDX_ACT_QDIO_DEV_CUA(iob->data), &temp, 2); memcpy(QETH_IDX_ACT_QDIO_DEV_CUA(iob->data), &temp_devid.devno, 2);
temp = (card->info.cula << 8) + card->info.unit_addr2; temp = (card->info.cula << 8) + card->info.unit_addr2;
memcpy(QETH_IDX_ACT_QDIO_DEV_REALADDR(iob->data), &temp, 2); memcpy(QETH_IDX_ACT_QDIO_DEV_REALADDR(iob->data), &temp, 2);
......
...@@ -101,19 +101,16 @@ static struct net_device *qeth_l2_netdev_by_devno(unsigned char *read_dev_no) ...@@ -101,19 +101,16 @@ static struct net_device *qeth_l2_netdev_by_devno(unsigned char *read_dev_no)
{ {
struct qeth_card *card; struct qeth_card *card;
struct net_device *ndev; struct net_device *ndev;
unsigned char *readno; __u16 temp_dev_no;
__u16 temp_dev_no, card_dev_no;
char *endp;
unsigned long flags; unsigned long flags;
struct ccw_dev_id read_devid;
ndev = NULL; ndev = NULL;
memcpy(&temp_dev_no, read_dev_no, 2); memcpy(&temp_dev_no, read_dev_no, 2);
read_lock_irqsave(&qeth_core_card_list.rwlock, flags); read_lock_irqsave(&qeth_core_card_list.rwlock, flags);
list_for_each_entry(card, &qeth_core_card_list.list, list) { list_for_each_entry(card, &qeth_core_card_list.list, list) {
readno = CARD_RDEV_ID(card); ccw_device_get_id(CARD_RDEV(card), &read_devid);
readno += (strlen(readno) - 4); if (read_devid.devno == temp_dev_no) {
card_dev_no = simple_strtoul(readno, &endp, 16);
if (card_dev_no == temp_dev_no) {
ndev = card->dev; ndev = card->dev;
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment