Netgear WNR612v2 flashed with recent OpenWrt builds suffers from kernel
panic at boot during wireless chip initialization, making device
unusable:
ath: phy0: Ignoring endianness difference in EEPROM magic bytes.
ath: phy0: Enable LNA combining
CPU 0 Unable to handle kernel paging request at virtual address
1000fee1, epc ==
801d08f0, ra ==
801d0d90
Oops[#1]:
CPU: 0 PID: 469 Comm: kmodloader Not tainted 4.9.120 #0
[ ... register dump etc ... ]
Kernel panic - not syncing: Fatal exception
Rebooting in 1 seconds..
This simple patch fixes above error. It keeps LED table in memory after
kernel init phase for ath9k driver to operate correctly (__initdata
removed).
Also, another bug is fixed - correct array size is provided to function
that adds platform LEDs (this device has only 1 connected to Wifi chip)
preventing code from going outside array bounds.
Fixes:
1f5ea4eae46e ("ar71xx: add correct named default wireless led by using platform leds")
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
[trimmed commit message]
Signed-off-by: Mathias Kresin <dev@kresin.me>
}
};
-static struct gpio_led wnr612v2_wmac_leds_gpio[] __initdata = {
+static struct gpio_led wnr612v2_wmac_leds_gpio[] = {
{
.name = "netgear:green:wlan",
.gpio = WNR612V2_GPIO_WMAC_LED_WLAN_GREEN,
wnr612v2_leds_gpio);
ap9x_pci_setup_wmac_leds(0, wnr612v2_wmac_leds_gpio,
- ARRAY_SIZE(wnr612v2_leds_gpio));
+ ARRAY_SIZE(wnr612v2_wmac_leds_gpio));
ap9x_pci_setup_wmac_btns(0, wnr612v2_wmac_keys_gpio,
ARRAY_SIZE(wnr612v2_wmac_keys_gpio),