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>] [day] [month] [year] [list]
Message-ID: <CAE_wzQ9iqOW6zrR8p3knhiPwf6YcdLXd5v=F28shNZwaXVfPZQ@mail.gmail.com>
Date:   Mon, 25 Mar 2019 11:30:24 -0700
From:   Dmitry Torokhov <dtor@...omium.org>
To:     hotwater438@...anota.com
Cc:     Hans de Goede <hdegoede@...hat.com>,
        Vladislav Dalechyn <vlad.dalechin@...il.com>,
        Benjamin Tissoires <benjamin.tissoires@...hat.com>,
        Jiri Kosina <jikos@...nel.org>,
        Kai Heng Feng <kai.heng.feng@...onical.com>,
        Swboyd <swboyd@...omium.org>, Bigeasy <bigeasy@...utronix.de>,
        "open list:HID CORE LAYER" <linux-input@...r.kernel.org>,
        lkml <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] ELAN touchpad i2c_hid bugs fix

On Mon, Mar 25, 2019 at 11:23 AM <hotwater438@...anota.com> wrote:
>
> Hi.
>
> Mar 25, 2019, 6:56 PM by dtor@...omium.org:
>
> If you want to keep on using edge you need to make sure that i2c-hid
> never loses edge, as replaying of previously disabled interrupts in
> not at all reliable. So you need to "kick" the device after
> enable_irq() by initiating read from it and be ready to not get any
> data or get valid data and process accordingly.
>
> I'm sorry, but how edge can be loosed? There is device ID and quirk's which are associated with that ID, and quirk will always trigger edge irq.

If edge arrives while interrupt is disabled and replay of the
interrupt does not work when it is reenabled (and I do not think it
ever works for GPIO, you can hunt for Thomas Gleixner emails to that
effect on LKML), then ISR in the driver will never be called, so
driver will never read from the device to reset the interrupt
condition and interrupt will never be reasserted again -> edge lost.

Thanks.

-- 
Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ