2013-03-23 14:34:16

by Axel Lin

[permalink] [raw]
Subject: [PATCH] clocksource: exynos_mct: Add terminating entry for exynos_mct_ids table

The of_device_id table is supposed to be zero-terminated.

Signed-off-by: Axel Lin <[email protected]>
---
drivers/clocksource/exynos_mct.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
index 203ac05..3cdafc0 100644
--- a/drivers/clocksource/exynos_mct.c
+++ b/drivers/clocksource/exynos_mct.c
@@ -514,6 +514,7 @@ static void __init exynos4_timer_resources(struct device_node *np)
static const struct of_device_id exynos_mct_ids[] = {
{ .compatible = "samsung,exynos4210-mct", .data = (void *)MCT_INT_SPI },
{ .compatible = "samsung,exynos4412-mct", .data = (void *)MCT_INT_PPI },
+ { }
};

void __init mct_init(void)
--
1.7.9.5



2013-03-25 01:11:50

by Kukjin Kim

[permalink] [raw]
Subject: RE: [PATCH] clocksource: exynos_mct: Add terminating entry for exynos_mct_ids table

Axel Lin wrote:
>
> The of_device_id table is supposed to be zero-terminated.
>
> Signed-off-by: Axel Lin <[email protected]>
> ---
> drivers/clocksource/exynos_mct.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/clocksource/exynos_mct.c
> b/drivers/clocksource/exynos_mct.c
> index 203ac05..3cdafc0 100644
> --- a/drivers/clocksource/exynos_mct.c
> +++ b/drivers/clocksource/exynos_mct.c
> @@ -514,6 +514,7 @@ static void __init exynos4_timer_resources(struct
> device_node *np)
> static const struct of_device_id exynos_mct_ids[] = {
> { .compatible = "samsung,exynos4210-mct", .data = (void
> *)MCT_INT_SPI },
> { .compatible = "samsung,exynos4412-mct", .data = (void
> *)MCT_INT_PPI },
> + { }

Thanks for your pointing out. But as I know, it is not mandatory now.

Please correct me if I'm wrong.

Thanks.

- Kukjin

2013-03-25 01:18:39

by Axel Lin

[permalink] [raw]
Subject: Re: [PATCH] clocksource: exynos_mct: Add terminating entry for exynos_mct_ids table

2013/3/25 Kukjin Kim <[email protected]>:
> Axel Lin wrote:
>>
>> The of_device_id table is supposed to be zero-terminated.
>>
>> Signed-off-by: Axel Lin <[email protected]>
>> ---
>> drivers/clocksource/exynos_mct.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/clocksource/exynos_mct.c
>> b/drivers/clocksource/exynos_mct.c
>> index 203ac05..3cdafc0 100644
>> --- a/drivers/clocksource/exynos_mct.c
>> +++ b/drivers/clocksource/exynos_mct.c
>> @@ -514,6 +514,7 @@ static void __init exynos4_timer_resources(struct
>> device_node *np)
>> static const struct of_device_id exynos_mct_ids[] = {
>> { .compatible = "samsung,exynos4210-mct", .data = (void
>> *)MCT_INT_SPI },
>> { .compatible = "samsung,exynos4412-mct", .data = (void
>> *)MCT_INT_PPI },
>> + { }
>
> Thanks for your pointing out. But as I know, it is not mandatory now.
>
> Please correct me if I'm wrong.

of_find_matching_node_and_match()
-> __of_match_node()
while (matches->name[0] || matches->type[0] || matches->compatible[0])

My understanding is the implementation in _of_match_node() still needs
zero-terminated entry to break out the while loop.

2013-03-25 10:13:43

by Kukjin Kim

[permalink] [raw]
Subject: RE: [PATCH] clocksource: exynos_mct: Add terminating entry for exynos_mct_ids table

Axel Lin wrote:
>
> 2013/3/25 Kukjin Kim <[email protected]>:
> > Axel Lin wrote:
> >>
> >> The of_device_id table is supposed to be zero-terminated.
> >>
> >> Signed-off-by: Axel Lin <[email protected]>
> >> ---
> >> drivers/clocksource/exynos_mct.c | 1 +
> >> 1 file changed, 1 insertion(+)
> >>
> >> diff --git a/drivers/clocksource/exynos_mct.c
> >> b/drivers/clocksource/exynos_mct.c
> >> index 203ac05..3cdafc0 100644
> >> --- a/drivers/clocksource/exynos_mct.c
> >> +++ b/drivers/clocksource/exynos_mct.c
> >> @@ -514,6 +514,7 @@ static void __init exynos4_timer_resources(struct
> >> device_node *np)
> >> static const struct of_device_id exynos_mct_ids[] = {
> >> { .compatible = "samsung,exynos4210-mct", .data = (void
> >> *)MCT_INT_SPI },
> >> { .compatible = "samsung,exynos4412-mct", .data = (void
> >> *)MCT_INT_PPI },
> >> + { }
> >
> > Thanks for your pointing out. But as I know, it is not mandatory now.
> >
> > Please correct me if I'm wrong.
>
> of_find_matching_node_and_match()
> -> __of_match_node()
> while (matches->name[0] || matches->type[0] || matches->compatible[0])
>
> My understanding is the implementation in _of_match_node() still needs
> zero-terminated entry to break out the while loop.

OK, you're right. In this case, a null entry is required in
__of_match_node().

Thanks, applied.

- Kukjin