NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
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: a06347c04c
("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>
alistair/sensors
parent
dddeb30bfc
commit
0dcdf9f640
|
@ -184,7 +184,7 @@ static int fdp_nci_send_patch(struct nci_dev *ndev, u8 conn_id, u8 type)
|
||||||
const struct firmware *fw;
|
const struct firmware *fw;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
unsigned long len;
|
unsigned long len;
|
||||||
u8 max_size, payload_size;
|
int max_size, payload_size;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
if ((type == NCI_PATCH_TYPE_OTP && !info->otp_patch) ||
|
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) {
|
while (len) {
|
||||||
|
|
||||||
payload_size = min_t(unsigned long, (unsigned long) max_size,
|
payload_size = min_t(unsigned long, max_size, len);
|
||||||
len);
|
|
||||||
|
|
||||||
skb = nci_skb_alloc(ndev, (NCI_CTRL_HDR_SIZE + payload_size),
|
skb = nci_skb_alloc(ndev, (NCI_CTRL_HDR_SIZE + payload_size),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
|
|
Loading…
Reference in New Issue