@@ -297,7 +297,7 @@ static void pn544_hci_i2c_add_len_crc(struct sk_buff *skb)
static void pn544_hci_i2c_remove_len_crc(struct sk_buff *skb)
{
skb_pull(skb, PN544_I2C_FRAME_HEADROOM);
- skb_trim(skb, PN544_I2C_FRAME_TAILROOM);
+ skb_trim(skb, skb->len - PN544_I2C_FRAME_TAILROOM);
}
/*
@@ -411,8 +411,7 @@ static int pn544_hci_i2c_read(struct pn544_i2c_phy *phy, struct sk_buff **skb)
goto flush;
}
- skb_pull(*skb, 1);
- skb_trim(*skb, (*skb)->len - 2);
+ pn544_hci_i2c_remove_len_crc(*skb);
usleep_range(3000, 6000);
The 2nd parameter of skb_trim is the new length of the skb. pn544_hci_i2c_remove_len_crc used the tailroom for the 2nd parameter so the new length was 2 no metter how big the skb was. Now the length is (skb->len - PN544_I2C_FRAME_TAILROOM) Signed-off-by: Robert Dolca <robert.dolca@intel.com> --- drivers/nfc/pn544/i2c.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)