lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 180/186] iwlwifi: mvm: Fix thermal zone registration
    Date
    From: Andrei Otcheretianski <andrei.otcheretianski@intel.com>

    [ Upstream commit baa6cf8450b72dcab11f37c47efce7c5b9b8ad0f ]

    Use a unique name when registering a thermal zone. Otherwise, with
    multiple NICS, we hit the following warning during the unregistration.

    WARNING: CPU: 2 PID: 3525 at fs/sysfs/group.c:255
    RIP: 0010:sysfs_remove_group+0x80/0x90
    Call Trace:
    dpm_sysfs_remove+0x57/0x60
    device_del+0x5a/0x350
    ? sscanf+0x4e/0x70
    device_unregister+0x1a/0x60
    hwmon_device_unregister+0x4a/0xa0
    thermal_remove_hwmon_sysfs+0x175/0x1d0
    thermal_zone_device_unregister+0x188/0x1e0
    iwl_mvm_thermal_exit+0xe7/0x100 [iwlmvm]
    iwl_op_mode_mvm_stop+0x27/0x180 [iwlmvm]
    _iwl_op_mode_stop.isra.3+0x2b/0x50 [iwlwifi]
    iwl_opmode_deregister+0x90/0xa0 [iwlwifi]
    __exit_compat+0x10/0x2c7 [iwlmvm]
    __x64_sys_delete_module+0x13f/0x270
    do_syscall_64+0x5a/0x110
    entry_SYSCALL_64_after_hwframe+0x44/0xa9

    Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
    index 1232f63278eb6..319103f4b432e 100644
    --- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c
    @@ -739,7 +739,8 @@ static struct thermal_zone_device_ops tzone_ops = {
    static void iwl_mvm_thermal_zone_register(struct iwl_mvm *mvm)
    {
    int i;
    - char name[] = "iwlwifi";
    + char name[16];
    + static atomic_t counter = ATOMIC_INIT(0);

    if (!iwl_mvm_is_tt_in_fw(mvm)) {
    mvm->tz_device.tzone = NULL;
    @@ -749,6 +750,7 @@ static void iwl_mvm_thermal_zone_register(struct iwl_mvm *mvm)

    BUILD_BUG_ON(ARRAY_SIZE(name) >= THERMAL_NAME_LENGTH);

    + sprintf(name, "iwlwifi_%u", atomic_inc_return(&counter) & 0xFF);
    mvm->tz_device.tzone = thermal_zone_device_register(name,
    IWL_MAX_DTS_TRIPS,
    IWL_WRITABLE_TRIPS_MSK,
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 17:47    [W:4.067 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site