The remove function of a device driver should not be marked __exit, because that section gets discarded for built-in drivers, and it is still possible to manually unbind a driver from a device, which would result in a runtime error.
The kernel also produces a link error for this when the module is built-in: `ramoops_remove' referenced in section `.data' of fs/built-in.o: defined in discarded section `.exit.text' of fs/built-in.o Signed-off-by: Arnd Bergmann <a...@arndb.de> Fixes: 2adb611ef932 ("pstore: add pstore unregister") diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index 68889a727bc7..319c3a60cfa5 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -578,7 +578,7 @@ fail_out: return err; } -static int __exit ramoops_remove(struct platform_device *pdev) +static int ramoops_remove(struct platform_device *pdev) { struct ramoops_context *cxt = &oops_cxt; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/