forked from luck/tmp_suning_uos_patched
wpan: use stack buffer instead of heap
head buffer is only temporary available in mac802154_header_create. So it's not necessary to put it on the heap. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fc4e98dbba
commit
25060d8f3f
|
@ -137,16 +137,12 @@ static int mac802154_header_create(struct sk_buff *skb,
|
||||||
struct ieee802154_addr dev_addr;
|
struct ieee802154_addr dev_addr;
|
||||||
struct mac802154_sub_if_data *priv = netdev_priv(dev);
|
struct mac802154_sub_if_data *priv = netdev_priv(dev);
|
||||||
int pos = 2;
|
int pos = 2;
|
||||||
u8 *head;
|
u8 head[MAC802154_FRAME_HARD_HEADER_LEN];
|
||||||
u16 fc;
|
u16 fc;
|
||||||
|
|
||||||
if (!daddr)
|
if (!daddr)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
head = kzalloc(MAC802154_FRAME_HARD_HEADER_LEN, GFP_KERNEL);
|
|
||||||
if (head == NULL)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
head[pos++] = mac_cb(skb)->seq; /* DSN/BSN */
|
head[pos++] = mac_cb(skb)->seq; /* DSN/BSN */
|
||||||
fc = mac_cb_type(skb);
|
fc = mac_cb_type(skb);
|
||||||
|
|
||||||
|
@ -210,7 +206,6 @@ static int mac802154_header_create(struct sk_buff *skb,
|
||||||
head[1] = fc >> 8;
|
head[1] = fc >> 8;
|
||||||
|
|
||||||
memcpy(skb_push(skb, pos), head, pos);
|
memcpy(skb_push(skb, pos), head, pos);
|
||||||
kfree(head);
|
|
||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user