caif: fix a signedness bug in cfpkt_iterate()
The cfpkt_iterate() function can return -EPROTO on error, but the function is a u16 so the negative value gets truncated to a positive unsigned short. This causes a static checker warning. The only caller which might care is cffrml_receive(), when it's checking the frame checksum. I modified cffrml_receive() so that it never says -EPROTO is a valid checksum. Also this isn't ever going to be inlined so I removed the "inline". Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5a8eeec468
commit
278f7b4fff
3 changed files with 5 additions and 5 deletions
|
@ -171,7 +171,7 @@ struct cfpkt *cfpkt_split(struct cfpkt *pkt, u16 pos);
|
|||
* @return Checksum of buffer.
|
||||
*/
|
||||
|
||||
u16 cfpkt_iterate(struct cfpkt *pkt,
|
||||
int cfpkt_iterate(struct cfpkt *pkt,
|
||||
u16 (*iter_func)(u16 chks, void *buf, u16 len),
|
||||
u16 data);
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ static int cffrml_receive(struct cflayer *layr, struct cfpkt *pkt)
|
|||
u16 tmp;
|
||||
u16 len;
|
||||
u16 hdrchks;
|
||||
u16 pktchks;
|
||||
int pktchks;
|
||||
struct cffrml *this;
|
||||
this = container_obj(layr);
|
||||
|
||||
|
|
|
@ -255,9 +255,9 @@ inline u16 cfpkt_getlen(struct cfpkt *pkt)
|
|||
return skb->len;
|
||||
}
|
||||
|
||||
inline u16 cfpkt_iterate(struct cfpkt *pkt,
|
||||
u16 (*iter_func)(u16, void *, u16),
|
||||
u16 data)
|
||||
int cfpkt_iterate(struct cfpkt *pkt,
|
||||
u16 (*iter_func)(u16, void *, u16),
|
||||
u16 data)
|
||||
{
|
||||
/*
|
||||
* Don't care about the performance hit of linearizing,
|
||||
|
|
Loading…
Reference in a new issue