Bug 85221 - parport_irq_handler breaks memory ballooning (and probably something else)
Summary: parport_irq_handler breaks memory ballooning (and probably something else)
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: Parallel (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_parallel
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-27 14:53 UTC by Matwey V. Kornilov
Modified: 2014-10-12 08:26 UTC (History)
0 users

See Also:
Kernel Version: 3.11.10+
Subsystem:
Regression: No
Bisected commit-id:


Attachments
lspci output (6.42 KB, text/plain)
2014-09-27 14:53 UTC, Matwey V. Kornilov
Details

Description Matwey V. Kornilov 2014-09-27 14:53:24 UTC
Hi,

I am running a virtual machine, with PCI device (parport board) passed into it.

Please, find lspci attached here. Two devices PCI board and virtio balloon device share the same IRQ 10.

Then when I try to increase memory amount for VM it hangs.

I suspect that the issue in the following.

irqreturn_t parport_irq_handler(int irq, void *dev_id)
{
        struct parport *port = dev_id;
 
        parport_generic_irq(port);
 
        return IRQ_HANDLED;
}

parport_irq_handler always return IRQ_HANDLED

and the same time handle_irq_event_percpu has the following code in action-loop:

                case IRQ_HANDLED:
                        flags |= action->flags;
                        break;

so, when parport_irq_handler is in the action list, then other actions are not called. Even if this interrupt is not related to parport at all. This may potentially lead to device drivers malfunction.
Comment 1 Matwey V. Kornilov 2014-09-27 14:53:47 UTC
Created attachment 151991 [details]
lspci output

Note You need to log in before you can comment on or make changes to this bug.