diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2019-03-28 16:39:27 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-03-28 12:57:24 -0700 |
commit | 48ce6f89fcb10fa73622c71e455645a9d59a1aa2 (patch) | |
tree | 3898fbc3bd090c020fbf727ada8b902888a8efbd /drivers/s390/net/qeth_l2_main.c | |
parent | s390/qeth: let qeth_notify_reply() set the notify reason (diff) | |
download | linux-dev-48ce6f89fcb10fa73622c71e455645a9d59a1aa2.tar.xz linux-dev-48ce6f89fcb10fa73622c71e455645a9d59a1aa2.zip |
s390/qeth: use callback to finalize cmd
To avoid concurrency issues, some parts of the cmd setup are delayed
until qeth_send_control_data() holds the IO channel's irq_pending
"lock". Rather than hard-coding those setup steps for each cmd type,
have the cmd provide a callback. This will make it easier to also issue
IDX commands via qeth_send_control_data().
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | drivers/s390/net/qeth_l2_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index e2b09472c482..5549c66c6b5d 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c @@ -1051,7 +1051,8 @@ static int qeth_osn_send_control_data(struct qeth_card *card, int len, QETH_CARD_TEXT(card, 5, "osndctrd"); wait_event(card->wait_q, qeth_trylock_channel(channel)); - qeth_prepare_control_data(card, len, iob); + iob->finalize(card, iob, len); + QETH_DBF_HEX(CTRL, 2, iob->data, min(len, QETH_DBF_CTRL_LEN)); QETH_CARD_TEXT(card, 6, "osnoirqp"); spin_lock_irq(get_ccwdev_lock(channel->ccwdev)); rc = ccw_device_start_timeout(channel->ccwdev, channel->ccw, |