Dan Carpenter wrote:
Hello Liu Jinsong,
This is a semi-automatic email about new static checker warnings.
The patch 259f201cb7ea: xen/acpi: ACPI memory hotplug from Jan 24,
2013, leads to the following Smatch complaint:
drivers/xen/xen-acpi-memhotplug.c:198 acpi_memory_get_device()
error: we previously assumed 'device' could be null (see line 171)
drivers/xen/xen-acpi-memhotplug.c
170
171if (!acpi_bus_get_device(handle, device) device)
^^
New check.
Btw, checking device is unnecessary.
if (acpi_bus_get_device(handle, device) == 0)
goto end;
A successful Get Device means that device is non-NULL; that's
built into the name. Anyway, if acpi_bus_get_device() fails either
something else will fail or we will Oops in the call to
acpi_driver_data().
172goto end;
173
174status = acpi_get_parent(handle, phandle);
175if (ACPI_FAILURE(status)) {
176pr_warn(PREFIX Cannot find acpi parent\n);
177return -EINVAL;
178}
179
180/* Get the parent device */
181result = acpi_bus_get_device(phandle, pdevice);
182if (result) {
183pr_warn(PREFIX Cannot get acpi bus device\n);
184return -EINVAL;
185}
186
187/*
188 * Now add the notified device. This creates the
acpi_device
189 * and invokes .add function
190 */
191result = acpi_bus_scan(handle);
192if (result) {
193pr_warn(PREFIX Cannot add acpi bus\n);
194return -EINVAL;
195}
196
197end:
198*mem_device = acpi_driver_data(device);
^^
Dereference.
199if (!(*mem_device)) {
200pr_err(PREFIX Driver data not found\n);
regards,
dan carpenter
Thanks Dan, updated, will send out minutes later.
Regards,
Jinsong
___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization