lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200204160824.GA17320@roeck-us.net>
Date:   Tue, 4 Feb 2020 08:08:24 -0800
From:   Guenter Roeck <linux@...ck-us.net>
To:     Ansuel Smith <ansuelsmth@...il.com>
Cc:     Andy Gross <agross@...nel.org>,
        Bjorn Andersson <bjorn.andersson@...aro.org>,
        Wim Van Sebroeck <wim@...ux-watchdog.org>,
        Rob Herring <robh+dt@...nel.org>,
        Mark Rutland <mark.rutland@....com>,
        linux-arm-msm@...r.kernel.org, linux-watchdog@...r.kernel.org,
        devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/3] watchdog: qcom-wdt: add option to skip pretimeout

On Tue, Feb 04, 2020 at 04:21:01PM +0100, Ansuel Smith wrote:
> Some platform like ipq806x doesn't support pretimeout.
> As the driver check if there are available interrupts and ipq806x
> use msm-timer that require interrupts, the watchdog fail to probe
> as request_irq tries to use a ppi interrupt. Add an option to skip
> pretimeout setup and use the normal watchdog probe.
> 
> Signed-off-by: Ansuel Smith <ansuelsmth@...il.com>
> ---
>  drivers/watchdog/qcom-wdt.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/qcom-wdt.c b/drivers/watchdog/qcom-wdt.c
> index a494543d3ae1..e689e97e883e 100644
> --- a/drivers/watchdog/qcom-wdt.c
> +++ b/drivers/watchdog/qcom-wdt.c
> @@ -189,6 +189,7 @@ static int qcom_wdt_probe(struct platform_device *pdev)
>  	u32 percpu_offset;
>  	int irq, ret;
>  	struct clk *clk;
> +	bool nopretimeout;
>  
>  	regs = of_device_get_match_data(dev);
>  	if (!regs) {
> @@ -204,6 +205,8 @@ static int qcom_wdt_probe(struct platform_device *pdev)
>  	if (!res)
>  		return -ENOMEM;
>  
> +	nopretimeout = of_property_read_bool(np, "no-pretimeout");
> +
>  	/* We use CPU0's DGT for the watchdog */
>  	if (of_property_read_u32(np, "cpu-offset", &percpu_offset))
>  		percpu_offset = 0;
> @@ -247,7 +250,7 @@ static int qcom_wdt_probe(struct platform_device *pdev)
>  
>  	/* check if there is pretimeout support */
>  	irq = platform_get_irq(pdev, 0);
> -	if (irq > 0) {
> +	if (!nopretimeout && irq > 0) {

That is unnecessary; such platforms should simply not provide an interrupt.
Or, in other words, what is the point of assigning an interrupt to be used
for pretimeout if the platform doesn't support it ? And then to add yet
another attribute to tell the driver not to use it ?

Guenter

>  		ret = devm_request_irq(dev, irq, qcom_wdt_isr,
>  				       IRQF_TRIGGER_RISING,
>  				       "wdt_bark", &wdt->wdd);
> -- 
> 2.24.0
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ