Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2455743pxa; Fri, 7 Aug 2020 11:32:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwEdbX6P9RrlKx36j2QM07H6wh5ZaPfVfKtTtbxKU9lOCs8CC7vsqiFUoWoibajOHRwyYKX X-Received: by 2002:a17:906:c187:: with SMTP id g7mr11015670ejz.108.1596825138319; Fri, 07 Aug 2020 11:32:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596825138; cv=none; d=google.com; s=arc-20160816; b=E1PaLUzoTiP8PmQ0zYxEpj3tJeg26Uilw3oGAPMhP8mAAVtssLhckjcRcT5WEzz65j 3nwW+4pGAxdgIJlOrzRLleDzW+omiZUjiLN9TQ00Sq7MoX5+c/vmoERvi2QqRvTsNI4J Aj4RRjO1W5U5RtmxG0YbFRU8BLh8a5agCogbobfCXbU37kog1Cuvv5BqU7qAlrdrXJBm f9NHJwABWPYzipUHY4hroGPgX3WfSLgZ0a7CvBjqtu5EuQYDKGIuz7X+avhWKHAQKwrQ LDMdO5VU1+NqzxCOrvX2ajK4Acv+hkIozmxJX2JEvCdA/hBF8c3kcM6pO86gBcKOiDWZ AKbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:message-id:date :mime-version:subject:references:in-reply-to:cc:to:envelope-from :from:dkim-signature; bh=m/jDxnnqzj1sgkrZ03L56+2V0mkkC8zwbwVGLDh/z7o=; b=C1vRQNtO89q3+CkCdd98RwYGl3v0urujpwq8xSFYhOpjKCSe2FEESGfhuCfgFwMf17 x06xCgsrfQQGBkfrzFsB47uiaM+s3rizvksEq7lHj3t8FS7b5hObdO7qSuWnVu+1CfdQ 1g0i/Si18EsnloFSC5BkmKbkDz65UEXDBOxuAFhH8Lf/qi6yXrAkvCN8OivfcfKIHZpF mI98nKYyNjyDG+ymWOCfOmZtxjoo+0GHQzu4cWrN+X/PB+8BtPJNm9Elwi3SSH47E4dN lv54xsYClz/KvbX2r2nTu9FukxoMArNK8lj9mNdDyuuXZZeuYMWKWlfl4ybMTo1spPM6 1MIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@yandex.ru header.s=mail header.b=L6J98Lga; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ispras.ru Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z22si5867984ejl.459.2020.08.07.11.31.55; Fri, 07 Aug 2020 11:32:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@yandex.ru header.s=mail header.b=L6J98Lga; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ispras.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726305AbgHGSbE (ORCPT + 99 others); Fri, 7 Aug 2020 14:31:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725934AbgHGSbD (ORCPT ); Fri, 7 Aug 2020 14:31:03 -0400 Received: from forward500o.mail.yandex.net (forward500o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::610]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46F64C061756 for ; Fri, 7 Aug 2020 11:31:03 -0700 (PDT) Received: from mxback9g.mail.yandex.net (mxback9g.mail.yandex.net [IPv6:2a02:6b8:0:1472:2741:0:8b7:170]) by forward500o.mail.yandex.net (Yandex) with ESMTP id 71B4560083; Fri, 7 Aug 2020 21:30:59 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback9g.mail.yandex.net (mxback/Yandex) with ESMTP id Jr0i3gfLIB-Uwe4MD1j; Fri, 07 Aug 2020 21:30:58 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1596825058; bh=m/jDxnnqzj1sgkrZ03L56+2V0mkkC8zwbwVGLDh/z7o=; h=Message-Id:Cc:Subject:In-Reply-To:Date:References:To:From; b=L6J98Lga0onuM7EwUQje5yBnCw6f1Wi4gqdyGbZUYsQxzmYGEpqz5tnwydIbKkuye jGtPPZMVSJGaWH0Jq/HD1XqA7MLZrDhKanTuW6ZkcickFcS4Ixy2NtgIysNFWQx//Y 85TApdPLO/HjKg86qkR9ZsImLa2KgSlv9JwYRNqQ= Authentication-Results: mxback9g.mail.yandex.net; dkim=pass header.i=@yandex.ru Received: by sas1-28d87b1eb748.qloud-c.yandex.net with HTTP; Fri, 07 Aug 2020 21:30:58 +0300 From: Evgeny Novikov Envelope-From: eugenenovikov@yandex.ru To: Guenter Roeck , "madhuparnabhowmik10@gmail.com" Cc: "ldv-project@linuxtesting.org" , "f.fainelli@gmail.com" , "linux-watchdog@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "wim@linux-watchdog.org" In-Reply-To: <20200807162141.GA41980@roeck-us.net> References: <20200807112902.28764-1-madhuparnabhowmik10@gmail.com> <20200807162141.GA41980@roeck-us.net> Subject: Re: [ldv-project] [PATCH] drivers: watchdog: rdc321x_wdt: Fix race condition bugs MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Fri, 07 Aug 2020 21:30:58 +0300 Message-Id: <507311596824581@mail.yandex.ru> Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 07.08.2020, 19:21, "Guenter Roeck" : > On Fri, Aug 07, 2020 at 04:59:02PM +0530, madhuparnabhowmik10@gmail.com wrote: >>  From: Madhuparna Bhowmik >> >>  In rdc321x_wdt_probe(), rdc321x_wdt_device.queue is initialized >>  after misc_register(), hence if ioctl is called before its >>  initialization which can call rdc321x_wdt_start() function, >>  it will see an uninitialized value of rdc321x_wdt_device.queue, >>  hence initialize it before misc_register(). >>  Also, rdc321x_wdt_device.default_ticks is accessed in reset() >>  function called from write callback, thus initialize it before >>  misc_register(). >> >>  Found by Linux Driver Verification project (linuxtesting.org). >> >>  Signed-off-by: Madhuparna Bhowmik > > Reviewed-by: Guenter Roeck > > Having said that ... this is yet another potentially obsolete driver. > You are really wasting your (and, fwiw, my) time. Static analysis tools are not aware about obsolete drivers. It would be great if there will be some formal way to filter them out. Maybe some file will enumerate all obsolete drivers, or there will be something within their source code, or something else. -- Best regards, Evgeny Novikov > > Florian, any thoughts if support for this chip can/should be deprecated > or even removed ? > > Guenter > >>  --- >>   drivers/watchdog/rdc321x_wdt.c | 5 ++--- >>   1 file changed, 2 insertions(+), 3 deletions(-) >> >>  diff --git a/drivers/watchdog/rdc321x_wdt.c b/drivers/watchdog/rdc321x_wdt.c >>  index 57187efeb86f..f0c94ea51c3e 100644 >>  --- a/drivers/watchdog/rdc321x_wdt.c >>  +++ b/drivers/watchdog/rdc321x_wdt.c >>  @@ -231,6 +231,8 @@ static int rdc321x_wdt_probe(struct platform_device *pdev) >> >>           rdc321x_wdt_device.sb_pdev = pdata->sb_pdev; >>           rdc321x_wdt_device.base_reg = r->start; >>  + rdc321x_wdt_device.queue = 0; >>  + rdc321x_wdt_device.default_ticks = ticks; >> >>           err = misc_register(&rdc321x_wdt_misc); >>           if (err < 0) { >>  @@ -245,14 +247,11 @@ static int rdc321x_wdt_probe(struct platform_device *pdev) >>                                   rdc321x_wdt_device.base_reg, RDC_WDT_RST); >> >>           init_completion(&rdc321x_wdt_device.stop); >>  - rdc321x_wdt_device.queue = 0; >> >>           clear_bit(0, &rdc321x_wdt_device.inuse); >> >>           timer_setup(&rdc321x_wdt_device.timer, rdc321x_wdt_trigger, 0); >> >>  - rdc321x_wdt_device.default_ticks = ticks; >>  - >>           dev_info(&pdev->dev, "watchdog init success\n"); >> >>           return 0; >>  -- >>  2.17.1 > > _______________________________________________ > ldv-project mailing list > ldv-project@linuxtesting.org > http://linuxtesting.org/cgi-bin/mailman/listinfo/ldv-project