Messages in this thread | | | Date | Tue, 25 Jun 2013 21:51:11 +0300 | From | Mika Westerberg <> | Subject | Re: [PATCH 5/6] PCI: acpiphp: look _RMV method a bit deeper in the hierarhcy |
| |
On Tue, Jun 25, 2013 at 09:31:52PM +0300, Andy Shevchenko wrote: > On Tue, Jun 25, 2013 at 9:31 PM, Mika Westerberg > <mika.westerberg@linux.intel.com> wrote: > > On Tue, Jun 25, 2013 at 09:15:47PM +0300, Andy Shevchenko wrote: > >> On Tue, Jun 25, 2013 at 7:22 PM, Mika Westerberg > >> <mika.westerberg@linux.intel.com> wrote: > > [] > > >> > +static acpi_status pcihp_evaluate_rmv(acpi_handle handle, u32 lvl, > >> > + void *context, void **return_not_used) > >> > +{ > >> > + unsigned long long *removable = context; > >> > + unsigned long long value; > >> > + acpi_status status; > >> > + > >> > + status = acpi_evaluate_integer(handle, "_RMV", NULL, &value); > >> > + if (ACPI_SUCCESS(status) && value) { > >> > >> So, there is a chance the caller gets back uninitialized *context. > >> Let's assume that is by design. > >> > >> > + *removable = value; > >> > + return AE_CTRL_TERMINATE; > >> > + } > >> > + return AE_OK; > >> > +} > >> > >> > >> > +static bool pcihp_is_removable(acpi_handle handle, size_t depth) > >> > +{ > >> > + unsigned long long removable = 0; > >> > + acpi_status status; > >> > + > >> > + status = pcihp_evaluate_rmv(handle, 0, &removable, NULL); > >> > + if ((status == AE_CTRL_TERMINATE) && removable) > >> > >> Here you already have removable not equal zero. > > > > Hmm, removable is initialized to zero just few lines above... Did I miss > > something obvious? > > Yes, that's correct, however, you already did this check when you call > evaluate_rmv. Thus, second check '&& removable' is not needed.
Ah, right. Got it now :-)
I think it is better to remove the first value check from the pcihp_evaluate_rmv() and keep the check here.
I'll fix that in the next revision as well.
| |