Re: [BUG] WARN_ON(!context) in drivers/pci/hotplug/acpiphp_glue.c

Linus Torvalds
2013-10-11T01:42:58Z

On Thu, Oct 10, 2013 at 6:45 PM, Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
>
> /* Register slots for ejectable funtions only. */
> - if (acpi_pci_check_ejectable(pbus, handle) || is_dock_device(handle)) {
> + if ((acpi_pci_check_ejectable(pbus, handle) || is_dock_device(handle))
> + && !(pdev && device_is_managed_by_native_pciehp(pdev))) {
> unsigned long long sun;
> int retval;

I can't even begin to say whether this is a good solution or not,
because that if-conditional makes me want to go out and kill some
homeless people to let my aggressions out.

Can we please agree to *never* write code like this? Ever?

Use a well-named inline helper function where the name describes what
the f*ck the code is trying to do, and then comment the separate
issues. Because none of the above line noise makes me go "Ahh, it's
the test for an ejectable function".

What the heck _is_ an "ejectable function" anyway? The only comment
there just makes the code even less sensible.

Please?

Linus