2010/11/15 yidong zhang <zhangyd6@xxxxxxxxx>: > hi Marco > >> + retval = 0; >> + out: >> + if (retval && sbi->virt_addr) { >> + iounmap(sbi->virt_addr); >> + release_mem_region(sbi->phys_addr, initsize); >> + kfree(sbi); >> + } >> + >> + return retval; >> +} >> + > 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; > } > Yeah, you're right. It's not always true that virt addr is valid, kfree should be used out of this if. I'll fix it. Marco -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html