lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 04 Jan 2007 12:10:14 +0100
From:	Stelian Pop <stelian@...ies.net>
To:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Cc:	Linus Torvalds <torvalds@...l.org>, mchehab@...radead.org,
	v4l-dvb-maintainer@...uxtv.org
Subject: [PATCH] Fix __ucmpdi2 in v4l2_norm_to_name()

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@...ies.net>

---

 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) {
-	case V4L2_STD_PAL:
-		name="PAL";		break;
-	case V4L2_STD_PAL_BG:
-		name="PAL-BG";		break;
-	case V4L2_STD_PAL_DK:
-		name="PAL-DK";		break;
-	case V4L2_STD_PAL_B:
-		name="PAL-B";		break;
-	case V4L2_STD_PAL_B1:
-		name="PAL-B1";		break;
-	case V4L2_STD_PAL_G:
-		name="PAL-G";		break;
-	case V4L2_STD_PAL_H:
-		name="PAL-H";		break;
-	case V4L2_STD_PAL_I:
-		name="PAL-I";		break;
-	case V4L2_STD_PAL_D:
-		name="PAL-D";		break;
-	case V4L2_STD_PAL_D1:
-		name="PAL-D1";		break;
-	case V4L2_STD_PAL_K:
-		name="PAL-K";		break;
-	case V4L2_STD_PAL_M:
-		name="PAL-M";		break;
-	case V4L2_STD_PAL_N:
-		name="PAL-N";		break;
-	case V4L2_STD_PAL_Nc:
-		name="PAL-Nc";		break;
-	case V4L2_STD_PAL_60:
-		name="PAL-60";		break;
-	case V4L2_STD_NTSC:
-		name="NTSC";		break;
-	case V4L2_STD_NTSC_M:
-		name="NTSC-M";		break;
-	case V4L2_STD_NTSC_M_JP:
-		name="NTSC-M-JP";	break;
-	case V4L2_STD_NTSC_443:
-		name="NTSC-443";	break;
-	case V4L2_STD_NTSC_M_KR:
-		name="NTSC-M-KR";	break;
-	case V4L2_STD_SECAM:
-		name="SECAM";		break;
-	case V4L2_STD_SECAM_DK:
-		name="SECAM-DK";	break;
-	case V4L2_STD_SECAM_B:
-		name="SECAM-B";		break;
-	case V4L2_STD_SECAM_D:
-		name="SECAM-D";		break;
-	case V4L2_STD_SECAM_G:
-		name="SECAM-G";		break;
-	case V4L2_STD_SECAM_H:
-		name="SECAM-H";		break;
-	case V4L2_STD_SECAM_K:
-		name="SECAM-K";		break;
-	case V4L2_STD_SECAM_K1:
-		name="SECAM-K1";	break;
-	case V4L2_STD_SECAM_L:
-		name="SECAM-L";		break;
-	case V4L2_STD_SECAM_LC:
-		name="SECAM-LC";	break;
-	default:
-		name="Unknown";		break;
-	}
+	if (id == V4L2_STD_PAL)
+		name = "PAL";
+	else if (id == V4L2_STD_PAL_BG)
+		name = "PAL-BG";
+	else if (id == V4L2_STD_PAL_DK)
+		name = "PAL-DK";
+	else if (id == V4L2_STD_PAL_B)
+		name = "PAL-B";
+	else if (id == V4L2_STD_PAL_B1)
+		name = "PAL-B1";
+	else if (id == V4L2_STD_PAL_G)
+		name = "PAL-G";
+	else if (id == V4L2_STD_PAL_H)
+		name = "PAL-H";
+	else if (id == V4L2_STD_PAL_I)
+		name = "PAL-I";
+	else if (id == V4L2_STD_PAL_D)
+		name = "PAL-D";
+	else if (id == V4L2_STD_PAL_D1)
+		name = "PAL-D1";
+	else if (id == V4L2_STD_PAL_K)
+		name = "PAL-K";
+	else if (id == V4L2_STD_PAL_M)
+		name = "PAL-M";
+	else if (id == V4L2_STD_PAL_N)
+		name = "PAL-N";
+	else if (id == V4L2_STD_PAL_Nc)
+		name = "PAL-Nc";
+	else if (id == V4L2_STD_PAL_60)
+		name = "PAL-60";
+	else if (id == V4L2_STD_NTSC)
+		name = "NTSC";
+	else if (id == V4L2_STD_NTSC_M)
+		name = "NTSC-M";
+	else if (id == V4L2_STD_NTSC_M_JP)
+		name = "NTSC-M-JP";
+	else if (id == V4L2_STD_NTSC_443)
+		name = "NTSC-443";
+	else if (id == V4L2_STD_NTSC_M_KR)
+		name = "NTSC-M-KR";
+	else if (id == V4L2_STD_SECAM)
+		name = "SECAM";
+	else if (id == V4L2_STD_SECAM_DK)
+		name = "SECAM-DK";
+	else if (id == V4L2_STD_SECAM_B)
+		name = "SECAM-B";
+	else if (id == V4L2_STD_SECAM_D)
+		name = "SECAM-D";
+	else if (id == V4L2_STD_SECAM_G)
+		name = "SECAM-G";
+	else if (id == V4L2_STD_SECAM_H)
+		name = "SECAM-H";
+	else if (id == V4L2_STD_SECAM_K)
+		name = "SECAM-K";
+	else if (id == V4L2_STD_SECAM_K1)
+		name = "SECAM-K1";
+	else if (id == V4L2_STD_SECAM_L)
+		name = "SECAM-L";
+	else if (id == V4L2_STD_SECAM_LC)
+		name = "SECAM-LC";
+	else
+		name = "Unknown";
 
 	return name;
 }

-- 
Stelian Pop <stelian@...ies.net>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ