Skip to content

myri10ge: IRQ and pci state cleanups

Brice Goglin netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest5 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5myri10ge: match number of save_state and restoredrivers/net/myri10ge/myri10ge.c+10 -21 reply
2/5myri10ge: move request_irq to myri10ge_opendrivers/net/myri10ge/myri10ge.c+54 -440 replies
3/5myri10ge: make msi configurable at runtime through sysfsdrivers/net/myri10ge/myri10ge.c+1 -10 replies
4/5myri10ge: no need to save MSI and PCIe state in the driverdrivers/net/myri10ge/myri10ge.c+9 -380 replies
5/5myri10ge: handle failures in suspend and resumedrivers/net/myri10ge/myri10ge.c+7 -50 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/5] myri10ge: IRQ and pci state cleanups

Hi Jeff,

While testing Stephen Hemminger's patch to cleanup the save/restore_state in myri10ge, we discovered some problems in our code. First, since the MSI and PCIe state is saved on a kind of stack, we leak some memory by saving the state both for parity recovery and on suspend. Additionaly, some race between the watchdog and the interrupt handler could lead to similar problems.

We fix all this by first matching the number of pci_save_state() and pci_restore_state() (#1), then moving request_irq() to myri10ge_open() (#2) instead of probe() to eliminate some race.
Apart from cleaning the code, this also enables switching from/to MSI at runtime (#3).
Finally (Stephen's patch), we stop saving the MSI and PCIe states in the driver since the PCI layer does it for us (#4), and handle some failure cases in the suspend and resume routines (#5).

1. match number of save_state and restore
2. move request_irq to myri10ge_open
3. make msi configurable at runtime through sysfs
4. no need to save MSI and PCIe state in the driver
5. handle failures in suspend and resume

Thanks,
Brice