• Siva Rebbagondla's avatar
    rsi: fix nommu_map_sg overflow kernel panic · e7cb8f11
    Siva Rebbagondla authored
    [ Upstream commit f7005466
    
     ]
    
    Following overflow kernel panic is observed on some platforms while
    loading the driver. It is fixed if dynamically allocated memory is
    passed to SDIO instead of static one
    
    [  927.513963] nommu_map_sg: overflow 17d54064ba7c+20 of device mask ffffffff
    [  927.517712] Modules linked in: rsi_sdio(+) cmac bnep arc4 rsi_91x mac80211 cfg80211
    	       btrsi rfcomm bluetooth ecdh_generic snd_soc_sst_bytcr_rt5660
    [  927.517861] CPU: 0 PID: 1624 Comm: insmod Tainted: G W 4.15.0-1000 #1
    [  927.517870] RIP: 0010:sdhci_send_command+0x5f0/0xa90 [sdhci]
    [  927.517873] RSP: 0000:ffffac3fc064b6d8 EFLAGS: 00010086
    [  927.517895] Call Trace:
    [  927.517908]  ? __schedule+0x3cd/0x890
    [  927.517915]  ? mod_timer+0x17b/0x3c0
    [  927.517922]  sdhci_request+0x7c/0xf0 [sdhci]
    [  927.517928]  __mmc_start_request+0x5a/0x170
    [  927.517932]  mmc_start_request+0x74/0x90
    [  927.517936]  mmc_wait_for_req+0x87/0xe0
    [  927.517940]  mmc_io_rw_extended+0x2fd/0x330
    [  927.517946]  ? mmc_wait_data_done+0x30/0x30
    [  927.517951]  sdio_io_rw_ext_helper+0x160/0x210
    [  927.517956]  sdio_writesb+0x1d/0x20
    [  927.517966]	rsi_sdio_write_register_multiple+0x68/0x110 [rsi_sdio]
    [  927.517976]  rsi_hal_device_init+0x357/0x910 [rsi_91x]
    [  927.517983]  ? rsi_hal_device_init+0x357/0x910 [rsi_91x]
    [  927.517990]  rsi_probe+0x2c6/0x450 [rsi_sdio]
    [  927.517995]  sdio_bus_probe+0xfc/0x110
    [  927.518000]  driver_probe_device+0x2b3/0x490
    [  927.518005]  __driver_attach+0xdf/0xf0
    [  927.518008]  ? driver_probe_device+0x490/0x490
    [  927.518014]  bus_for_each_dev+0x6c/0xc0
    [  927.518018]  driver_attach+0x1e/0x20
    [  927.518021]  bus_add_driver+0x1f4/0x270
    [  927.518028]  ? rsi_sdio_ack_intr+0x50/0x50 [rsi_sdio]
    [  927.518031]  driver_register+0x60/0xe0
    [  927.518038]  ? rsi_sdio_ack_intr+0x50/0x50 [rsi_sdio]
    [  927.518041]  sdio_register_driver+0x20/0x30
    [  927.518047]  rsi_module_init+0x16/0x40 [rsi_sdio]
    Signed-off-by: default avatarSiva Rebbagondla <siva.rebbagondla@redpinesignals.com>
    Signed-off-by: default avatarAmitkumar Karwar <amit.karwar@redpinesignals.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Signed-off-by: default avatarSasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e7cb8f11
rsi_sdio.h 4.61 KB