+ return 0;
+
+release_mem:
+ release_mem_region(mem->start, resource_size(mem));
Not needed, as you used devm_*() for allocation.
OK, I'll remove this. I put it there after I looked at falconide.c and
wondered whether the automatic release would take place after both init
failure and exit (or just exit). I see now that pata_gayle.c does it
differently.