diff --git a/arch/lkl/kernel/irq.c b/arch/lkl/kernel/irq.c index 16f0e390c0a9ac..fb579c789b0bda 100644 --- a/arch/lkl/kernel/irq.c +++ b/arch/lkl/kernel/irq.c @@ -38,17 +38,22 @@ int lkl_trigger_irq(int irq) static void run_irqs(void) { - int i; + int i = 1; unsigned long status; + if (!irq_status) + return; + status = TEST_AND_CLEAR_IRQ_STATUS(IRQS_MASK); - for (i = 1; i < NR_IRQS; i++) { - if (status & IRQ_BIT(i)) { + while (status) { + if (status & 1) { irq_enter(); generic_handle_irq(i); irq_exit(); } + status = status >> 1; + i++; } } diff --git a/tools/lkl/tests/boot.sh b/tools/lkl/tests/boot.sh index f8357dcc876f44..1dcbcb8f63cf52 100755 --- a/tools/lkl/tests/boot.sh +++ b/tools/lkl/tests/boot.sh @@ -13,7 +13,7 @@ if [ -z "$fstype" ]; then fi file=`mktemp` -dd if=/dev/zero of=$file bs=1024 count=20480 +dd if=/dev/zero of=$file bs=1024 count=102400 yes | mkfs.$fstype $file >/dev/null