Received: by 2002:a05:6a10:83d0:0:0:0:0 with SMTP id o16csp76654pxh; Thu, 7 Apr 2022 14:29:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJygOM/z55s/UuP3u9cVanx/1AtSiOd3RCq2dreqal72Y3gyhN53M2+f7zjy2c2UtG1VRjuB X-Received: by 2002:a17:902:f708:b0:153:839f:bf2c with SMTP id h8-20020a170902f70800b00153839fbf2cmr16260516plo.113.1649366993508; Thu, 07 Apr 2022 14:29:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649366993; cv=none; d=google.com; s=arc-20160816; b=hVF3g5fZjR6jsNAPvrH2gdhZX5SkbRcsY+R5xxmkuy1bcy/3Z8w3Q0ssOuIaTMEH1a I1qG4KEgPMCN9I18lFpqT4PMojPImmcgL3TNPRnLYsYTCnZ8pNBxxWOgPzJYmB1XEO3J l3y0oRaN79wsKcL4yZRfXwcfqza2nBaCamTAW46NNOuE2MM89eK9bcGrOnar73E6miGo qcSLnI8Rm8Cq3XSSVQ1NzoVx4UliYI748IbT0HBz2Z1j2a2/ZGmxz30VNAaasF+1XNNt 2v+Q6UA5JGpJnM0xOpNxx0I122XQ5yoIHm2LXF2DryrmQn5sP23U8bsAgA0f2DPKkfP6 cfRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:sender:dkim-signature; bh=GL024EHLCvS8dnozzMQ56WfmDimIW5TcE1qTTBNk/s8=; b=XhXsQ108jizy/B+Dmea3Pzs/hrhMXiIGdxyQhgHZrbbp2y/ob2YRI4AOX8ixDLTYdy NJP8wA72tyywkd2QOUgTn04UP1sJ2t5dIcLrXtn6JaVNcOMMI/ZNCjL66hZo8RMrPVNp LFJjcfpP1X+jtS+/iyUakEjwm86D9KTvpE2sqHEJcD6HTE+m6d6qG1krY9uSaO7GG1J3 4nROmA2GCOByTnaePe0TLBbCXlYo/7wo8uGX4MbQ7dhuNKytjwdhyg4fsaif4CnY3WIx kfNbrZCx/5t/FFs6KYvDNvMX/3dZvuHzQ5xmVZjHxal60foCGjOxPuN9YrXGNQ3gBgNV D/ow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=hd7GyslZ; spf=softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id h9-20020a170902f54900b00156b0e48198si862938plf.373.2022.04.07.14.29.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Apr 2022 14:29:53 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=hd7GyslZ; spf=softfail (google.com: domain of transitioning linux-wireless-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id F25C22B527A; Thu, 7 Apr 2022 13:35:14 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230117AbiDGUhA (ORCPT + 69 others); Thu, 7 Apr 2022 16:37:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229926AbiDGUge (ORCPT ); Thu, 7 Apr 2022 16:36:34 -0400 Received: from mail-oa1-x36.google.com (mail-oa1-x36.google.com [IPv6:2001:4860:4864:20::36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A836E3504BF; Thu, 7 Apr 2022 13:22:37 -0700 (PDT) Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-deb9295679so7632492fac.6; Thu, 07 Apr 2022 13:22:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=GL024EHLCvS8dnozzMQ56WfmDimIW5TcE1qTTBNk/s8=; b=hd7GyslZBarUC+ukRuDQjCfp1ExoxfztGgafhX3UBGvCrzBTClTw+qUO2W0kWc2E97 vOJh2HglV2VQ8i4PnY7Zy3zoHXvetLiBDNbQmUJCIPxvpLg2sqh5MhCIUzUIlmHWPhWQ 3sXDcZblEmtmPWl8OTVELDuSTt5yh8ut2MI0bKVTWspyVliE4M8MWfQVMgDUWehf9/tL zpFK9W1FcmGv4U0Hw/DlL7FBBMpYjS7BocGaVZ3LjgsVZVG/34EJEHjahQ7hJgQQQ6pu 4E4jPRlg1+jmecqgiUT+jUBk1ldUYwxRtNpjAlKudrKm6WEY4mQaMiRG7lJrYewq8bH0 7YAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:message-id:date:mime-version:user-agent :subject:content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=GL024EHLCvS8dnozzMQ56WfmDimIW5TcE1qTTBNk/s8=; b=NoedYNQ0hWOJF4u4Z3KRp2cq/KXzmtRyIB2pSpEOnmL59cj2RUbepVmulgY/1DFezg xqkZYxY0CFdzPMU+8Qu7AWfBNJyXDQGuKNpbnFhHiRKCQO/OYWlPNWAqbFrxxiDDuFR/ lE7nZ0YGLJQ4W7n9sSJAHmuAOBDbpAXOs0gK9l9bB6/SbYkOQeOCDmzHq6djdgjkwlni g9hvKDiQcWiPKa8UWxMIpet2yZNj8Z/0xbidumC0owZrpmv/vqkq10Y/uQlC4ieH8Fu6 NsofH0zVRRUtMsU0mnIlCc94qJm+bfpauVXWNkOxACL0i03ySIftjItdbFt6gZTYiExb p7ig== X-Gm-Message-State: AOAM533Am0cyeGF1sa/T0hdBQh6FaXxi7AjwbD8qcm6QCAB1+8T+I4My hGE9zqGp0HzxNv2LYKpf+BQGCzawRjc= X-Received: by 2002:a05:6871:29a:b0:e2:639f:6dfa with SMTP id i26-20020a056871029a00b000e2639f6dfamr2761659oae.234.1649361029344; Thu, 07 Apr 2022 12:50:29 -0700 (PDT) Received: from ?IPV6:2600:1700:e321:62f0:329c:23ff:fee3:9d7c? ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id v33-20020a056870b52100b000e1efaa5fecsm5579373oap.19.2022.04.07.12.50.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 07 Apr 2022 12:50:28 -0700 (PDT) Sender: Guenter Roeck Message-ID: <5b361192-6fd4-e84d-d6fc-e552a473c23e@roeck-us.net> Date: Thu, 7 Apr 2022 12:50:25 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [RFC PATCH] iwlwifi: iwl-dbg: Use del_timer_sync() before freeing Content-Language: en-US To: Luca Coelho Cc: Kalle Valo , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Steven Rostedt , Johannes Berg References: <20220406153410.1899768-1-linux@roeck-us.net> From: Guenter Roeck In-Reply-To: <20220406153410.1899768-1-linux@roeck-us.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Hi, On 4/6/22 08:34, Guenter Roeck wrote: > In Chrome OS, a large number of crashes is observed due to corrupted timer > lists. Steven Rostedt pointed out that this usually happens when a timer > is freed while still active, and that the problem is often triggered > by code calling del_timer() instead of del_timer_sync() just before > freeing. > > Steven also identified the iwlwifi driver as one of the possible culprits > since it does exactly that. > > Reported-by: Steven Rostedt > Cc: Steven Rostedt > Cc: Shahar S Matityahu > Cc: Johannes Berg > Fixes: 60e8abd9d3e91 ("iwlwifi: dbg_ini: add periodic trigger new API support") > Signed-off-by: Guenter Roeck > --- > RFC: > Maybe there was a reason to use del_timer() instead of del_timer_sync(). > Also, I am not sure if the change is sufficient since I don't see any > obvious locking that would prevent timers from being added and then > modified in iwl_dbg_tlv_set_periodic_trigs() while being removed in > iwl_dbg_tlv_del_timers(). > I prepared a new version of this patch, introducing a mutex to protect changes to periodic_trig_list. I'd like to get some feedback before sending it out, though, so I'll wait until next week before sending it. If you have any feedback/thoughts/comments, please let me know. Thanks, Guenter > drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c > index 866a33f49915..3237d4b528b5 100644 > --- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c > +++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c > @@ -371,7 +371,7 @@ void iwl_dbg_tlv_del_timers(struct iwl_trans *trans) > struct iwl_dbg_tlv_timer_node *node, *tmp; > > list_for_each_entry_safe(node, tmp, timer_list, list) { > - del_timer(&node->timer); > + del_timer_sync(&node->timer); > list_del(&node->list); > kfree(node); > }