From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: "H. Nikolaus Schaller" <hns@goldelico.com>
Cc: Fabio Estevam <fabio.estevam@freescale.com>,
linux-input@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
Peter Ujfalusi <peter.ujfalusi@ti.com>,
kernel@pyra-handheld.com,
Discussions about the Letux Kernel <letux-kernel@openphoenux.org>
Subject: Re: [Letux-kernel] [PATCH 5/5] input: twl6040-vibra: remove mutex
Date: Wed, 20 Apr 2016 10:49:51 -0700 [thread overview]
Message-ID: <20160420174951.GB28831@dtor-ws> (raw)
In-Reply-To: <F2C0A9CB-843C-4A4D-92FD-CA1DBBF3EC41@goldelico.com>
On Wed, Apr 20, 2016 at 11:22:53AM +0200, H. Nikolaus Schaller wrote:
>
> > Am 19.04.2016 um 10:08 schrieb H. Nikolaus Schaller <hns@goldelico.com>:
> >
> >
> >> Am 19.04.2016 um 10:01 schrieb Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> >>
> >> On Tue, Apr 19, 2016 at 09:49:01AM +0200, H. Nikolaus Schaller wrote:
> >>>
> >>>> Am 18.04.2016 um 23:20 schrieb Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> >>>>
> >>>> On Mon, Apr 18, 2016 at 09:55:41PM +0200, H. Nikolaus Schaller wrote:
> >>>>> The mutex does not seem to be needed.
> >>>>
> >>>> twl6040_vibra_suspend() and vibra_play_work() may run concurrently, no?
> >>>
> >>> Hm. I don't know about the rule that would give an answer to this question...
> >>
> >> Sorry, that was actually a statement, not really a question.
> >
> > Indeed. In doubt about the answer we should take measures for the worst case.
> >
> >> It is
> >> possible (although very unlikely) that userspace posts play request and
> >> workqueue will not run until after suspend callback.
> >>
> >> Thinking about it some more I wonder if we better do what
> >> twl6040_vibra_close() does and cancel the work before shutting off the
> >> device, so that there is no chance of work executing after suspend
> >> callback and reenabling the device. This way we can indeed remove the
> >> mutex.
> >
> > Ok, I am fine with this.
> >
> > Will post an update ASAP.
>
> While doing testing I did run again into another locking related issue which I
> had not yet tried to address with my patch set. It is a:
>
> BUG: scheduling while atomic
>
> report which sometimes ends in a kernel panic.
>
> I have attached such a log. vibra.py is here:
>
> http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=Letux/root/vibra.py;hb=refs/heads/letux-4.6-rc4
>
> Basically it does an ioctl(EVIOCSFF) which triggers vibra_play.
>
> Maybe, can you decipher from the log what the reason could be?
>
> I only conjecture that it happens when vibra_play tries to read the regmap
> of the twl6040 to get twl6040_get_vibralr_status (which has no pendant
> in the twl4030 driver).
>
> Do we have to configure the twl6040 regmap differently?
Right, vibra_play is called with interrupts disabled (that's why we have
workqueue to enable/disable regulators, etc, when we start or stop
vibration), so twl6040_get_vibralr_status() should not sleep, but
apparently it does. Maybe the check for audio configuration should be
moved into vibra_play_work().
Thanks.
--
Dmitry
next prev parent reply other threads:[~2016-04-20 17:49 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-18 19:55 [PATCH 0/5] fixes for twl6040-vibra H. Nikolaus Schaller
2016-04-18 19:55 ` [PATCH 1/5] input: twl6040-vibra: fix DT node memory management H. Nikolaus Schaller
2016-04-18 21:22 ` Dmitry Torokhov
2016-04-19 7:43 ` H. Nikolaus Schaller
2016-04-19 17:06 ` Dmitry Torokhov
2016-04-20 9:03 ` H. Nikolaus Schaller
2016-05-08 6:49 ` [Kernel] " H. Nikolaus Schaller
2016-05-10 0:02 ` Dmitry Torokhov
2016-04-18 19:55 ` [PATCH 2/5] input: twl6040-vibra: add handler to unregister input if module is removed H. Nikolaus Schaller
2016-04-18 21:12 ` Dmitry Torokhov
2016-04-19 7:33 ` H. Nikolaus Schaller
2016-04-19 7:57 ` Dmitry Torokhov
2016-04-19 8:05 ` H. Nikolaus Schaller
2016-04-19 16:53 ` Dmitry Torokhov
2016-04-20 9:12 ` H. Nikolaus Schaller
2016-04-18 19:55 ` [PATCH 3/5] input: twl6040-vibra: fix NULL pointer dereference by removing workqueue H. Nikolaus Schaller
2016-04-18 21:47 ` Dmitry Torokhov
2016-04-18 19:55 ` [PATCH 4/5] input: twl6040-vibra: ignore return value of schedule_work H. Nikolaus Schaller
2016-04-18 21:47 ` Dmitry Torokhov
2016-04-18 19:55 ` [PATCH 5/5] input: twl6040-vibra: remove mutex H. Nikolaus Schaller
2016-04-18 21:20 ` Dmitry Torokhov
2016-04-19 7:49 ` H. Nikolaus Schaller
2016-04-19 8:01 ` Dmitry Torokhov
2016-04-19 8:08 ` H. Nikolaus Schaller
2016-04-20 9:22 ` [Letux-kernel] " H. Nikolaus Schaller
2016-04-20 9:22 ` H. Nikolaus Schaller
2016-04-20 17:49 ` Dmitry Torokhov [this message]
2016-04-20 18:10 ` H. Nikolaus Schaller
2016-04-20 18:15 ` Dmitry Torokhov
2016-04-20 19:00 ` H. Nikolaus Schaller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160420174951.GB28831@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=fabio.estevam@freescale.com \
--cc=hns@goldelico.com \
--cc=kernel@pyra-handheld.com \
--cc=letux-kernel@openphoenux.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peter.ujfalusi@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.