Skip to content

Commit

Permalink
mt76: mt7615: fix compiler warning on frame size
Browse files Browse the repository at this point in the history
The following error is see from the compiler:

  mt7615/debugfs.c: In function ‘mt7615_ext_mac_addr_read’:
  mt7615/debugfs.c:465:1: warning: the frame size of 1072 bytes is
    larger than 1024 bytes [-Wframe-larger-than=]

The issue is due to allocating a buffer as string storage.

Fix by converting to a dynamical allocation of the buffer.

Reviewed-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
deren authored and nbd168 committed Feb 14, 2022
1 parent 1d57a0d commit 1f2a481
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions mt7615/debugfs.c
Expand Up @@ -443,11 +443,16 @@ mt7615_ext_mac_addr_read(struct file *file, char __user *userbuf,
size_t count, loff_t *ppos)
{
struct mt7615_dev *dev = file->private_data;
char buf[32 * ((ETH_ALEN * 3) + 4) + 1];
u32 len = 32 * ((ETH_ALEN * 3) + 4) + 1;
u8 addr[ETH_ALEN];
char *buf;
int ofs = 0;
int i;

buf = kzalloc(len, GFP_KERNEL);
if (!buf)
return -ENOMEM;

for (i = 0; i < 32; i++) {
if (!(dev->muar_mask & BIT(i)))
continue;
Expand All @@ -458,10 +463,13 @@ mt7615_ext_mac_addr_read(struct file *file, char __user *userbuf,
put_unaligned_le32(mt76_rr(dev, MT_WF_RMAC_MAR0), addr);
put_unaligned_le16((mt76_rr(dev, MT_WF_RMAC_MAR1) &
MT_WF_RMAC_MAR1_ADDR), addr + 4);
ofs += snprintf(buf + ofs, sizeof(buf) - ofs, "%d=%pM\n", i, addr);
ofs += snprintf(buf + ofs, len - ofs, "%d=%pM\n", i, addr);
}

return simple_read_from_buffer(userbuf, count, ppos, buf, ofs);
ofs = simple_read_from_buffer(userbuf, count, ppos, buf, ofs);

kfree(buf);
return ofs;
}

static ssize_t
Expand Down

0 comments on commit 1f2a481

Please sign in to comment.