I think kfree(sbi) should not be put here. In case of
pram_parse_options failure, sbi should also be freed too. How about
change it to the list below? And change some “goto out” branches to
“goto out_free”.
// retval = 0;
return 0;
out:
if (retval && sbi->virt_addr) {
iounmap(sbi->virt_addr);
release_mem_region(sbi->phys_addr, initsize);
}
out_free:
kfree(sbi);
return retval;
}
--