Re: [PATCH] Fix __ucmpdi2 in v4l2_norm_to_name()

From: Andrew Morton
Date: Thu Jan 04 2007 - 17:49:29 EST


On Thu, 04 Jan 2007 12:10:14 +0100
Stelian Pop <stelian@xxxxxxxxxx> wrote:

> Hi,
>
> This patch replaces a switch statement using 64 bit values with the
> if/else equivalent in order to prevent a call __ucmpdi2 generated by
> some versions of gcc (verified with gcc-4.1.2 20060928):
>
> drivers/built-in.o: In function `v4l2_norm_to_name':
> (.text+0x71100): undefined reference to `__ucmpdi2'
>
> Signed-off-by: Stelian Pop <stelian@xxxxxxxxxx>
>
> ---
>
> drivers/media/video/v4l2-common.c | 126 ++++++++++++++++++-------------------
> 1 files changed, 62 insertions(+), 64 deletions(-)
>
> diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
> index 752c82c..0c3c2f6 100644
> --- a/drivers/media/video/v4l2-common.c
> +++ b/drivers/media/video/v4l2-common.c
> @@ -91,70 +91,68 @@ char *v4l2_norm_to_name(v4l2_std_id id)
> {
> char *name;
>
> - switch (id) {

It'd be simpler to just do

switch ((unsigned int)id) {

here (with a suitable comment).

The largest value we use here is 0x02000000. Perhaps v4l2_std_id shouldn't
be 64-bit?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/