/* Add alignment padding, allocate new packet if needed */
pad = ((unsigned long)frame % DHD_SDALIGN);
if (pad) {
- if (PKTHEADROOM(pkt) < pad) {
+ if (skb_headroom(pkt) < pad) {
DHD_INFO(("%s: insufficient headroom %d for %d pad\n",
- __func__, (int)PKTHEADROOM(pkt), pad));
+ __func__, skb_headroom(pkt), pad));
bus->dhd->tx_realloc++;
new = PKTGET(osh, (pkt->len + DHD_SDALIGN), true);
if (!new) {
u16 pad = bus->blocksize - (len % bus->blocksize);
if ((pad <= bus->roundup) && (pad < bus->blocksize))
#ifdef NOTUSED
- if (pad <= PKTTAILROOM(pkt))
+ if (pad <= skb_tailroom(pkt))
#endif /* NOTUSED */
len += pad;
} else if (len % DHD_SDALIGN) {
/* Some controllers have trouble with odd bytes -- round to even */
if (forcealign && (len & (ALIGNMENT - 1))) {
#ifdef NOTUSED
- if (PKTTAILROOM(pkt))
+ if (skb_tailroom(pkt))
#endif
len = roundup(len, ALIGNMENT);
#ifdef NOTUSED
#ifndef _linux_osl_h_
#define _linux_osl_h_
+#include <linux/skbuff.h>
extern struct osl_info *osl_attach(void *pdev, uint bustype);
extern void osl_detach(struct osl_info *osh);
/* packet primitives */
#define PKTGET(osh, len, send) osl_pktget((osh), (len))
#define PKTFREE(osh, skb, send) osl_pktfree((osh), (skb), (send))
-#define PKTHEADROOM(skb) ((skb)->data - (skb)->head)
-#define PKTTAILROOM(skb) ((skb)->end - (skb)->tail)
-#define PKTALLOCED(osh) (((struct osl_pubinfo *)(osh))->pktalloced)
+
extern void *osl_pktget(struct osl_info *osh, uint len);
extern void osl_pktfree(struct osl_info *osh, void *skb, bool send);
#define PKTTONATIVE(osh, pkt) \
osl_pkt_tonative((struct osl_pubinfo *)(osh), (pkt))
#else /* !BRCM_FULLMAC */
-#define PKTUNALLOC(osh) (((struct osl_pubinfo *)(osh))->pktalloced--)
-
#define PKTSETSKIPCT(osh, skb)
#define PKTCLRSKIPCT(osh, skb)
#define PKTSKIPCT(osh, skb)
/* Verify all packets are flushed from the driver */
- if (PKTALLOCED(wlc->osh) != 0) {
+ if (wlc->osh->pub.pktalloced != 0) {
WL_ERROR(("%d packets not freed at wlc_down!!!!!!\n",
- PKTALLOCED(wlc->osh)));
+ wlc->osh->pub.pktalloced));
}
#ifdef BCMDBG
/* Since all the packets should have been freed,
prio = (type == FC_TYPE_DATA ? sdu->priority : MAXPRIO);
fifo = prio2fifo[prio];
- ASSERT((uint) PKTHEADROOM(sdu) >= TXOFF);
+ ASSERT((uint) skb_headroom(sdu) >= TXOFF);
ASSERT(!(sdu->cloned));
ASSERT(!(sdu->next));
ASSERT(!(sdu->prev));
ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p);
WLCNTINCR(wlc->pub->_cnt->ieee_rx);
- PKTUNALLOC(osh);
+ osh->pub.pktalloced--;
return;
}