[PATCH v3 0/6] serial: imx: various improvements

2017-09-21 Thread Martyn Welch
During shutdown when a userspace service is disabled (which generates
an uart close), we got kernel crashes in the imx serial driver :

[ 1257.657423] Unhandled fault: external abort on non-linefetch (0x1008) at 
0xf0938000
[ 1257.665122] pgd = ecf2
[ 1257.667838] [f0938000] *pgd=de819811, *pte=53fc0653, *ppte=53fc0453
[ 1257.674179] Internal error: : 1008 [#1] SMP ARM
[ 1257.678722] Modules linked in:
[ 1257.681807] CPU: 0 PID: 3850 Comm: emerald_acq Not tainted 4.8.0 #10
[ 1257.688168] Hardware name: Freescale i.MX53 (Device Tree Support)
[ 1257.694269] task: e5c48000 task.stack: ed0b4000
[ 1257.698827] PC is at imx_rxint+0x5c/0x228
[ 1257.702859] LR is at lock_acquired+0x494/0x57c
[ 1257.707312] pc : [<80484884>]lr : [<80173aa0>]psr: 20070193
[ 1257.707312] sp : ed0b5c60  ip : ed0b5be8  fp : ed0b5c9c
[ 1257.718795] r10:   r9 :   r8 : 0004
[ 1257.724027] r7 : 0030  r6 : ee83e258  r5 :   r4 : ee09f410
[ 1257.730561] r3 : 0015c30c  r2 : f0938000  r1 : 0135  r0 : 40070193
[ 1257.737099] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment 
none
[ 1257.744327] Control: 10c5387d  Table: dcf20019  DAC: 0051
[ 1257.750080] Process emerald_acq (pid: 3850, stack limit = 0xed0b4210)
[ 1257.756527] Stack: (0xed0b5c60 to 0xed0b6000)
[ 1257.760898] 5c60: ed0b5cf4 40070193 80175f64 80faf384 e5c484c0 ee09f410 
7240 5099
[ 1257.769087] 5c80: 0030 0030 80e025c4  ed0b5cf4 ed0b5ca0 
80485b18 80484834
[ 1257.777275] 5ca0: 8012fe26   60070193 ee81b210 0001 
ed0b5cdc ed0b5cc8
[ 1257.785463] 5cc0: 80171d28 80171c3c 80e2d634 ee096740 ee81b200 ee81b210 
0001 0030
[ 1257.793651] 5ce0: 80e025c4  ed0b5d34 ed0b5cf8 80182f10 804857fc 
e5c484c0 0002
[ 1257.801839] 5d00: ee81b200 ed0b5d3c 60070193 ee81b200 ee81b200 ee81b210 
0001 ee81c400
[ 1257.810027] 5d20: 0001 0008 ed0b5d54 ed0b5d38 801832d8 80182ed0 
808f4b60 
[ 1257.818216] 5d40: ee81b200 ee81b260 ed0b5d74 ed0b5d58 8018335c 801832b8 
ee81b200 ee81b260
[ 1257.826404] 5d60: ee81b210 0001 ed0b5d94 ed0b5d78 80186ba0 80183320 
80debe8c 0030
[ 1257.834592] 5d80:  0001 ed0b5da4 ed0b5d98 80182420 80186af4 
ed0b5dcc ed0b5da8
[ 1257.842780] 5da0: 801827a0 801823fc  80e8350c 0020 0001 
ed0b5df8 0001
[ 1257.850968] 5dc0: ed0b5df4 ed0b5dd0 80101530 8018274c 808f4bec 20070013 
 ed0b5e2c
[ 1257.859156] 5de0: ee09f410 ed0b4000 ed0b5e5c ed0b5df8 808f55f0 801014c8 
0001 0130
[ 1257.867345] 5e00:  e5c48000 60070013 ee09f410  60070013 
ee09f410 ed06a640
[ 1257.875533] 5e20: 0008 ed0b5e5c ed0b5df0 ed0b5e48 801756a8 808f4bec 
20070013 
[ 1257.883722] 5e40: 0051 7f00 ee09f410 0b01 ed0b5e7c ed0b5e60 
80485d74 808f4bb4
[ 1257.891912] 5e60: ee83e258 ee09f410 ee83e3a4 80e2d634 ed0b5ea4 ed0b5e80 
8047f514 80485c70
[ 1257.900100] 5e80: ee83e258 ed375000 ee09f410 ee83e310 ee83e3ac ed06a640 
ed0b5ecc ed0b5ea8
[ 1257.908288] 5ea0: 80481304 8047f400 ed375000 eeabce60  ee7973e8 
 ed06a640
[ 1257.916477] 5ec0: ed0b5f14 ed0b5ed0 80462fe0 804811ac 0008 eeabce60 
0001 0001
[ 1257.924665] 5ee0:  802713dc ed0b5f54 ed06a640 eeabce60 ee2c6910 
ee7973e8 
[ 1257.932854] 5f00: eeabce60 0008 ed0b5f54 ed0b5f18 80271404 80462ee8 
 
[ 1257.941044] 5f20: ed06c640 ed06a648 ed0b5f4c e5c48400  80e84054 
e5c48440 e5c48000
[ 1257.949232] 5f40:   ed0b5f64 ed0b5f58 802715c4 80271378 
ed0b5f8c ed0b5f68
[ 1257.957420] 5f60: 80146034 802715b8  ed0b4000 ed0b5fb0 801086c4 
801086c4 ed0b4000
[ 1257.965610] 5f80: ed0b5fac ed0b5f90 8010cc68 80145f78 0054756c  
767474b4 0006
[ 1257.973798] 5fa0:  ed0b5fb0 80108548 8010cbc4  76f2a084 
0002 
[ 1257.981986] 5fc0: 0054756c  767474b4 0006 0225e880  
76f36000 7e836d34
[ 1257.990175] 5fe0:  7e836d10 76f2a4c0 76a5db68 80070010 0062 
 
[ 1257.998357] Backtrace: 
[ 1258.000837] [<80484828>] (imx_rxint) from [<80485b18>] (imx_int+0x328/0x474)
[ 1258.007892]  r10: r9:80e025c4 r8:0030 r7:0030 r6:5099 
r5:7240
[ 1258.015815]  r4:ee09f410
[ 1258.018386] [<804857f0>] (imx_int) from [<80182f10>] 
(__handle_irq_event_percpu+0x4c/0x3e8)
[ 1258.026742]  r10: r9:80e025c4 r8:0030 r7:0001 r6:ee81b210 
r5:ee81b200
[ 1258.034664]  r4:ee096740
[ 1258.037226] [<80182ec4>] (__handle_irq_event_percpu) from [<801832d8>] 
(handle_irq_event_percpu+0x2c/0x68)
[ 1258.046885]  r10:0008 r9:0001 r8:ee81c400 r7:0001 r6:ee81b210 
r5:ee81b200
[ 1258.054806]  r4:ee81b200
[ 1258.057369] [<801832ac>] (handle_irq_event_percpu) from [<8018335c>] 
(handle_irq_event+0x48/0x6c)
[ 1258.066246]  r5:ee81b260 r4:ee81b200
[ 1258.069866] [<80183314>] (handle_irq_event) from [<80186ba0>] 
(handle_level_irq+0xb8/0x154)
[ 1258.078222]  r7:0001 r6:ee81b210 r5:ee81b260 

[PATCH v3 0/6] serial: imx: various improvements

2017-09-21 Thread Martyn Welch
During shutdown when a userspace service is disabled (which generates
an uart close), we got kernel crashes in the imx serial driver :

[ 1257.657423] Unhandled fault: external abort on non-linefetch (0x1008) at 
0xf0938000
[ 1257.665122] pgd = ecf2
[ 1257.667838] [f0938000] *pgd=de819811, *pte=53fc0653, *ppte=53fc0453
[ 1257.674179] Internal error: : 1008 [#1] SMP ARM
[ 1257.678722] Modules linked in:
[ 1257.681807] CPU: 0 PID: 3850 Comm: emerald_acq Not tainted 4.8.0 #10
[ 1257.688168] Hardware name: Freescale i.MX53 (Device Tree Support)
[ 1257.694269] task: e5c48000 task.stack: ed0b4000
[ 1257.698827] PC is at imx_rxint+0x5c/0x228
[ 1257.702859] LR is at lock_acquired+0x494/0x57c
[ 1257.707312] pc : [<80484884>]lr : [<80173aa0>]psr: 20070193
[ 1257.707312] sp : ed0b5c60  ip : ed0b5be8  fp : ed0b5c9c
[ 1257.718795] r10:   r9 :   r8 : 0004
[ 1257.724027] r7 : 0030  r6 : ee83e258  r5 :   r4 : ee09f410
[ 1257.730561] r3 : 0015c30c  r2 : f0938000  r1 : 0135  r0 : 40070193
[ 1257.737099] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment 
none
[ 1257.744327] Control: 10c5387d  Table: dcf20019  DAC: 0051
[ 1257.750080] Process emerald_acq (pid: 3850, stack limit = 0xed0b4210)
[ 1257.756527] Stack: (0xed0b5c60 to 0xed0b6000)
[ 1257.760898] 5c60: ed0b5cf4 40070193 80175f64 80faf384 e5c484c0 ee09f410 
7240 5099
[ 1257.769087] 5c80: 0030 0030 80e025c4  ed0b5cf4 ed0b5ca0 
80485b18 80484834
[ 1257.777275] 5ca0: 8012fe26   60070193 ee81b210 0001 
ed0b5cdc ed0b5cc8
[ 1257.785463] 5cc0: 80171d28 80171c3c 80e2d634 ee096740 ee81b200 ee81b210 
0001 0030
[ 1257.793651] 5ce0: 80e025c4  ed0b5d34 ed0b5cf8 80182f10 804857fc 
e5c484c0 0002
[ 1257.801839] 5d00: ee81b200 ed0b5d3c 60070193 ee81b200 ee81b200 ee81b210 
0001 ee81c400
[ 1257.810027] 5d20: 0001 0008 ed0b5d54 ed0b5d38 801832d8 80182ed0 
808f4b60 
[ 1257.818216] 5d40: ee81b200 ee81b260 ed0b5d74 ed0b5d58 8018335c 801832b8 
ee81b200 ee81b260
[ 1257.826404] 5d60: ee81b210 0001 ed0b5d94 ed0b5d78 80186ba0 80183320 
80debe8c 0030
[ 1257.834592] 5d80:  0001 ed0b5da4 ed0b5d98 80182420 80186af4 
ed0b5dcc ed0b5da8
[ 1257.842780] 5da0: 801827a0 801823fc  80e8350c 0020 0001 
ed0b5df8 0001
[ 1257.850968] 5dc0: ed0b5df4 ed0b5dd0 80101530 8018274c 808f4bec 20070013 
 ed0b5e2c
[ 1257.859156] 5de0: ee09f410 ed0b4000 ed0b5e5c ed0b5df8 808f55f0 801014c8 
0001 0130
[ 1257.867345] 5e00:  e5c48000 60070013 ee09f410  60070013 
ee09f410 ed06a640
[ 1257.875533] 5e20: 0008 ed0b5e5c ed0b5df0 ed0b5e48 801756a8 808f4bec 
20070013 
[ 1257.883722] 5e40: 0051 7f00 ee09f410 0b01 ed0b5e7c ed0b5e60 
80485d74 808f4bb4
[ 1257.891912] 5e60: ee83e258 ee09f410 ee83e3a4 80e2d634 ed0b5ea4 ed0b5e80 
8047f514 80485c70
[ 1257.900100] 5e80: ee83e258 ed375000 ee09f410 ee83e310 ee83e3ac ed06a640 
ed0b5ecc ed0b5ea8
[ 1257.908288] 5ea0: 80481304 8047f400 ed375000 eeabce60  ee7973e8 
 ed06a640
[ 1257.916477] 5ec0: ed0b5f14 ed0b5ed0 80462fe0 804811ac 0008 eeabce60 
0001 0001
[ 1257.924665] 5ee0:  802713dc ed0b5f54 ed06a640 eeabce60 ee2c6910 
ee7973e8 
[ 1257.932854] 5f00: eeabce60 0008 ed0b5f54 ed0b5f18 80271404 80462ee8 
 
[ 1257.941044] 5f20: ed06c640 ed06a648 ed0b5f4c e5c48400  80e84054 
e5c48440 e5c48000
[ 1257.949232] 5f40:   ed0b5f64 ed0b5f58 802715c4 80271378 
ed0b5f8c ed0b5f68
[ 1257.957420] 5f60: 80146034 802715b8  ed0b4000 ed0b5fb0 801086c4 
801086c4 ed0b4000
[ 1257.965610] 5f80: ed0b5fac ed0b5f90 8010cc68 80145f78 0054756c  
767474b4 0006
[ 1257.973798] 5fa0:  ed0b5fb0 80108548 8010cbc4  76f2a084 
0002 
[ 1257.981986] 5fc0: 0054756c  767474b4 0006 0225e880  
76f36000 7e836d34
[ 1257.990175] 5fe0:  7e836d10 76f2a4c0 76a5db68 80070010 0062 
 
[ 1257.998357] Backtrace: 
[ 1258.000837] [<80484828>] (imx_rxint) from [<80485b18>] (imx_int+0x328/0x474)
[ 1258.007892]  r10: r9:80e025c4 r8:0030 r7:0030 r6:5099 
r5:7240
[ 1258.015815]  r4:ee09f410
[ 1258.018386] [<804857f0>] (imx_int) from [<80182f10>] 
(__handle_irq_event_percpu+0x4c/0x3e8)
[ 1258.026742]  r10: r9:80e025c4 r8:0030 r7:0001 r6:ee81b210 
r5:ee81b200
[ 1258.034664]  r4:ee096740
[ 1258.037226] [<80182ec4>] (__handle_irq_event_percpu) from [<801832d8>] 
(handle_irq_event_percpu+0x2c/0x68)
[ 1258.046885]  r10:0008 r9:0001 r8:ee81c400 r7:0001 r6:ee81b210 
r5:ee81b200
[ 1258.054806]  r4:ee81b200
[ 1258.057369] [<801832ac>] (handle_irq_event_percpu) from [<8018335c>] 
(handle_irq_event+0x48/0x6c)
[ 1258.066246]  r5:ee81b260 r4:ee81b200
[ 1258.069866] [<80183314>] (handle_irq_event) from [<80186ba0>] 
(handle_level_irq+0xb8/0x154)
[ 1258.078222]  r7:0001 r6:ee81b210 r5:ee81b260