diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2020-01-25 16:53:02 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-01-26 15:20:32 +0100 |
commit | 7f92316c5393b583c5217bb2cfc789d6820ec393 (patch) | |
tree | b0c80e1f44087668ba2e424914c8feac05203a3c /drivers/s390/net/qeth_l2_main.c | |
parent | 91003f354e6bbe8d225b4d54127d80c694d201d9 (diff) |
s390/qeth: make cmd/reply matching more flexible
When data is received on the READ channel, the matching logic for cmds
that are waiting for a reply is currently hard-coded into the channel's
main IO callback.
Move this into a per-cmd callback, so that we can apply custom matching
logic for each individual cmd.
This also allows us to remove the coarse-grained check for unexpected
non-IPA replies, since they will no longer match against _all_ pending
cmds.
Note that IDX cmds use _no_ matcher, since their reply is synchronously
received as part of the cmd's IO.
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net/qeth_l2_main.c')
-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 c36b6c1fc33f..d5ffd40937d3 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c @@ -896,7 +896,8 @@ int qeth_osn_assist(struct net_device *dev, void *data, int data_len) if (!iob) return -ENOMEM; - qeth_prepare_ipa_cmd(card, iob, (u16) data_len); + qeth_prepare_ipa_cmd(card, iob, (u16) data_len, NULL); + memcpy(__ipa_cmd(iob), data, data_len); iob->callback = qeth_osn_assist_cb; return qeth_send_ipa_cmd(card, iob, NULL, NULL); |