Re: [PATCH v2 1/5] gnss: sirf: write data to gnss only when the gnss device is open

From: Andreas Kemnade
Date: Sun Jan 13 2019 - 15:51:24 EST


On Thu, 10 Jan 2019 13:02:28 +0100
Johan Hovold <johan@xxxxxxxxxx> 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@xxxxxxxxxxxx>
> > ---
> > 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: pgpwpcsiPnLsT.pgp
Description: OpenPGP digital signature