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: <CAFBinCCyhW+7=NEMh3knoNhXZMx6mLOtx9inZu6EmOURi6DDng@mail.gmail.com>
Date:   Wed, 15 Feb 2017 21:09:12 +0100
From:   Martin Blumenstingl <martin.blumenstingl@...glemail.com>
To:     Jerome Brunet <jbrunet@...libre.com>
Cc:     Philipp Zabel <p.zabel@...gutronix.de>,
        linux-kernel@...r.kernel.org, linux-amlogic@...ts.infradead.org
Subject: Re: [PATCH] reset: fix shared reset triggered_count decrement on error

Hi Jerome,

ouch, thanks for spotting and fixing this!

On Wed, Feb 15, 2017 at 7:15 PM, Jerome Brunet <jbrunet@...libre.com> wrote:
> For a shared reset, when the reset is successful, the triggered_count is
> incremented when trying to call the reset callback, so that another device
> sharing the same reset line won't trigger it again. If the reset has not
> been triggered successfully, the trigger_count should be decremented.
>
> The code does the opposite, and decrements the trigger_count on success.
> As a consequence, another device sharing the reset will be able to trigger
> it again.
>
> Fixed be removing negation in from of the error code of the reset function.
>
> Fixes: 7da33a37b48f ("reset: allow using reset_control_reset with shared reset")
>
> Signed-off-by: Jerome Brunet <jbrunet@...libre.com>
Acked-by: Martin Blumenstingl <martin.blumenstingl@...glemail.com>

should this still go into 4.10?
I guess the meson8b-usb2 PHY driver is the only user of the shared
reset pulse, but if there are other users out there then these may
face strange issues as well!

> ---
>  Hi Philipp,
>
>  I found this issue while testing your patch [0]
>  It fixes a regression we have been having with usb. On meson-gxbb
>  platforms, usb0 and usb1 share the same reset line. Martin had
>  reports that usb0 recently got broken. In fact usb1 was able to
>  trigger the reset again because the issue mentioned above.
>
> [0]: http://lkml.kernel.org/r/20170130114116.22089-10-p.zabel@pengutronix.de
>
>  drivers/reset/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/reset/core.c b/drivers/reset/core.c
> index 71ccf281dce3..f1e5e65388bb 100644
> --- a/drivers/reset/core.c
> +++ b/drivers/reset/core.c
> @@ -169,7 +169,7 @@ int reset_control_reset(struct reset_control *rstc)
>         }
>
>         ret = rstc->rcdev->ops->reset(rstc->rcdev, rstc->id);
> -       if (rstc->shared && !ret)
> +       if (rstc->shared && ret)
>                 atomic_dec(&rstc->triggered_count);
>
>         return ret;
> --
> 2.7.4
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ