2012-10-12 06:56:28

by Tang Chen

[permalink] [raw]
Subject: [PATCH] Fix a hard coding style when determining if a device is a container.

"ACPI0004","PNP0A05" and "PNP0A06" are all defined in array
container_device_ids[], so use it, but not the hard coding style.

Signed-off-by: Tang Chen <[email protected]>
---
drivers/acpi/container.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
index 1f9f7d7..448c0e2 100644
--- a/drivers/acpi/container.c
+++ b/drivers/acpi/container.c
@@ -217,6 +217,7 @@ container_walk_namespace_cb(acpi_handle handle,
{
char *hid = NULL;
struct acpi_device_info *info;
+ struct acpi_device_id *container_id;
acpi_status status;
int *action = context;

@@ -232,10 +233,13 @@ container_walk_namespace_cb(acpi_handle handle,
goto end;
}

- if (strcmp(hid, "ACPI0004") && strcmp(hid, "PNP0A05") &&
- strcmp(hid, "PNP0A06")) {
- goto end;
+ for (container_id = container_device_ids;
+ container_id->id[0]; container_id++) {
+ if (!strcmp((char *)container_id->id, hid))
+ break;
}
+ if (!container_id->id[0])
+ goto end;

switch (*action) {
case INSTALL_NOTIFY_HANDLER:
--
1.7.1


2012-10-12 10:11:30

by Yasuaki Ishimatsu

[permalink] [raw]
Subject: Re: [PATCH] Fix a hard coding style when determining if a device is a container.

Hi Tang,

2012/10/12 15:55, Tang Chen wrote:
> "ACPI0004","PNP0A05" and "PNP0A06" are all defined in array
> container_device_ids[], so use it, but not the hard coding style.

The idea is good.

>
> Signed-off-by: Tang Chen <[email protected]>
> ---
> drivers/acpi/container.c | 10 +++++++---
> 1 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
> index 1f9f7d7..448c0e2 100644
> --- a/drivers/acpi/container.c
> +++ b/drivers/acpi/container.c
> @@ -217,6 +217,7 @@ container_walk_namespace_cb(acpi_handle handle,
> {
> char *hid = NULL;
> struct acpi_device_info *info;
> + struct acpi_device_id *container_id;
> acpi_status status;
> int *action = context;
>
> @@ -232,10 +233,13 @@ container_walk_namespace_cb(acpi_handle handle,
> goto end;
> }
>
> - if (strcmp(hid, "ACPI0004") && strcmp(hid, "PNP0A05") &&
> - strcmp(hid, "PNP0A06")) {
> - goto end;
> + for (container_id = container_device_ids;
> + container_id->id[0]; container_id++) {
> + if (!strcmp((char *)container_id->id, hid))
> + break;
> }
> + if (!container_id->id[0])
> + goto end;

How about prepare is_container_device() function and check whether
the device is the container device or not as below?

if (is_container_device())
goto end;

Thanks,
Yasuaki Ishimatsu

>
> switch (*action) {
> case INSTALL_NOTIFY_HANDLER:
>

2012-10-12 11:02:28

by Tang Chen

[permalink] [raw]
Subject: Re: [PATCH] Fix a hard coding style when determining if a device is a container.

On 10/12/2012 06:10 PM, Yasuaki Ishimatsu wrote:
> Hi Tang,
>
> 2012/10/12 15:55, Tang Chen wrote:
>> "ACPI0004","PNP0A05" and "PNP0A06" are all defined in array
>> container_device_ids[], so use it, but not the hard coding style.
>
> The idea is good.
>
>>
>> Signed-off-by: Tang Chen<[email protected]>
>> ---
>> drivers/acpi/container.c | 10 +++++++---
>> 1 files changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
>> index 1f9f7d7..448c0e2 100644
>> --- a/drivers/acpi/container.c
>> +++ b/drivers/acpi/container.c
>> @@ -217,6 +217,7 @@ container_walk_namespace_cb(acpi_handle handle,
>> {
>> char *hid = NULL;
>> struct acpi_device_info *info;
>> + struct acpi_device_id *container_id;
>> acpi_status status;
>> int *action = context;
>>
>> @@ -232,10 +233,13 @@ container_walk_namespace_cb(acpi_handle handle,
>> goto end;
>> }
>>
>> - if (strcmp(hid, "ACPI0004")&& strcmp(hid, "PNP0A05")&&
>> - strcmp(hid, "PNP0A06")) {
>> - goto end;
>> + for (container_id = container_device_ids;
>> + container_id->id[0]; container_id++) {
>> + if (!strcmp((char *)container_id->id, hid))
>> + break;
>> }
>> + if (!container_id->id[0])
>> + goto end;
>
> How about prepare is_container_device() function and check whether
> the device is the container device or not as below?

Sure. :)
A new patch will be sent soon.

Thanks for the wonderful idea. :)

>
> if (is_container_device())
> goto end;
>
> Thanks,
> Yasuaki Ishimatsu
>
>>
>> switch (*action) {
>> case INSTALL_NOTIFY_HANDLER:
>>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>