linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [bug report] wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices
@ 2022-12-03 12:54 Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2022-12-03 12:54 UTC (permalink / raw)
  To: shayne.chen; +Cc: linux-wireless, linux-mediatek

Hello Shayne Chen,

The patch 98686cd21624: "wifi: mt76: mt7996: add driver for MediaTek
Wi-Fi 7 (802.11be) devices" from Nov 22, 2022, leads to the following
Smatch static checker warning:

	drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c:657 mt7996_rf_regval_set()
	warn: passing casted pointer '&val' to 'mt7996_mcu_rf_regval()' 64 vs 32.

drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c
    652 static int
    653 mt7996_rf_regval_set(void *data, u64 val)
    654 {
    655         struct mt7996_dev *dev = data;
    656 
--> 657         return mt7996_mcu_rf_regval(dev, dev->mt76.debugfs_reg, (u32 *)&val, true);
                                                                        ^^^^^^^^^^^
This code only "works" on little endian systems.  You have to do
something like:

	u32 u32_val = val;

	return mt7996_mcu_rf_regval(dev, dev->mt76.debugfs_reg, &u32_val, true);

    658 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [bug report] wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices
@ 2022-12-03 12:55 Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2022-12-03 12:55 UTC (permalink / raw)
  To: shayne.chen; +Cc: linux-wireless, linux-mediatek

Hello Shayne Chen,

The patch 98686cd21624: "wifi: mt76: mt7996: add driver for MediaTek
Wi-Fi 7 (802.11be) devices" from Nov 22, 2022, leads to the following
Smatch static checker warning:

	drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c:72 mt7996_eeprom_load()
	error: uninitialized symbol 'free_block_num'.

drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
    55 static int mt7996_eeprom_load(struct mt7996_dev *dev)
    56 {
    57         int ret;
    58 
    59         ret = mt76_eeprom_init(&dev->mt76, MT7996_EEPROM_SIZE);
    60         if (ret < 0)
    61                 return ret;
    62 
    63         if (ret) {
    64                 dev->flash_mode = true;
    65         } else {
    66                 u8 free_block_num;
    67                 u32 block_num, i;
    68 
    69                 /* TODO: check free block event */
    70                 mt7996_mcu_get_eeprom_free_block(dev, &free_block_num);

free_block_num is not initialized if mt7996_mcu_get_eeprom_free_block()
fails.

    71                 /* efuse info not enough */
--> 72                 if (free_block_num >= 59)
    73                         return -EINVAL;
    74 
    75                 /* read eeprom data from efuse */
    76                 block_num = DIV_ROUND_UP(MT7996_EEPROM_SIZE, MT7996_EEPROM_BLOCK_SIZE);
    77                 for (i = 0; i < block_num; i++)
    78                         mt7996_mcu_get_eeprom(dev, i * MT7996_EEPROM_BLOCK_SIZE);
    79         }
    80 
    81         return mt7996_check_eeprom(dev);
    82 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-12-03 12:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-03 12:55 [bug report] wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2022-12-03 12:54 Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).