mpi3mr_pcierr_mmio_enabled(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

mpi3mr_pcierr_mmio_enabled β€” the PCI error recovery callback, bestie. Yes it's a mouthful, no we're not shortening it, it's iconic and we respect it.

This is page mpi3mr_pcierr_mmio_enabled(9) from the Kernel API Manual, and honestly? She's a little niche but she serves.


✨ SYNOPSIS ✨

pci_ers_result_t mpi3mr_pcierr_mmio_enabled (struct pci_dev *pdev );

That's the whole signature. Short king. πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • pdev β€” the PCI device instance. That's it, that's the one (1) argument, and she's carrying the entire function on her back.

🌸 DESCRIPTION 🌸

Okay so here's the tea: this function does not get called whenever it wants. It's called only if mpi3mr_pcierr_error_detected returns PCI_ERS_RESULT_CAN_RECOVER. Like, that's the vibe check it has to pass first. No CAN_RECOVER, no callback. Periodt.

So if you're wondering "why isn't my mmio_enabled callback firing"β€” go check what error_detected said first, iykyk. 🫢


πŸ”₯ RETURN πŸ”₯

She returns a pci_ers_result_t, and it's a whole fork in the road:

  • PCI_ERS_RESULT_DISCONNECT β€” when the controller is unrecoverable 😭 OR when the shost/mrioc reference cannot be found πŸ’€. Either way, it's giving disconnect energy.
  • else β€” returns PCI_ERS_RESULT_RECOVERED ✨ slay, we recovered.
fr fr, those are the only two outcomes. No in-between, no maybe, no "it depends". Two results, that's the menu.

πŸ‘‘ SEE ALSO πŸ‘‘

First up, the actual source file, no cap:

  • Kernel file ./drivers/scsi/mpi3mr/mpi3mr_os.c

And now the full friend group β€” every single one of these, and yes I'm listing all of them because they all deserve their moment πŸ’–:

Like I said. All of them. 🫢


πŸ¦‹ the lil sign-off πŸ¦‹

This whole thing lives in ./drivers/scsi/mpi3mr, and it's stamped October 2026 β€” yes, future girlie behavior, we love to see it 🌈⭐. Manual page mpi3mr_pcierr_mmio_enabled(9), out. Go read your PCI error recovery docs, drink some water, and remember: check what error_detected returned first πŸ’œπŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from