NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 20 Mar 2020 13:21:17 +0000 (16:21 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 04:05:13 +0000 (21:05 -0700)
The nci_conn_max_data_pkt_payload_size() function sometimes returns
-EPROTO so "max_size" needs to be signed for the error handling to
work.  We can make "payload_size" an int as well.

Fixes: a06347c04c13 ("NFC: Add Intel Fields Peak NFC solution driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/nfc/fdp/fdp.c

index 0cc9ac856fe21883ffe34c9e9e29b431dac5a7ed..ed2123129e0e30f4a5b3506286c92a4c1fe3228c 100644 (file)
@@ -184,7 +184,7 @@ static int fdp_nci_send_patch(struct nci_dev *ndev, u8 conn_id, u8 type)
        const struct firmware *fw;
        struct sk_buff *skb;
        unsigned long len;
-       u8 max_size, payload_size;
+       int max_size, payload_size;
        int rc = 0;
 
        if ((type == NCI_PATCH_TYPE_OTP && !info->otp_patch) ||
@@ -207,8 +207,7 @@ static int fdp_nci_send_patch(struct nci_dev *ndev, u8 conn_id, u8 type)
 
        while (len) {
 
-               payload_size = min_t(unsigned long, (unsigned long) max_size,
-                                    len);
+               payload_size = min_t(unsigned long, max_size, len);
 
                skb = nci_skb_alloc(ndev, (NCI_CTRL_HDR_SIZE + payload_size),
                                    GFP_KERNEL);