mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
mt76: add len parameter to __mt76_mcu_msg_alloc signature
Introduce len to __mt76_mcu_msg_alloc signature in order to add the capability to specify two different value for allocation and copy length. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
7e6ffd5d5d
commit
b146f238d1
|
|
@ -7,17 +7,19 @@
|
|||
|
||||
struct sk_buff *
|
||||
__mt76_mcu_msg_alloc(struct mt76_dev *dev, const void *data,
|
||||
int data_len, gfp_t gfp)
|
||||
int len, int data_len, gfp_t gfp)
|
||||
{
|
||||
const struct mt76_mcu_ops *ops = dev->mcu_ops;
|
||||
int length = ops->headroom + data_len + ops->tailroom;
|
||||
struct sk_buff *skb;
|
||||
|
||||
skb = alloc_skb(length, gfp);
|
||||
len = max_t(int, len, data_len);
|
||||
len = ops->headroom + len + ops->tailroom;
|
||||
|
||||
skb = alloc_skb(len, gfp);
|
||||
if (!skb)
|
||||
return NULL;
|
||||
|
||||
memset(skb->head, 0, length);
|
||||
memset(skb->head, 0, len);
|
||||
skb_reserve(skb, ops->headroom);
|
||||
|
||||
if (data && data_len)
|
||||
|
|
|
|||
|
|
@ -1343,12 +1343,12 @@ int mt76s_rd_rp(struct mt76_dev *dev, u32 base,
|
|||
|
||||
struct sk_buff *
|
||||
__mt76_mcu_msg_alloc(struct mt76_dev *dev, const void *data,
|
||||
int data_len, gfp_t gfp);
|
||||
int len, int data_len, gfp_t gfp);
|
||||
static inline struct sk_buff *
|
||||
mt76_mcu_msg_alloc(struct mt76_dev *dev, const void *data,
|
||||
int data_len)
|
||||
{
|
||||
return __mt76_mcu_msg_alloc(dev, data, data_len, GFP_KERNEL);
|
||||
return __mt76_mcu_msg_alloc(dev, data, data_len, data_len, GFP_KERNEL);
|
||||
}
|
||||
|
||||
void mt76_mcu_rx_event(struct mt76_dev *dev, struct sk_buff *skb);
|
||||
|
|
|
|||
|
|
@ -1454,15 +1454,14 @@ static void mt7921_ipv6_addr_change(struct ieee80211_hw *hw,
|
|||
if (!idx)
|
||||
return;
|
||||
|
||||
skb = __mt76_mcu_msg_alloc(&dev->mt76, NULL, sizeof(req_hdr) +
|
||||
idx * sizeof(struct in6_addr), GFP_ATOMIC);
|
||||
if (!skb)
|
||||
return;
|
||||
|
||||
req_hdr.arpns.ips_num = idx;
|
||||
req_hdr.arpns.len = cpu_to_le16(sizeof(struct mt76_connac_arpns_tlv)
|
||||
+ idx * sizeof(struct in6_addr));
|
||||
skb_put_data(skb, &req_hdr, sizeof(req_hdr));
|
||||
skb = __mt76_mcu_msg_alloc(&dev->mt76, &req_hdr,
|
||||
sizeof(req_hdr) + idx * sizeof(struct in6_addr),
|
||||
sizeof(req_hdr), GFP_ATOMIC);
|
||||
if (!skb)
|
||||
return;
|
||||
|
||||
for (i = 0; i < idx; i++)
|
||||
skb_put_data(skb, &ns_addrs[i].in6_u, sizeof(struct in6_addr));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user