s390/qeth: fix error handling in checksum cmd callback
Make sure to check both return code fields before processing the
response. Otherwise we risk operating on invalid data.
Fixes: c9475369bd
("s390/qeth: rework RX/TX checksum offload")
Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bb25c3855a
commit
ad3cbf6133
|
@ -5386,6 +5386,13 @@ int qeth_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(qeth_poll);
|
EXPORT_SYMBOL_GPL(qeth_poll);
|
||||||
|
|
||||||
|
static int qeth_setassparms_inspect_rc(struct qeth_ipa_cmd *cmd)
|
||||||
|
{
|
||||||
|
if (!cmd->hdr.return_code)
|
||||||
|
cmd->hdr.return_code = cmd->data.setassparms.hdr.return_code;
|
||||||
|
return cmd->hdr.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
int qeth_setassparms_cb(struct qeth_card *card,
|
int qeth_setassparms_cb(struct qeth_card *card,
|
||||||
struct qeth_reply *reply, unsigned long data)
|
struct qeth_reply *reply, unsigned long data)
|
||||||
{
|
{
|
||||||
|
@ -6242,7 +6249,7 @@ static int qeth_ipa_checksum_run_cmd_cb(struct qeth_card *card,
|
||||||
(struct qeth_checksum_cmd *)reply->param;
|
(struct qeth_checksum_cmd *)reply->param;
|
||||||
|
|
||||||
QETH_CARD_TEXT(card, 4, "chkdoccb");
|
QETH_CARD_TEXT(card, 4, "chkdoccb");
|
||||||
if (cmd->hdr.return_code)
|
if (qeth_setassparms_inspect_rc(cmd))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
memset(chksum_cb, 0, sizeof(*chksum_cb));
|
memset(chksum_cb, 0, sizeof(*chksum_cb));
|
||||||
|
|
Loading…
Reference in New Issue