From: Andreas Kemnade <andreas@kemnade.info>
To: Johan Hovold <johan@kernel.org>
Cc: robh+dt@kernel.org, mark.rutland@arm.com,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Discussions about the Letux Kernel <letux-kernel@openphoenux.org>
Subject: Re: [PATCH v2 1/5] gnss: sirf: write data to gnss only when the gnss device is open
Date: Sun, 13 Jan 2019 21:50:36 +0100 [thread overview]
Message-ID: <20190113215036.11c543db@aktux> (raw)
In-Reply-To: <20190110120228.GB3430@localhost>
[-- Attachment #1: Type: text/plain, Size: 26453 bytes --]
On Thu, 10 Jan 2019 13:02:28 +0100
Johan Hovold <johan@kernel.org> wrote:
> On Sun, Dec 09, 2018 at 08:51:46PM +0100, Andreas Kemnade wrote:
> > The api forbids writing data there otherwise. Prepare for the
> > serdev_open()/close() being a part of runtime pm.
> >
> > Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> > ---
> > Changes in v2:
> > add locking
> >
> > drivers/gnss/sirf.c | 28 +++++++++++++++++++++++++++-
> > 1 file changed, 27 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gnss/sirf.c b/drivers/gnss/sirf.c
> > index 2c22836d3ffd..ba663de1db49 100644
> > --- a/drivers/gnss/sirf.c
> > +++ b/drivers/gnss/sirf.c
> > @@ -35,6 +35,12 @@ struct sirf_data {
> > struct gpio_desc *wakeup;
> > int irq;
> > bool active;
> > + /*
> > + * There might be races between returning data and closing the gnss
> > + * device.
> > + */
>
> Please drop this comment, which is too verbose. The mutex protects the
> opened flag, and that could be indicated using a new line above the
> mutex and below the flag, or using a short comment before the mutex.
>
> > + struct mutex gdev_mutex;
>
> Please rename "mutex". We should be able to reuse this for the serdev
> open count as well, right?
No. we cannot. The problem here is that we would take the same mutex
in a serdev callback and around a serdev call. Then we have things like
that:
[ 36.700408] ======================================================
[ 36.706970] WARNING: possible circular locking dependency detected
[ 36.713531] 5.0.0-rc1-00008-g29801984a0fa #1 Not tainted
[ 36.719177] ------------------------------------------------------
[ 36.725708] kworker/u2:1/16 is trying to acquire lock:
[ 36.731170] (ptrval) (&data->mutex){+.+.}, at: sirf_receive_buf+0x50/0x80 [g]
[ 36.739532]
[ 36.739532] but task is already holding lock:
[ 36.745727] (ptrval) (&buf->lock){+.+.}, at: flush_to_ldisc+0x1c/0xcc
[ 36.752593]
[ 36.752593] which lock already depends on the new lock.
[ 36.752593]
[ 36.761230]
[ 36.761230] the existing dependency chain (in reverse order) is:
[ 36.769165]
[ 36.769165] -> #3 (&buf->lock){+.+.}:
[ 36.774658] mutex_lock_nested+0x18/0x20
[ 36.779388] tty_buffer_flush+0x3c/0xb4
[ 36.783996] tty_ldisc_flush+0x1c/0x30
[ 36.788543] tty_port_close_start+0x17c/0x18c
[ 36.793731] tty_port_close+0x10/0x58
[ 36.798187] ttyport_close+0x40/0x58
[ 36.802581] sirf_set_active+0x1c4/0x2dc [gnss_sirf]
[ 36.808410] sirf_runtime_resume+0x54/0x58 [gnss_sirf]
[ 36.814422] __rpm_callback+0x30/0x194
[ 36.818969] rpm_callback+0x70/0x80
[ 36.823242] rpm_resume+0x58c/0x66c
[ 36.827514] __pm_runtime_resume+0x78/0x94
[ 36.832458] sirf_probe+0x170/0x278 [gnss_sirf]
[ 36.837799] serdev_drv_probe+0x28/0x44
[ 36.842437] really_probe+0x1f0/0x2c0
[ 36.846893] driver_probe_device+0x140/0x15c
[ 36.851989] __driver_attach+0x94/0xd0
[ 36.856536] bus_for_each_dev+0x64/0xa0
[ 36.861175] async_run_entry_fn+0x44/0xfc
[ 36.865997] process_one_work+0x384/0x710
[ 36.870819] worker_thread+0x290/0x3e4
[ 36.875366] kthread+0x13c/0x158
[ 36.879364] ret_from_fork+0x14/0x20
[ 36.883697] (null)
[ 36.886688]
[ 36.886688] -> #2 (&tty->ldisc_sem){++++}:
[ 36.892608] tty_ldisc_lock+0x50/0x74
[ 36.897094] tty_init_dev+0xc0/0x194
[ 36.901458] tty_open+0x308/0x334
[ 36.905517] chrdev_open+0x150/0x184
[ 36.909912] do_dentry_open+0x214/0x37c
[ 36.914520] path_openat+0xdf8/0xfe8
[ 36.918884] do_filp_open+0x3c/0x9c
[ 36.923156] do_sys_open+0xf4/0x1e4
[ 36.927429] kernel_init_freeable+0x370/0x4ac
[ 36.932617] kernel_init+0x8/0x10c
[ 36.936798] ret_from_fork+0x14/0x20
[ 36.941131] (null)
[ 36.944122]
[ 36.944122] -> #1 (&tty->legacy_mutex){+.+.}:
[ 36.950347] mutex_lock_nested+0x18/0x20
[ 36.955047] tty_init_dev+0x38/0x194
[ 36.959411] ttyport_open+0x28/0x140
[ 36.963775] serdev_device_open+0x28/0xa8
[ 36.968627] sirf_serdev_open.part.0+0x10/0x40 [gnss_sirf]
[ 36.975006] sirf_set_active+0x6c/0x2dc [gnss_sirf]
[ 36.980743] sirf_runtime_resume+0x54/0x58 [gnss_sirf]
[ 36.986755] __rpm_callback+0x30/0x194
[ 36.991302] rpm_callback+0x70/0x80
[ 36.995574] rpm_resume+0x58c/0x66c
[ 36.999847] __pm_runtime_resume+0x78/0x94
[ 37.004791] sirf_probe+0x170/0x278 [gnss_sirf]
[ 37.010131] serdev_drv_probe+0x28/0x44
[ 37.014770] really_probe+0x1f0/0x2c0
[ 37.019226] driver_probe_device+0x140/0x15c
[ 37.024322] __driver_attach+0x94/0xd0
[ 37.028869] bus_for_each_dev+0x64/0xa0
[ 37.033508] async_run_entry_fn+0x44/0xfc
[ 37.038330] process_one_work+0x384/0x710
[ 37.043151] worker_thread+0x290/0x3e4
[ 37.047698] kthread+0x13c/0x158
[ 37.051666] ret_from_fork+0x14/0x20
[ 37.056030] (null)
[ 37.058990]
[ 37.058990] -> #0 (&data->mutex){+.+.}:
[ 37.064666] __mutex_lock+0x74/0x9c0
[ 37.069030] mutex_lock_nested+0x18/0x20
[ 37.073760] sirf_receive_buf+0x50/0x80 [gnss_sirf]
[ 37.079498] ttyport_receive_buf+0x58/0xd0
[ 37.084411] flush_to_ldisc+0x94/0xcc
[ 37.088867] process_one_work+0x384/0x710
[ 37.093688] worker_thread+0x290/0x3e4
[ 37.098236] kthread+0x13c/0x158
[ 37.102203] ret_from_fork+0x14/0x20
[ 37.106567] (null)
[ 37.109527]
[ 37.109527] other info that might help us debug this:
[ 37.109527]
[ 37.118011] Chain exists of:
[ 37.118011] &data->mutex --> &tty->ldisc_sem --> &buf->lock
[ 37.118011]
[ 37.128723] Possible unsafe locking scenario:
[ 37.128723]
[ 37.134979] CPU0 CPU1
[ 37.139801] ---- ----
[ 37.144592] lock(&buf->lock);
[ 37.147949] lock(&tty->ldisc_sem);
[ 37.154418] lock(&buf->lock);
[ 37.160400] lock(&data->mutex);
[ 37.163940]
[ 37.163940] *** DEADLOCK ***
[ 37.163940]
[ 37.170227] 3 locks held by kworker/u2:1/16:
[ 37.174743] #0: (ptrval) ((wq_completion)"events_unbound"){+.+.}, at: proce0
[ 37.184356] #1: (ptrval) ((work_completion)(&buf->work)){+.+.}, at: process0
[ 37.193786] #2: (ptrval) (&buf->lock){+.+.}, at: flush_to_ldisc+0x1c/0xcc
[ 37.201110]
[ 37.201110] stack backtrace:
[ 37.205749] CPU: 0 PID: 16 Comm: kworker/u2:1 Not tainted 5.0.0-rc1-00008-g21
[ 37.214508] Hardware name: Generic OMAP36xx (Flattened Device Tree)
[ 37.221160] Workqueue: events_unbound flush_to_ldisc
[ 37.226501] [<c01109a4>] (unwind_backtrace) from [<c010c63c>] (show_stack+0x)
[ 37.234710] [<c010c63c>] (show_stack) from [<c0811670>] (dump_stack+0x90/0xc)
[ 37.242401] [<c0811670>] (dump_stack) from [<c01853e0>] (print_circular_bug.)
[ 37.252197] [<c01853e0>] (print_circular_bug.constprop.17) from [<c01879b0>])
[ 37.262451] [<c01879b0>] (__lock_acquire) from [<c0188e3c>] (lock_acquire+0x)
[ 37.270843] [<c0188e3c>] (lock_acquire) from [<c082afd0>] (__mutex_lock+0x74)
[ 37.278991] [<c082afd0>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 37.287506] [<c082b934>] (mutex_lock_nested) from [<bf0330d0>] (sirf_receive)
[ 37.297485] [<bf0330d0>] (sirf_receive_buf [gnss_sirf]) from [<c054c63c>] (t)
[ 37.307647] [<c054c63c>] (ttyport_receive_buf) from [<c0532260>] (flush_to_l)
[ 37.316497] [<c0532260>] (flush_to_ldisc) from [<c014ae08>] (process_one_wor)
[ 37.325286] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 37.333984] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 37.341827] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 37.349487] Exception stack(0xeea17fb0 to 0xeea17ff8)
[ 37.354858] 7fa0: 00000000 00000000 00000
[ 37.363525] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 37.372192] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
000000�[ 62.887756] random: crng init done
M_FCLK��00
DLES[ 248.800109] INFO: task kworker/u2:1:16 blocked for more than 120 sec.
[ 248.807495] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 248.814575] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 248.823333] kworker/u2:1 D 0 16 2 0x00000000
[ 248.831909] Workqueue: events_unbound flush_to_ldisc
[ 248.837310] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 248.844909] [<c0829ca4>] (schedule) from [<c082a0f0>] (schedule_preempt_disa)
[ 248.853912] [<c082a0f0>] (schedule_preempt_disabled) from [<c082b7d4>] (__mu)
[ 248.863433] [<c082b7d4>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 248.872070] [<c082b934>] (mutex_lock_nested) from [<bf0330d0>] (sirf_receive)
[ 248.882202] [<bf0330d0>] (sirf_receive_buf [gnss_sirf]) from [<c054c63c>] (t)
[ 248.892425] [<c054c63c>] (ttyport_receive_buf) from [<c0532260>] (flush_to_l)
[ 248.901428] [<c0532260>] (flush_to_ldisc) from [<c014ae08>] (process_one_wor)
[ 248.910308] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 248.919128] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 248.927032] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 248.934844] Exception stack(0xeea17fb0 to 0xeea17ff8)
[ 248.940368] 7fa0: 00000000 00000000 00000
[ 248.949188] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 248.957916] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 248.965118] INFO: task kworker/u2:2:35 blocked for more than 120 seconds.
[ 248.972473] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 248.978820] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 248.987091] kworker/u2:2 D 0 35 2 0x00000000
[ 248.993011] Workqueue: events_unbound async_run_entry_fn
[ 248.998809] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 249.006256] [<c0829ca4>] (schedule) from [<c082a0f0>] (schedule_preempt_disa)
[ 249.015167] [<c082a0f0>] (schedule_preempt_disabled) from [<c082b7d4>] (__mu)
[ 249.024658] [<c082b7d4>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 249.033264] [<c082b934>] (mutex_lock_nested) from [<c0532474>] (tty_buffer_f)
[ 249.042236] [<c0532474>] (tty_buffer_flush) from [<c0531478>] (tty_ldisc_flu)
[ 249.050994] [<c0531478>] (tty_ldisc_flush) from [<c0533060>] (tty_port_close)
[ 249.060333] [<c0533060>] (tty_port_close_start) from [<c0533080>] (tty_port_)
[ 249.069366] [<c0533080>] (tty_port_close) from [<c054c8d8>] (ttyport_close+0)
[ 249.077758] [<c054c8d8>] (ttyport_close) from [<bf033618>] (sirf_set_active+)
[ 249.087554] [<bf033618>] (sirf_set_active [gnss_sirf]) from [<bf033784>] (si)
[ 249.098785] [<bf033784>] (sirf_runtime_resume [gnss_sirf]) from [<c056d98c>])
[ 249.108947] [<c056d98c>] (__rpm_callback) from [<c056db60>] (rpm_callback+0x)
[ 249.117187] [<c056db60>] (rpm_callback) from [<c056d7e8>] (rpm_resume+0x58c/)
[ 249.125366] [<c056d7e8>] (rpm_resume) from [<c056d940>] (__pm_runtime_resume)
[ 249.133972] [<c056d940>] (__pm_runtime_resume) from [<bf0332cc>] (sirf_probe)
[ 249.143829] [<bf0332cc>] (sirf_probe [gnss_sirf]) from [<c054c1b4>] (serdev_)
[ 249.153228] [<c054c1b4>] (serdev_drv_probe) from [<c0562a60>] (really_probe+)
[ 249.161926] [<c0562a60>] (really_probe) from [<c0562dbc>] (driver_probe_devi)
[ 249.170867] [<c0562dbc>] (driver_probe_device) from [<c0562e6c>] (__driver_a)
[ 249.179931] [<c0562e6c>] (__driver_attach) from [<c056104c>] (bus_for_each_d)
[ 249.188659] [<c056104c>] (bus_for_each_dev) from [<c0154db4>] (async_run_ent)
[ 249.197692] [<c0154db4>] (async_run_entry_fn) from [<c014ae08>] (process_one)
[ 249.206939] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 249.215728] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 249.223663] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 249.231414] Exception stack(0xeea7ffb0 to 0xeea7fff8)
[ 249.236846] ffa0: 00000000 00000000 00000
[ 249.245635] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 249.254394] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 249.261566] INFO: task modprobe:1100 blocked for more than 120 seconds.
[ 249.268646] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 249.274963] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 249.283386] modprobe D 0 1100 1090 0x00000000
[ 249.289337] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 249.296874] [<c0829ca4>] (schedule) from [<c0155124>] (async_synchronize_coo)
[ 249.306488] [<c0155124>] (async_synchronize_cookie_domain) from [<c01d0148>])
[ 249.316619] [<c01d0148>] (do_init_module) from [<c01cedcc>] (load_module+0x1)
[ 249.325225] [<c01cedcc>] (load_module) from [<c01cf69c>] (sys_finit_module+0)
[ 249.333648] [<c01cf69c>] (sys_finit_module) from [<c0101000>] (ret_fast_sysc)
[ 249.342407] Exception stack(0xedc6bfa8 to 0xedc6bff0)
[ 249.347839] bfa0: 00497b00 004aabb0 00000004 00496e80 00000
[ 249.356628] bfc0: 00497b00 004aabb0 14840a00 0000017b 00040000 00000000 00000
[ 249.365386] bfe0: be9fea48 be9fea38 0048d6c3 b6f3aa42
[ 249.370849] INFO: lockdep is turned off.
[ 371.680145] INFO: task kworker/u2:1:16 blocked for more than 120 seconds.
[ 371.687530] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 371.694854] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 371.703643] kworker/u2:1 D 0 16 2 0x00000000
[ 371.712249] Workqueue: events_unbound flush_to_ldisc
[ 371.717620] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 371.725250] [<c0829ca4>] (schedule) from [<c082a0f0>] (schedule_preempt_disa)
[ 371.734252] [<c082a0f0>] (schedule_preempt_disabled) from [<c082b7d4>] (__mu)
[ 371.743743] [<c082b7d4>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 371.752349] [<c082b934>] (mutex_lock_nested) from [<bf0330d0>] (sirf_receive)
[ 371.762420] [<bf0330d0>] (sirf_receive_buf [gnss_sirf]) from [<c054c63c>] (t)
[ 371.772674] [<c054c63c>] (ttyport_receive_buf) from [<c0532260>] (flush_to_l)
[ 371.781616] [<c0532260>] (flush_to_ldisc) from [<c014ae08>] (process_one_wor)
[ 371.790496] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 371.799285] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 371.807159] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 371.814941] Exception stack(0xeea17fb0 to 0xeea17ff8)
[ 371.820434] 7fa0: 00000000 00000000 00000
[ 371.829193] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 371.837921] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 371.845062] INFO: task kworker/u2:2:35 blocked for more than 120 seconds.
[ 371.852416] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 371.858642] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 371.867065] kworker/u2:2 D 0 35 2 0x00000000
[ 371.873077] Workqueue: events_unbound async_run_entry_fn
[ 371.878814] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 371.886230] [<c0829ca4>] (schedule) from [<c082a0f0>] (schedule_preempt_disa)
[ 371.895141] [<c082a0f0>] (schedule_preempt_disabled) from [<c082b7d4>] (__mu)
[ 371.904693] [<c082b7d4>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 371.913299] [<c082b934>] (mutex_lock_nested) from [<c0532474>] (tty_buffer_f)
[ 371.922271] [<c0532474>] (tty_buffer_flush) from [<c0531478>] (tty_ldisc_flu)
[ 371.931091] [<c0531478>] (tty_ldisc_flush) from [<c0533060>] (tty_port_close)
[ 371.940429] [<c0533060>] (tty_port_close_start) from [<c0533080>] (tty_port_)
[ 371.949523] [<c0533080>] (tty_port_close) from [<c054c8d8>] (ttyport_close+0)
[ 371.957946] [<c054c8d8>] (ttyport_close) from [<bf033618>] (sirf_set_active+)
[ 371.967773] [<bf033618>] (sirf_set_active [gnss_sirf]) from [<bf033784>] (si)
[ 371.979064] [<bf033784>] (sirf_runtime_resume [gnss_sirf]) from [<c056d98c>])
[ 371.989257] [<c056d98c>] (__rpm_callback) from [<c056db60>] (rpm_callback+0x)
[ 371.997589] [<c056db60>] (rpm_callback) from [<c056d7e8>] (rpm_resume+0x58c/)
[ 372.005737] [<c056d7e8>] (rpm_resume) from [<c056d940>] (__pm_runtime_resume)
[ 372.014373] [<c056d940>] (__pm_runtime_resume) from [<bf0332cc>] (sirf_probe)
[ 372.024291] [<bf0332cc>] (sirf_probe [gnss_sirf]) from [<c054c1b4>] (serdev_)
[ 372.033752] [<c054c1b4>] (serdev_drv_probe) from [<c0562a60>] (really_probe+)
[ 372.042480] [<c0562a60>] (really_probe) from [<c0562dbc>] (driver_probe_devi)
[ 372.051452] [<c0562dbc>] (driver_probe_device) from [<c0562e6c>] (__driver_a)
[ 372.060516] [<c0562e6c>] (__driver_attach) from [<c056104c>] (bus_for_each_d)
[ 372.069335] [<c056104c>] (bus_for_each_dev) from [<c0154db4>] (async_run_ent)
[ 372.078369] [<c0154db4>] (async_run_entry_fn) from [<c014ae08>] (process_one)
[ 372.087615] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 372.096405] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 372.104370] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 372.112152] Exception stack(0xeea7ffb0 to 0xeea7fff8)
[ 372.117645] ffa0: 00000000 00000000 00000
[ 372.126434] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 372.135223] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 372.142395] INFO: task modprobe:1100 blocked for more than 120 seconds.
[ 372.149566] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 372.155853] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 372.164276] modprobe D 0 1100 1090 0x00000000
[ 372.170257] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 372.177825] [<c0829ca4>] (schedule) from [<c0155124>] (async_synchronize_coo)
[ 372.187469] [<c0155124>] (async_synchronize_cookie_domain) from [<c01d0148>])
[ 372.197631] [<c01d0148>] (do_init_module) from [<c01cedcc>] (load_module+0x1)
[ 372.206237] [<c01cedcc>] (load_module) from [<c01cf69c>] (sys_finit_module+0)
[ 372.214660] [<c01cf69c>] (sys_finit_module) from [<c0101000>] (ret_fast_sysc)
[ 372.223449] Exception stack(0xedc6bfa8 to 0xedc6bff0)
[ 372.229003] bfa0: 00497b00 004aabb0 00000004 00496e80 00000
[ 372.237701] bfc0: 00497b00 004aabb0 14840a00 0000017b 00040000 00000000 00000
[ 372.246490] bfe0: be9fea48 be9fea38 0048d6c3 b6f3aa42
[ 372.251983] INFO: lockdep is turned off.
[ 494.560119] INFO: task kworker/u2:1:16 blocked for more than 120 seconds.
[ 494.567535] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 494.574859] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 494.583618] kworker/u2:1 D 0 16 2 0x00000000
[ 494.592224] Workqueue: events_unbound flush_to_ldisc
[ 494.597625] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 494.605255] [<c0829ca4>] (schedule) from [<c082a0f0>] (schedule_preempt_disa)
[ 494.614227] [<c082a0f0>] (schedule_preempt_disabled) from [<c082b7d4>] (__mu)
[ 494.623718] [<c082b7d4>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 494.632324] [<c082b934>] (mutex_lock_nested) from [<bf0330d0>] (sirf_receive)
[ 494.642395] [<bf0330d0>] (sirf_receive_buf [gnss_sirf]) from [<c054c63c>] (t)
[ 494.652618] [<c054c63c>] (ttyport_receive_buf) from [<c0532260>] (flush_to_l)
[ 494.661621] [<c0532260>] (flush_to_ldisc) from [<c014ae08>] (process_one_wor)
[ 494.670471] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 494.679260] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 494.687133] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 494.694915] Exception stack(0xeea17fb0 to 0xeea17ff8)
[ 494.700439] 7fa0: 00000000 00000000 00000
[ 494.709228] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 494.717956] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 494.725097] INFO: task kworker/u2:2:35 blocked for more than 120 seconds.
[ 494.732391] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 494.738647] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 494.747039] kworker/u2:2 D 0 35 2 0x00000000
[ 494.753021] Workqueue: events_unbound async_run_entry_fn
[ 494.758819] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 494.766265] [<c0829ca4>] (schedule) from [<c082a0f0>] (schedule_preempt_disa)
[ 494.775177] [<c082a0f0>] (schedule_preempt_disabled) from [<c082b7d4>] (__mu)
[ 494.784698] [<c082b7d4>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 494.793304] [<c082b934>] (mutex_lock_nested) from [<c0532474>] (tty_buffer_f)
[ 494.802276] [<c0532474>] (tty_buffer_flush) from [<c0531478>] (tty_ldisc_flu)
[ 494.811065] [<c0531478>] (tty_ldisc_flush) from [<c0533060>] (tty_port_close)
[ 494.820373] [<c0533060>] (tty_port_close_start) from [<c0533080>] (tty_port_)
[ 494.829437] [<c0533080>] (tty_port_close) from [<c054c8d8>] (ttyport_close+0)
[ 494.837799] [<c054c8d8>] (ttyport_close) from [<bf033618>] (sirf_set_active+)
[ 494.847595] [<bf033618>] (sirf_set_active [gnss_sirf]) from [<bf033784>] (si)
[ 494.858825] [<bf033784>] (sirf_runtime_resume [gnss_sirf]) from [<c056d98c>])
[ 494.869018] [<c056d98c>] (__rpm_callback) from [<c056db60>] (rpm_callback+0x)
[ 494.877288] [<c056db60>] (rpm_callback) from [<c056d7e8>] (rpm_resume+0x58c/)
[ 494.885437] [<c056d7e8>] (rpm_resume) from [<c056d940>] (__pm_runtime_resume)
[ 494.894073] [<c056d940>] (__pm_runtime_resume) from [<bf0332cc>] (sirf_probe)
[ 494.903961] [<bf0332cc>] (sirf_probe [gnss_sirf]) from [<c054c1b4>] (serdev_)
[ 494.913391] [<c054c1b4>] (serdev_drv_probe) from [<c0562a60>] (really_probe+)
[ 494.922119] [<c0562a60>] (really_probe) from [<c0562dbc>] (driver_probe_devi)
[ 494.931121] [<c0562dbc>] (driver_probe_device) from [<c0562e6c>] (__driver_a)
[ 494.940185] [<c0562e6c>] (__driver_attach) from [<c056104c>] (bus_for_each_d)
[ 494.948974] [<c056104c>] (bus_for_each_dev) from [<c0154db4>] (async_run_ent)
[ 494.958007] [<c0154db4>] (async_run_entry_fn) from [<c014ae08>] (process_one)
[ 494.967254] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 494.976104] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 494.984069] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 494.991851] Exception stack(0xeea7ffb0 to 0xeea7fff8)
[ 494.997314] ffa0: 00000000 00000000 00000
[ 495.006134] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 495.014892] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 495.022064] INFO: task modprobe:1100 blocked for more than 120 seconds.
[ 495.029174] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 495.035430] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 495.043853] modprobe D 0 1100 1090 0x00000000
[ 495.049835] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 495.057342] [<c0829ca4>] (schedule) from [<c0155124>] (async_synchronize_coo)
[ 495.066955] [<c0155124>] (async_synchronize_cookie_domain) from [<c01d0148>])
[ 495.077117] [<c01d0148>] (do_init_module) from [<c01cedcc>] (load_module+0x1)
[ 495.085693] [<c01cedcc>] (load_module) from [<c01cf69c>] (sys_finit_module+0)
[ 495.094116] [<c01cf69c>] (sys_finit_module) from [<c0101000>] (ret_fast_sysc)
[ 495.102874] Exception stack(0xedc6bfa8 to 0xedc6bff0)
[ 495.108306] bfa0: 00497b00 004aabb0 00000004 00496e80 00000
[ 495.117095] bfc0: 00497b00 004aabb0 14840a00 0000017b 00040000 00000000 00000
[ 495.125885] bfe0: be9fea48 be9fea38 0048d6c3 b6f3aa42
[ 495.131378] INFO: lockdep is turned off.
[ 617.440093] INFO: task kworker/u2:1:16 blocked for more than 120 seconds.
[ 617.447479] Not tainted 5.0.0-rc1-00008-g29801984a0fa #1
[ 617.454589] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this.
[ 617.463348] kworker/u2:1 D 0 16 2 0x00000000
[ 617.471923] Workqueue: events_unbound flush_to_ldisc
[ 617.477325] [<c0829b1c>] (__schedule) from [<c0829ca4>] (schedule+0x98/0xb0)
[ 617.484954] [<c0829ca4>] (schedule) from [<c082a0f0>] (schedule_preempt_disa)
[ 617.493927] [<c082a0f0>] (schedule_preempt_disabled) from [<c082b7d4>] (__mu)
[ 617.503448] [<c082b7d4>] (__mutex_lock) from [<c082b934>] (mutex_lock_nested)
[ 617.512054] [<c082b934>] (mutex_lock_nested) from [<bf0330d0>] (sirf_receive)
[ 617.522155] [<bf0330d0>] (sirf_receive_buf [gnss_sirf]) from [<c054c63c>] (t)
[ 617.532409] [<c054c63c>] (ttyport_receive_buf) from [<c0532260>] (flush_to_l)
[ 617.541381] [<c0532260>] (flush_to_ldisc) from [<c014ae08>] (process_one_wor)
[ 617.550262] [<c014ae08>] (process_one_work) from [<c014c300>] (worker_thread)
[ 617.559020] [<c014c300>] (worker_thread) from [<c01515f0>] (kthread+0x13c/0x)
[ 617.566925] [<c01515f0>] (kthread) from [<c01010b4>] (ret_from_fork+0x14/0x2)
[ 617.574707] Exception stack(0xeea17fb0 to 0xeea17ff8)
[ 617.580230] 7fa0: 00000000 00000000 00000
[ 617.588989] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000
[ 617.597686] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 617.604858] INFO: lockdep is turned off.
Regards,
Andreas
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-01-13 20:50 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-09 19:51 [PATCH v2 0/5] gnss: sirf: add support for w2sg0004 + lna Andreas Kemnade
2018-12-09 19:51 ` [PATCH v2 1/5] gnss: sirf: write data to gnss only when the gnss device is open Andreas Kemnade
2019-01-10 12:02 ` Johan Hovold
2019-01-13 20:50 ` Andreas Kemnade [this message]
2019-01-14 12:00 ` Johan Hovold
2018-12-09 19:51 ` [PATCH v2 2/5] gnss: sirf: power on logic for devices without wakeup signal Andreas Kemnade
2019-01-10 12:10 ` Johan Hovold
2019-01-10 22:02 ` Andreas Kemnade
2019-01-14 10:51 ` Johan Hovold
2019-01-14 12:13 ` Andreas Kemnade
2019-01-22 8:38 ` Johan Hovold
2019-01-14 21:58 ` Andreas Kemnade
2019-01-15 9:08 ` Johan Hovold
2018-12-09 19:51 ` [PATCH v2 3/5] dt-bindings: gnss: add w2sg0004 compatible string Andreas Kemnade
2019-01-10 12:12 ` Johan Hovold
2018-12-09 19:51 ` [PATCH v2 4/5] gnss: sirf: add a separate supply for a lna Andreas Kemnade
2018-12-10 7:42 ` [Letux-kernel] " H. Nikolaus Schaller
2019-01-10 12:25 ` Johan Hovold
2018-12-09 19:51 ` [PATCH v2 5/5] dt-bindings: gnss: add lna-supply property Andreas Kemnade
2019-01-10 12:27 ` Johan Hovold
2019-01-10 17:07 ` Andreas Kemnade
2019-01-14 9:15 ` Johan Hovold
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=20190113215036.11c543db@aktux \
--to=andreas@kemnade.info \
--cc=devicetree@vger.kernel.org \
--cc=johan@kernel.org \
--cc=letux-kernel@openphoenux.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=robh+dt@kernel.org \
/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.