|
@@ -1405,7 +1405,7 @@ static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq)
|
|
|
}
|
|
|
/* sent any remaining packets up */
|
|
|
if (bus->glom.qlen)
|
|
|
- brcmf_rx_frame(bus->sdiodev->dev, ifidx, &bus->glom);
|
|
|
+ brcmf_rx_frames(bus->sdiodev->dev, ifidx, &bus->glom);
|
|
|
|
|
|
bus->sdcnt.rxglomframes++;
|
|
|
bus->sdcnt.rxglompkts += bus->glom.qlen;
|
|
@@ -1556,6 +1556,7 @@ static void brcmf_pad(struct brcmf_sdio *bus, u16 *pad, u16 *rdlen)
|
|
|
static uint brcmf_sdio_readframes(struct brcmf_sdio *bus, uint maxframes)
|
|
|
{
|
|
|
struct sk_buff *pkt; /* Packet for event or data frames */
|
|
|
+ struct sk_buff_head pktlist; /* needed for bus interface */
|
|
|
u16 pad; /* Number of pad bytes to read */
|
|
|
uint rxleft = 0; /* Remaining number of frames allowed */
|
|
|
int sdret; /* Return code from calls */
|
|
@@ -1766,7 +1767,9 @@ static uint brcmf_sdio_readframes(struct brcmf_sdio *bus, uint maxframes)
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- brcmf_rx_packet(bus->sdiodev->dev, ifidx, pkt);
|
|
|
+ skb_queue_head_init(&pktlist);
|
|
|
+ skb_queue_tail(&pktlist, pkt);
|
|
|
+ brcmf_rx_frames(bus->sdiodev->dev, ifidx, &pktlist);
|
|
|
}
|
|
|
|
|
|
rxcount = maxframes - rxleft;
|