In the function twl4030_mmc_init the mmc is allocated in a loop. In the loop there is a switch where the default case looks like this: default: pr_err("MMC%d configuration not supported!\n", c->mmc); continue; When that path is used the mmc will leak memory. I suggest adding a kfree there. This leak was found by cppcheck - http://sourceforge.net/projects/cppcheck
Thanks .. queued a fix