diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2020-02-27 18:08:10 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-02-27 11:15:12 -0800 |
commit | 9c6dc7af853382f119714889ba3de37b44a9fc0d (patch) | |
tree | dbaa9853604bc59161a445cd9917cb5f3d87bf74 /drivers | |
parent | 6bbfece5a4fbb4436eed124f4768473fff6e90e4 (diff) | |
download | linux-stable-9c6dc7af853382f119714889ba3de37b44a9fc0d.tar.gz linux-stable-9c6dc7af853382f119714889ba3de37b44a9fc0d.tar.bz2 linux-stable-9c6dc7af853382f119714889ba3de37b44a9fc0d.zip |
s390/qeth: clean up CREATE_ADDR cmd code
Properly define the cmd's struct to get rid of some casts and accesses
at magic offsets.
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/s390/net/qeth_core_mpc.h | 5 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 10 |
2 files changed, 6 insertions, 9 deletions
diff --git a/drivers/s390/net/qeth_core_mpc.h b/drivers/s390/net/qeth_core_mpc.h index 3865f7258449..3a3cebdaf948 100644 --- a/drivers/s390/net/qeth_core_mpc.h +++ b/drivers/s390/net/qeth_core_mpc.h @@ -550,8 +550,9 @@ struct qeth_ipacmd_setadpparms { /* CREATE_ADDR IPA Command: ***********************************************/ struct qeth_create_destroy_address { - __u8 unique_id[8]; -} __attribute__ ((packed)); + u8 mac_addr[ETH_ALEN]; + u16 uid; +}; /* SET DIAGNOSTIC ASSIST IPA Command: *************************************/ diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index 1c953981f73f..667a10d6495d 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c @@ -922,7 +922,7 @@ static int qeth_l3_iqd_read_initial_mac_cb(struct qeth_card *card, return -EIO; ether_addr_copy(card->dev->dev_addr, - cmd->data.create_destroy_addr.unique_id); + cmd->data.create_destroy_addr.mac_addr); return 0; } @@ -949,8 +949,7 @@ static int qeth_l3_get_unique_id_cb(struct qeth_card *card, struct qeth_ipa_cmd *cmd = (struct qeth_ipa_cmd *) data; if (cmd->hdr.return_code == 0) { - card->info.unique_id = *((__u16 *) - &cmd->data.create_destroy_addr.unique_id[6]); + card->info.unique_id = cmd->data.create_destroy_addr.uid; return 0; } @@ -964,7 +963,6 @@ static int qeth_l3_get_unique_id(struct qeth_card *card) { int rc = 0; struct qeth_cmd_buffer *iob; - struct qeth_ipa_cmd *cmd; QETH_CARD_TEXT(card, 2, "guniqeid"); @@ -978,10 +976,8 @@ static int qeth_l3_get_unique_id(struct qeth_card *card) IPA_DATA_SIZEOF(create_destroy_addr)); if (!iob) return -ENOMEM; - cmd = __ipa_cmd(iob); - *((__u16 *) &cmd->data.create_destroy_addr.unique_id[6]) = - card->info.unique_id; + __ipa_cmd(iob)->data.create_destroy_addr.uid = card->info.unique_id; rc = qeth_send_ipa_cmd(card, iob, qeth_l3_get_unique_id_cb, NULL); return rc; } |