Thanks @rich
tc@huis:~$ lsmod
Module Size Used by Not tainted
cifs 454656 2
cifs_md4 12288 1 cifs
netfs 36864 1 cifs
nls_ucs2_utils 8192 1 cifs
cpufreq_conservative 12288 0
cpufreq_userspace 12288 0
cpufreq_powersave 12288 0
ftdi_sio 36864 1
usbserial 20480 3 ftdi_sio
squashfs 36864 155
pcspkr 12288 0
8139too 20480 0
8139cp 20480 0
mii 12288 2 8139too,8139cp
loop 20480 310
So only usb_serilal.c and ftdi_sio.c are used
I checked diff between TC15 & TC17 on ftdi_sio.c as well. It does not show much suspect I think.
Only potential issue is mutex_lock/unlock around line 1441. But that's INserted to TC17, so "more save" and actually only to "get info" from the port so I do not expect that to get used during data_read.
I'm afraid a full kernel recompile is above my level.
SO... not sure how to navigate from here.
system is still running, hopefully a crash within 24hr and ability to see console messages.
I can fix my application by using non-blocking read but it would be good to find the kernel issue. As said... not sure how to navigate further.
$$ TC17 crash work % diff TC17_drivers_usb_serial/ftdi_sio.c TC15_drivers_usb_serial/ftdi_sio.c
631,632c631,634
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, FTDI_TIAO_UMPA_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, FTDI_NT_ORIONLXM_PID, 1) },
---
> { USB_DEVICE(FTDI_VID, FTDI_TIAO_UMPA_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, FTDI_NT_ORIONLXM_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
804,805d805
< { USB_DEVICE(FTDI_NDI_VID, FTDI_NDI_EMGUIDE_GEMINI_PID),
< .driver_info = (kernel_ulong_t)&ftdi_NDI_device_quirk },
843c843,844
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, CYBER_CORTEX_AV_PID, 1) },
---
> { USB_DEVICE(FTDI_VID, CYBER_CORTEX_AV_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
848,853c849,860
< { USB_DEVICE_INTERFACE_NUMBER(FIC_VID, FIC_NEO1973_DEBUG_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, FTDI_OOCDLINK_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, LMI_LM3S_DEVEL_BOARD_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, LMI_LM3S_EVAL_BOARD_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, LMI_LM3S_ICDI_BOARD_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, FTDI_TURTELIZER_PID, 1) },
---
> { USB_DEVICE(FIC_VID, FIC_NEO1973_DEBUG_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, FTDI_OOCDLINK_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, LMI_LM3S_DEVEL_BOARD_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, LMI_LM3S_EVAL_BOARD_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, LMI_LM3S_ICDI_BOARD_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, FTDI_TURTELIZER_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
895,896c902,905
< { USB_DEVICE_INTERFACE_NUMBER(ADI_VID, ADI_GNICE_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(ADI_VID, ADI_GNICEPLUS_PID, 1) },
---
> { USB_DEVICE(ADI_VID, ADI_GNICE_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(ADI_VID, ADI_GNICEPLUS_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
902c911,912
< { USB_DEVICE_INTERFACE_NUMBER(MARVELL_VID, MARVELL_SHEEVAPLUG_PID, 1) },
---
> { USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
925,926c935,938
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, MARVELL_OPENRD_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, TI_XDS100V2_PID, 1) },
---
> { USB_DEVICE(FTDI_VID, MARVELL_OPENRD_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, TI_XDS100V2_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
935,937c947,952
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, XVERVE_SIGNALYZER_ST_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, XVERVE_SIGNALYZER_SLITE_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, XVERVE_SIGNALYZER_SH2_PID, 1) },
---
> { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_ST_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_SLITE_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, XVERVE_SIGNALYZER_SH2_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
942c957,958
< { USB_DEVICE_INTERFACE_NUMBER(IONICS_VID, IONICS_PLUGCOMPUTER_PID, 1) },
---
> { USB_DEVICE(IONICS_VID, IONICS_PLUGCOMPUTER_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
957,958c973,976
< { USB_DEVICE_INTERFACE_NUMBER(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(ST_VID, ST_STMCLT_2232_PID, 1) },
---
> { USB_DEVICE(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(ST_VID, ST_STMCLT_2232_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
962c980,981
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, FTDI_DISTORTEC_JTAG_LOCK_PICK_PID, 1) },
---
> { USB_DEVICE(FTDI_VID, FTDI_DISTORTEC_JTAG_LOCK_PICK_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
1017,1019c1036,1038
< { USB_DEVICE(FTDI_VID, ACTISENSE_UID_PID) },
< { USB_DEVICE(FTDI_VID, ACTISENSE_USA_PID) },
< { USB_DEVICE(FTDI_VID, ACTISENSE_NGX_PID) },
---
> { USB_DEVICE(FTDI_VID, ACTISENSE_D9AC_PID) },
> { USB_DEVICE(FTDI_VID, ACTISENSE_D9AD_PID) },
> { USB_DEVICE(FTDI_VID, ACTISENSE_D9AE_PID) },
1037c1056,1057
< { USB_DEVICE_INTERFACE_NUMBER(TI_VID, TI_CC3200_LAUNCHPAD_PID, 1) },
---
> { USB_DEVICE(TI_VID, TI_CC3200_LAUNCHPAD_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
1055d1074
< { USB_DEVICE_INTERFACE_NUMBER(UBLOX_VID, UBLOX_EVK_M101_PID, 2) },
1057,1076c1076,1079
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, FTDI_FALCONIA_JTAG_BUF_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(FTDI_VID, FTDI_FALCONIA_JTAG_UNBUF_PID, 1) },
< /* GMC devices */
< { USB_DEVICE(GMC_VID, GMC_Z216C_PID) },
< /* Altera USB Blaster 3 */
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6022_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6025_PID, 2) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6026_PID, 2) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6026_PID, 3) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6029_PID, 2) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602A_PID, 2) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602A_PID, 3) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602C_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602D_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602D_PID, 2) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602E_PID, 1) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602E_PID, 2) },
< { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602E_PID, 3) },
< /* Abacus Electrics */
< { USB_DEVICE(FTDI_VID, ABACUS_OPTICAL_PROBE_PID) },
---
> { USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_BUF_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
> { USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_UNBUF_PID),
> .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
1441d1443
< mutex_lock(&priv->cfg_lock);
1445d1446
< mutex_unlock(&priv->cfg_lock);
1839c1840
< static int ftdi_gpio_set(struct gpio_chip *gc, unsigned int gpio, int value)
---
> static void ftdi_gpio_set(struct gpio_chip *gc, unsigned int gpio, int value)
1843d1843
< int result;
1852c1852
< result = ftdi_set_cbus_pins(port);
---
> ftdi_set_cbus_pins(port);
1855,1856d1854
<
< return result;
1874c1872
< static int ftdi_gpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
---
> static void ftdi_gpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
1879d1876
< int result;
1885c1882
< result = ftdi_set_cbus_pins(port);
---
> ftdi_set_cbus_pins(port);
1888,1889d1884
<
< return result;
2618c2613
< unsigned int cflag;
---
> unsigned int cflag = termios->c_cflag;
2876a2872
> .owner = THIS_MODULE,