At 11/06/2012 10:05 PM, Dan Carpenter Wrote: > On Tue, Nov 06, 2012 at 10:10:11AM +0800, Wen Congyang wrote: >> At 11/06/2012 02:11 AM, Dan Carpenter Wrote: >>> Hello Wen Congyang, >>> >>> The patch 306859f13dc1: "acpi_memhotplug.c: don't allow to eject the >>> memory device if it is being used" from Nov 3, 2012, leads to the >>> following Smatch warning: >>> drivers/acpi/acpi_memhotplug.c:367 acpi_memory_remove_memory() >>> warn: inconsistent returns mutex:&mem_device->list_lock: >>> locked (357,361) unlocked (367) >> >> Thanks for pointing it out. >> >> The patch 306859f13dc1 is in akpm's tree, and it conflicts with another >> patch in linux-pm's tree. So Andrew Morton drops them. >> >> I will resend them based on linux-pm's next tree. > > Ok. Today's linux-next version 85fcb3758c10e "ACPI / memory-hotplug: > introduce a mutex lock to protect the list in acpi_memory_device" > has a similar problem and should be fixed as well. > > 319 static int acpi_memory_remove_memory(struct acpi_memory_device *mem_device) > 320 { > 321 int result; > 322 struct acpi_memory_info *info, *n; > 323 > 324 mutex_lock(&mem_device->list_lock); > 325 list_for_each_entry_safe(info, n, &mem_device->res_list, list) { > 326 if (info->enabled) { > 327 result = remove_memory(info->start_addr, info->length); > 328 if (result) > 329 return result; > ^^^^^^^^^^^^^ > We are still holding the lock here. Yes, I found this problem. Thanks Wen Congyang > > 330 } > 331 > 332 list_del(&info->list); > 333 kfree(info); > 334 } > 335 mutex_unlock(&mem_device->list_lock); > 336 > 337 return 0; > 338 } > > regards, > dan carpenter > > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html