Rather than hooking onto the shutdown_final event handler, use the
standard device method. Despite what the comment claims, this will
execute at the correct time. module_shutdown() is hooked up to execute
at shutdown_final, SHUTDOWN_PRI_DEFAULT. This will invoke device_shutdown()
on the root bus, and thus all devices.
This does change behaviour slightly, as the shutdown method will now be
skipped whenever RB_NOSYNC is set for the reboot (most typically after a
panic). This is most likely desirable.