1
0
Fork 0

MLK-24528 input: touch: synaptics_dsx: correct the irq handler definition

According to the define: typedef irqreturn_t (*irq_handler_t)(int, void *);
correct the two parameter definition of tpd_eint_handler.

If not, Android will get the following dump since Android set the CONFIG_CFI_CLANG

[   49.905828] ------------[ cut here ]------------                                                                                              [1088/49494]
[   49.910457] CFI failure (target: tpd_eint_handler+0x0/0x4 [synaptics_dsx_i2c]):
[   49.917785] WARNING: CPU: 0 PID: 0 at kernel/cfi.c:29 __ubsan_handle_cfi_check_fail+0x4c/0x54
[   49.926299] Modules linked in: vvcam(O) synaptics_dsx_i2c pcie8xxx mlan
[   49.932912] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W  O      5.4.47-00119-gfd9c870e583c #1
[   49.941948] Hardware name: NXP i.MX8MPlus EVK board (DT)
[   49.947252] pstate: 60400085 (nZCv daIf +PAN -UAO)
[   49.952036] pc : __ubsan_handle_cfi_check_fail+0x4c/0x54
[   49.957340] lr : __ubsan_handle_cfi_check_fail+0x4c/0x54
[   49.962642] sp : ffff800010003d80
[   49.965956] x29: ffff800010003d80 x28: ffff80001154e76c
[   49.971268] x27: ffff800012560140 x26: ffff000177c28c00
[   49.976572] x25: 0000000000000003 x24: ffff8000096fb394
[   49.981876] x23: 0000000000000059 x22: ffff8000096fb000
[   49.987180] x21: c6783f1d911d68d7 x20: ffff8000126a90c0
[   49.992483] x19: ffff8000096fb394 x18: ffff00017f338058
[   49.997787] x17: 0000000000000041 x16: ffff800011526a2c
[   50.003099] x15: ffff800011e308e7 x14: 0000000000000050
[   50.008403] x13: 0000000000003537 x12: 0000000000000000
[   50.013706] x11: 0000000000000000 x10: 00000000ffffffff
[   50.019010] x9 : 6320576a23b1fd00 x8 : 6320576a23b1fd00
[   50.024314] x7 : 735b203478302f30 x6 : ffff800012772273
[   50.029617] x5 : 0000000000000000 x4 : 0000000000000008
[   50.034921] x3 : ffff80001155978c x2 : fffffffffffffc04
[   50.040225] x1 : 0000000000000000 x0 : 0000000000000043
[   50.045529] Call trace:
[   50.047978]  __ubsan_handle_cfi_check_fail+0x4c/0x54
[   50.052940]  __cfi_check_fail+0x30/0x38 [synaptics_dsx_i2c]
[   50.058509]  __cfi_check+0x32c/0x358 [synaptics_dsx_i2c]
[   50.063817]  __handle_irq_event_percpu+0x330/0x37c
[   50.068600]  handle_irq_event+0x60/0xd8
[   50.072428]  handle_level_irq+0x178/0x2dc
[   50.076430]  generic_handle_irq+0x44/0x8c
[   50.080433]  mxc_gpio_irq_handler+0x68/0x10c
[   50.084695]  mx3_gpio_irq_handler+0xf8/0x200
[   50.088957]  __handle_domain_irq+0xa0/0x108
[   50.093132]  efi_header_end+0xb8/0x15c
[   50.096873]  el1_irq+0x104/0x200
[   50.100103]  cpuidle_enter_state+0x178/0x314
[   50.104365]  cpuidle_enter+0x38/0x50
[   50.107933]  do_idle.llvm.13790858479135427060+0x1a4/0x294
[   50.113410]  cpu_startup_entry+0x24/0x28
[   50.117327]  kernel_init+0x0/0x2ac
[   50.120723]  start_kernel+0x0/0x41c
[   50.124211]  start_kernel+0x3a4/0x41c
[   50.127865] ---[ end trace b7a14580e01cd817 ]---
[   50.136267] synaptics_rmi4_sensor_report: spontaneous reset detected
[   50.139705] imx2-wdt 30280000.watchdog: Device shutdown: Expect reboot!
[   50.149756] reboot: Restarting system with command 'bootloader'

Reported-by: Jindong Yue <jindong.yue@nxp.com>
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Fugang Duan <fugang.duan@nxp.com>
(cherry picked from commit 7bb33edcd620d9626a86df1ea0ecd132a47a9f89)
5.4-rM2-2.2.x-imx-squashed
Haibo Chen 2020-08-21 10:47:34 +08:00
parent 22c001c908
commit f236cbba16
1 changed files with 3 additions and 3 deletions

View File

@ -144,11 +144,11 @@ static struct synaptics_dsx_cap_button_map cap_button_map = {
};
#ifdef CONFIG_OF_TOUCH
unsigned int touch_irq;
int touch_irq;
#endif
#ifdef CONFIG_OF_TOUCH
static irqreturn_t tpd_eint_handler(unsigned int irq, struct irq_desc *desc);
static irqreturn_t tpd_eint_handler(int irq, void *desc);
#else
static void tpd_eint_handler(void);
#endif
@ -1567,7 +1567,7 @@ static void synaptics_rmi4_sensor_report(struct synaptics_rmi4_data *rmi4_data)
* is detected.
*/
#ifdef CONFIG_OF_TOUCH
static irqreturn_t tpd_eint_handler(unsigned int irq, struct irq_desc *desc)
static irqreturn_t tpd_eint_handler(int irq, void *desc)
{
disable_irq_nosync(touch_irq);