On Mon, Feb 20, 2017 at 06:06:58AM +0800, kernel test robot wrote: > Greetings, > > 0day kernel testing robot got the below dmesg and the first bad commit is > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > > commit cac513f1a9f7ace21d27665435f8fe7e39050396 > Author: Dmitry Torokhov > AuthorDate: Thu Feb 9 10:15:52 2017 -0800 > Commit: Greg Kroah-Hartman > CommitDate: Fri Feb 10 15:57:28 2017 +0100 > > auxdisplay: ht16k33: rework input device initialization > > This patch fixes following issues in input device (keypad) handling: > > - requesting IRQ before allocating and initializing parts of the device > that can be referenced from IRQ handler is racy, even if we try to > disable interrupt after requesting it. Let's move allocations around > so that everything is ready by the time we request IRQ. > > - using threaded interrupt handler to schedule a work item it sub-optimal. > Disabling and then re-enabling interrupts in work item and in open/close > methods is prone to races and exactly the reason theraded interrupts were > introduced. Let's use the infrastructure properly and keep scanning the > matrix array in IRQ thread, stopping when there are no keys, or when told > to do so. > > Signed-off-by: Dmitry Torokhov > Tested-by: Robin van der Gracht > Signed-off-by: Greg Kroah-Hartman > > cac513f1a9 auxdisplay: ht16k33: rework input device initialization > +--------------------------------------------------------------------+----+ > | | | > +--------------------------------------------------------------------+----+ > | boot_successes | 0 | > | boot_failures | 26 | > | BUG:KASAN:global-out-of-bounds_in__of_match_node_at_addr | 26 | > | BUG:KASAN:global-out-of-bounds_in__of_device_is_compatible_at_addr | 26 | > +--------------------------------------------------------------------+----+ > > [ 16.004589] OF: /testcase-data/phandle-tests/consumer-a: arguments longer than property > [ 16.008292] irq: no irq domain found for /testcase-data/interrupts/intc0 ! > [ 16.008292] irq: no irq domain found for /testcase-data/interrupts/intc0 ! > [ 16.011090] ================================================================== > [ 16.011090] ================================================================== > [ 16.014687] BUG: KASAN: global-out-of-bounds in __of_match_node+0xf9/0x100 at addr ffffffff82ea8cf8 > [ 16.014687] BUG: KASAN: global-out-of-bounds in __of_match_node+0xf9/0x100 at addr ffffffff82ea8cf8 > [ 16.018072] Read of size 1 by task swapper/1 > [ 16.018072] Read of size 1 by task swapper/1 > [ 16.019363] Address belongs to variable img_ascii_lcd_matches+0x258/0x8c0 > [ 16.019363] Address belongs to variable img_ascii_lcd_matches+0x258/0x8c0 Hmm, I am not sure what exactly happened, but I wonder if the patch below does not resolve this issue. Thanks. -- Dmitry auxdisplay: img-ascii-lcd: add missing sentinel entry in img_ascii_lcd_matches From: Dmitry Torokhov The OF device table must be terminated, otherwise we'll be walking past it and into areas unknown. Fixes: 0cad855fbd08 ("auxdisplay: img-ascii-lcd: driver for simple ASCII...") Cc: stable(a)vger.kernel.org Signed-off-by: Dmitry Torokhov --- drivers/auxdisplay/img-ascii-lcd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/auxdisplay/img-ascii-lcd.c b/drivers/auxdisplay/img-ascii-lcd.c index bf43b5d2aafc..83f1439e57fd 100644 --- a/drivers/auxdisplay/img-ascii-lcd.c +++ b/drivers/auxdisplay/img-ascii-lcd.c @@ -218,6 +218,7 @@ static const struct of_device_id img_ascii_lcd_matches[] = { { .compatible = "img,boston-lcd", .data = &boston_config }, { .compatible = "mti,malta-lcd", .data = &malta_config }, { .compatible = "mti,sead3-lcd", .data = &sead3_config }, + { /* sentinel */ } }; /**