Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

NFC: nxp-nci: don't print header length mismatch on i2c error

Don't print a misleading header length mismatch error if the i2c call
returns an error. Instead just return the error code without any error
message.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Michael Walle and committed by
David S. Miller
9577fc5f eddd95b9

+6 -2
+6 -2
drivers/nfc/nxp-nci/i2c.c
··· 122 122 skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN); 123 123 124 124 r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len); 125 - if (r != frame_len) { 125 + if (r < 0) { 126 + goto fw_read_exit_free_skb; 127 + } else if (r != frame_len) { 126 128 nfc_err(&client->dev, 127 129 "Invalid frame length: %u (expected %zu)\n", 128 130 r, frame_len); ··· 168 166 return 0; 169 167 170 168 r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen); 171 - if (r != header.plen) { 169 + if (r < 0) { 170 + goto nci_read_exit_free_skb; 171 + } else if (r != header.plen) { 172 172 nfc_err(&client->dev, 173 173 "Invalid frame payload length: %u (expected %u)\n", 174 174 r, header.plen);