public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Repalce strncmp by memcmp
@ 2010-11-29  2:09 Pavel Vasilyev
  2010-11-29  2:21 ` microcai
                   ` (6 more replies)
  0 siblings, 7 replies; 19+ messages in thread
From: Pavel Vasilyev @ 2010-11-29  2:09 UTC (permalink / raw)
  To: LKML

[-- Attachment #1: Type: text/plain, Size: 663 bytes --]


    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).

I test on x86_64 (AMD Opteron 285).

#include <string.h>
char *A = "0000";
void test_memcmp(void) {
        memcmp(A, "TEST", 4);
}
void test_strn(void) {
        strncmp(A, "TEST", 4);
}
# gcc -c -O2 test.c
# objdump -d test.o
...

0000000000000020 <test_strncmp>:
  20:   f3 c3                   repz retq
  22:   66 66 66 66 66 2e 0f    data32 data32 data32 data32 nopw
%cs:0x0(%rax,%rax,1)
  29:   1f 84 00 00 00 00 00

0000000000000030 <test_memcmp>:
  30:   f3 c3                   repz retq

Wow, minus  one commad :)

-- 

                                                         Pavel.


[-- Attachment #2: strncmp2memcmp-2.6.37-rc3-git5.patch --]
[-- Type: text/x-patch, Size: 549435 bytes --]

diff --git a/Documentation/hwmon/hpfall.c b/Documentation/hwmon/hpfall.c
index a4a8fc5..d6c504d 100644
--- a/Documentation/hwmon/hpfall.c
+++ b/Documentation/hwmon/hpfall.c
@@ -25,7 +25,7 @@ int set_unload_heads_path(char *device)
 {
 	char devname[64];
 
-	if (strlen(device) <= 5 || strncmp(device, "/dev/", 5) != 0)
+	if (strlen(device) <= 5 || memcmp(device, "/dev/", 5) != 0)
 		return -EINVAL;
 	strncpy(devname, device + 5, sizeof(devname));
 
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c
index dc73bc5..c86e60c 100644
--- a/Documentation/lguest/lguest.c
+++ b/Documentation/lguest/lguest.c
@@ -1532,7 +1532,7 @@ static void setup_tun_net(char *arg)
 		err(1, "opening IP socket");
 
 	/* If the command line was --tunnet=bridge:<name> do bridging. */
-	if (!strncmp(BRIDGE_PFX, arg, strlen(BRIDGE_PFX))) {
+	if (!memcmp(BRIDGE_PFX, arg, strlen(BRIDGE_PFX))) {
 		arg += strlen(BRIDGE_PFX);
 		bridging = true;
 	}
diff --git a/Documentation/vm/page-types.c b/Documentation/vm/page-types.c
index cc96ee2..3da3ad0 100644
--- a/Documentation/vm/page-types.c
+++ b/Documentation/vm/page-types.c
@@ -844,13 +844,13 @@ static uint64_t parse_flag_name(const char *str, int len)
 	if (!*str || !len)
 		return 0;
 
-	if (len <= 8 && !strncmp(str, "compound", len))
+	if (len <= 8 && !memcmp(str, "compound", len))
 		return BITS_COMPOUND;
 
 	for (i = 0; i < ARRAY_SIZE(page_flag_names); i++) {
 		if (!page_flag_names[i])
 			continue;
-		if (!strncmp(str, page_flag_names[i] + 2, len))
+		if (!memcmp(str, page_flag_names[i] + 2, len))
 			return 1ULL << i;
 	}
 
diff --git a/Documentation/vm/slabinfo.c b/Documentation/vm/slabinfo.c
index 92e729f..4e96cba 100644
--- a/Documentation/vm/slabinfo.c
+++ b/Documentation/vm/slabinfo.c
@@ -311,7 +311,7 @@ static struct aliasinfo *find_one_alias(struct slabinfo *find)
 		if (a->slab == find &&
 			(!best || strlen(best->name) < strlen(a->name))) {
 				best = a;
-				if (strncmp(a->name,"kmall", 5) == 0)
+				if (memcmp(a->name,"kmall", 5) == 0)
 					return best;
 			}
 	}
diff --git a/arch/alpha/boot/tools/objstrip.c b/arch/alpha/boot/tools/objstrip.c
index 367d53d..a8fc69b 100644
--- a/arch/alpha/boot/tools/objstrip.c
+++ b/arch/alpha/boot/tools/objstrip.c
@@ -144,7 +144,7 @@ main (int argc, char *argv[])
 #ifdef __ELF__
     elf = (struct elfhdr *) buf;
 
-    if (elf->e_ident[0] == 0x7f && strncmp((char *)elf->e_ident + 1, "ELF", 3) == 0) {
+    if (elf->e_ident[0] == 0x7f && memcmp((char *)elf->e_ident + 1, "ELF", 3) == 0) {
 	if (elf->e_type != ET_EXEC) {
 	    fprintf(stderr, "%s: %s is not an ELF executable\n",
 		    prog_name, inname);
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
index d2634e4..b05391c 100644
--- a/arch/alpha/kernel/setup.c
+++ b/arch/alpha/kernel/setup.c
@@ -532,7 +532,7 @@ setup_arch(char **cmdline_p)
 #ifdef CONFIG_ALPHA_GENERIC
 	/* Assume that we've booted from SRM if we haven't booted from MILO.
 	   Detect the later by looking for "MILO" in the system serial nr.  */
-	alpha_using_srm = strncmp((const char *)hwrpb->ssn, "MILO", 4) != 0;
+	alpha_using_srm = memcmp((const char *)hwrpb->ssn, "MILO", 4) != 0;
 #endif
 
 	/* If we are using SRM, we want to allow callbacks
@@ -560,33 +560,33 @@ setup_arch(char **cmdline_p)
 	 */
 	while ((p = strsep(&args, " \t")) != NULL) {
 		if (!*p) continue;
-		if (strncmp(p, "alpha_mv=", 9) == 0) {
+		if (memcmp(p, "alpha_mv=", 9) == 0) {
 			vec = get_sysvec_byname(p+9);
 			continue;
 		}
-		if (strncmp(p, "cycle=", 6) == 0) {
+		if (memcmp(p, "cycle=", 6) == 0) {
 			est_cycle_freq = simple_strtol(p+6, NULL, 0);
 			continue;
 		}
-		if (strncmp(p, "mem=", 4) == 0) {
+		if (memcmp(p, "mem=", 4) == 0) {
 			mem_size_limit = get_mem_size_limit(p+4);
 			continue;
 		}
-		if (strncmp(p, "srmcons", 7) == 0) {
+		if (memcmp(p, "srmcons", 7) == 0) {
 			srmcons_output |= 1;
 			continue;
 		}
-		if (strncmp(p, "console=srm", 11) == 0) {
+		if (memcmp(p, "console=srm", 11) == 0) {
 			srmcons_output |= 2;
 			continue;
 		}
-		if (strncmp(p, "gartsize=", 9) == 0) {
+		if (memcmp(p, "gartsize=", 9) == 0) {
 			alpha_agpgart_size =
 				get_mem_size_limit(p+9) << PAGE_SHIFT;
 			continue;
 		}
 #ifdef CONFIG_VERBOSE_MCHECK
-		if (strncmp(p, "verbose_mcheck=", 15) == 0) {
+		if (memcmp(p, "verbose_mcheck=", 15) == 0) {
 			alpha_verbose_mcheck = simple_strtol(p+15, NULL, 0);
 			continue;
 		}
diff --git a/arch/arm/kernel/leds.c b/arch/arm/kernel/leds.c
index 31a316c..9326519 100644
--- a/arch/arm/kernel/leds.c
+++ b/arch/arm/kernel/leds.c
@@ -41,10 +41,10 @@ static ssize_t leds_store(struct sys_device *dev,
 	if (len > 0 && buf[len] == '\0')
 		len--;
 
-	if (strncmp(buf, "claim", len) == 0) {
+	if (memcmp(buf, "claim", len) == 0) {
 		leds_event(led_claim);
 		ret = size;
-	} else if (strncmp(buf, "release", len) == 0) {
+	} else if (memcmp(buf, "release", len) == 0) {
 		leds_event(led_release);
 		ret = size;
 	} else {
@@ -52,12 +52,12 @@ static ssize_t leds_store(struct sys_device *dev,
 
 		for (i = 0; i < ARRAY_SIZE(evt_names); i++) {
 			if (strlen(evt_names[i].name) != len ||
-			    strncmp(buf, evt_names[i].name, len) != 0)
+			    memcmp(buf, evt_names[i].name, len) != 0)
 				continue;
-			if (strncmp(buf+len, " on", 3) == 0) {
+			if (memcmp(buf+len, " on", 3) == 0) {
 				leds_event(evt_names[i].on);
 				ret = size;
-			} else if (strncmp(buf+len, " off", 4) == 0) {
+			} else if (memcmp(buf+len, " off", 4) == 0) {
 				leds_event(evt_names[i].off);
 				ret = size;
 			}
diff --git a/arch/arm/mach-iop13xx/include/mach/memory.h b/arch/arm/mach-iop13xx/include/mach/memory.h
index 7415e43..1025a73 100644
--- a/arch/arm/mach-iop13xx/include/mach/memory.h
+++ b/arch/arm/mach-iop13xx/include/mach/memory.h
@@ -34,7 +34,7 @@ static inline unsigned long __lbus_to_virt(dma_addr_t x)
 
 /* Device is an lbus device if it is on the platform bus of the IOP13XX */
 #define is_lbus_device(dev) 				\
-	(dev && strncmp(dev->bus->name, "platform", 8) == 0)
+	(dev && memcmp(dev->bus->name, "platform", 8) == 0)
 
 #define __arch_dma_to_virt(dev, addr)					\
 	({								\
diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c
index c9d77fa..9aca320 100644
--- a/arch/arm/mach-kirkwood/openrd-setup.c
+++ b/arch/arm/mach-kirkwood/openrd-setup.c
@@ -93,9 +93,9 @@ static int __init sd_uart_selection(char *str)
 	if (!str)
 		return 0;
 
-	if (!strncmp(str, "232", 3)) {
+	if (!memcmp(str, "232", 3)) {
 		uart1 = 232;
-	} else if (!strncmp(str, "485", 3)) {
+	} else if (!memcmp(str, "485", 3)) {
 		/* OpenRD-Base doesn't have RS485. Treat is as an
 		 * unknown argument & just have default setting -
 		 * which is SD */
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index 074536a..c4a5f65 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -145,7 +145,7 @@ int __init omap_mux_init_signal(const char *muxname, int val)
 		int i;
 
 		/* First check for full name in mode0.muxmode format */
-		if (mode0_len && strncmp(muxname, m0_entry, mode0_len))
+		if (mode0_len && memcmp(muxname, m0_entry, mode0_len))
 			continue;
 
 		/* Then check for muxmode only */
diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
index 5e81517..a5eb780 100644
--- a/arch/arm/mach-omap2/pm-debug.c
+++ b/arch/arm/mach-omap2/pm-debug.c
@@ -377,7 +377,7 @@ static int clkdm_dbg_show_counter(struct clockdomain *clkdm, void *user)
 
 	if (strcmp(clkdm->name, "emu_clkdm") == 0 ||
 		strcmp(clkdm->name, "wkup_clkdm") == 0 ||
-		strncmp(clkdm->name, "dpll", 4) == 0)
+		memcmp(clkdm->name, "dpll", 4) == 0)
 		return 0;
 
 	seq_printf(s, "%s->%s (%d)", clkdm->name,
@@ -395,7 +395,7 @@ static int pwrdm_dbg_show_counter(struct powerdomain *pwrdm, void *user)
 
 	if (strcmp(pwrdm->name, "emu_pwrdm") == 0 ||
 		strcmp(pwrdm->name, "wkup_pwrdm") == 0 ||
-		strncmp(pwrdm->name, "dpll", 4) == 0)
+		memcmp(pwrdm->name, "dpll", 4) == 0)
 		return 0;
 
 	if (pwrdm->state != pwrdm_read_pwrst(pwrdm))
@@ -425,7 +425,7 @@ static int pwrdm_dbg_show_timer(struct powerdomain *pwrdm, void *user)
 
 	if (strcmp(pwrdm->name, "emu_pwrdm") == 0 ||
 		strcmp(pwrdm->name, "wkup_pwrdm") == 0 ||
-		strncmp(pwrdm->name, "dpll", 4) == 0)
+		memcmp(pwrdm->name, "dpll", 4) == 0)
 		return 0;
 
 	pwrdm_state_switch(pwrdm);
@@ -551,7 +551,7 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *dir)
 
 	pwrdm->timer = t;
 
-	if (strncmp(pwrdm->name, "dpll", 4) == 0)
+	if (memcmp(pwrdm->name, "dpll", 4) == 0)
 		return 0;
 
 	d = debugfs_create_dir(pwrdm->name, (struct dentry *)dir);
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c
index c1c1cd0..883e3c1 100644
--- a/arch/arm/mach-orion5x/ts78xx-setup.c
+++ b/arch/arm/mach-orion5x/ts78xx-setup.c
@@ -458,9 +458,9 @@ static ssize_t ts78xx_fpga_store(struct kobject *kobj,
 		return -EBUSY;
 	}
 
-	if (strncmp(buf, "online", sizeof("online") - 1) == 0)
+	if (memcmp(buf, "online", sizeof("online") - 1) == 0)
 		value = 1;
-	else if (strncmp(buf, "offline", sizeof("offline") - 1) == 0)
+	else if (memcmp(buf, "offline", sizeof("offline") - 1) == 0)
 		value = 0;
 	else {
 		printk(KERN_ERR "ts78xx_fpga_store: Invalid value\n");
diff --git a/arch/arm/plat-omap/include/plat/memory.h b/arch/arm/plat-omap/include/plat/memory.h
index d5306be..808f6b4 100644
--- a/arch/arm/plat-omap/include/plat/memory.h
+++ b/arch/arm/plat-omap/include/plat/memory.h
@@ -48,7 +48,7 @@
  * OMAP bus type is lbus. We do the address translation based on the
  * device overriding the defaults used in the dma-mapping API.
  * Note that the is_lbus_device() test is not very efficient on 1510
- * because of the strncmp().
+ * because of the memcmp().
  */
 #ifdef CONFIG_ARCH_OMAP15XX
 
@@ -59,7 +59,7 @@
 
 #define virt_to_lbus(x)		((x) - PAGE_OFFSET + OMAP1510_LB_OFFSET)
 #define lbus_to_virt(x)		((x) - OMAP1510_LB_OFFSET + PAGE_OFFSET)
-#define is_lbus_device(dev)	(cpu_is_omap15xx() && dev && (strncmp(dev_name(dev), "ohci", 4) == 0))
+#define is_lbus_device(dev)	(cpu_is_omap15xx() && dev && (memcmp(dev_name(dev), "ohci", 4) == 0))
 
 #define __arch_page_to_dma(dev, page)	\
 	({ dma_addr_t __dma = page_to_phys(page); \
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 1e485df..e8dec3c 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -115,7 +115,7 @@ int request_dma(unsigned int channel, const char *device_id)
 	if (channel >= CH_UART2_RX && channel <= CH_UART3_TX) {
 		unsigned int per_map;
 		per_map = dma_ch[channel].regs->peripheral_map & 0xFFF;
-		if (strncmp(device_id, "BFIN_UART", 9) == 0)
+		if (memcmp(device_id, "BFIN_UART", 9) == 0)
 			dma_ch[channel].regs->peripheral_map = per_map |
 				((channel - CH_UART2_RX + 0xC)<<12);
 		else
diff --git a/arch/blackfin/kernel/early_printk.c b/arch/blackfin/kernel/early_printk.c
index 84ed837..09c19f8 100644
--- a/arch/blackfin/kernel/early_printk.c
+++ b/arch/blackfin/kernel/early_printk.c
@@ -126,7 +126,7 @@ int __init setup_early_printk(char *buf)
 
 #ifdef CONFIG_SERIAL_BFIN
 	/* Check for Blackfin Serial */
-	if (!strncmp(buf, "serial,uart", 11)) {
+	if (!memcmp(buf, "serial,uart", 11)) {
 		buf += 11;
 		early_console = earlyserial_init(buf);
 	}
@@ -134,7 +134,7 @@ int __init setup_early_printk(char *buf)
 
 #ifdef CONFIG_BFIN_JTAG_COMM
 	/* Check for Blackfin JTAG */
-	if (!strncmp(buf, "jtag", 4)) {
+	if (!memcmp(buf, "jtag", 4)) {
 		buf += 4;
 		early_console = bfin_jc_early_init();
 	}
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
index f8dd37e..52696b2 100644
--- a/arch/frv/mb93090-mb00/pci-vdk.c
+++ b/arch/frv/mb93090-mb00/pci-vdk.c
@@ -437,7 +437,7 @@ char * __init pcibios_setup(char *str)
 	if (!strcmp(str, "off")) {
 		pci_probe = 0;
 		return NULL;
-	} else if (!strncmp(str, "lastbus=", 8)) {
+	} else if (!memcmp(str, "lastbus=", 8)) {
 		pcibios_last_bus = simple_strtol(str+8, NULL, 0);
 		return NULL;
 	}
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c
index 4ce8d13..6651fc0 100644
--- a/arch/ia64/hp/common/sba_iommu.c
+++ b/arch/ia64/hp/common/sba_iommu.c
@@ -2060,7 +2060,7 @@ acpi_sba_ioc_add(struct acpi_device *device)
 	 * For HWP0001, only SBA appears in ACPI namespace.  It encloses the PCI
 	 * root bridges, and its CSR space includes the IOC function.
 	 */
-	if (strncmp("HWP0001", adi->hardware_id.string, 7) == 0) {
+	if (memcmp("HWP0001", adi->hardware_id.string, 7) == 0) {
 		hpa += ZX1_IOC_OFFSET;
 		/* zx1 based systems default to kernel page size iommu pages */
 		if (!iovp_shift)
diff --git a/arch/ia64/hp/sim/boot/bootloader.c b/arch/ia64/hp/sim/boot/bootloader.c
index c5e9baa..d1ffbc1 100644
--- a/arch/ia64/hp/sim/boot/bootloader.c
+++ b/arch/ia64/hp/sim/boot/bootloader.c
@@ -112,7 +112,7 @@ start_bootloader (void)
 	ssc((long) &stat, 0, 0, 0, SSC_WAIT_COMPLETION);
 
 	elf = (struct elfhdr *) mem;
-	if (elf->e_ident[0] == 0x7f && strncmp(elf->e_ident + 1, "ELF", 3) != 0) {
+	if (elf->e_ident[0] == 0x7f && memcmp(elf->e_ident + 1, "ELF", 3) != 0) {
 		cons_write("not an ELF file\n");
 		return;
 	}
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c
index 7e81966..5c6d3b4 100644
--- a/arch/ia64/hp/sim/simeth.c
+++ b/arch/ia64/hp/sim/simeth.c
@@ -265,7 +265,7 @@ simeth_open(struct net_device *dev)
 /* copied from lapbether.c */
 static __inline__ int dev_is_ethdev(struct net_device *dev)
 {
-       return ( dev->type == ARPHRD_ETHER && strncmp(dev->name, "dummy", 5));
+       return ( dev->type == ARPHRD_ETHER && memcmp(dev->name, "dummy", 5));
 }
 
 
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index c6c90f3..ca993ba 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -100,7 +100,7 @@ acpi_get_sysname(void)
 	}
 
 	rsdp = (struct acpi_table_rsdp *)__va(rsdp_phys);
-	if (strncmp(rsdp->signature, ACPI_SIG_RSDP, sizeof(ACPI_SIG_RSDP) - 1)) {
+	if (memcmp(rsdp->signature, ACPI_SIG_RSDP, sizeof(ACPI_SIG_RSDP) - 1)) {
 		printk(KERN_ERR
 		       "ACPI 2.0 RSDP signature incorrect, default to \"dig\"\n");
 		return "dig";
@@ -108,7 +108,7 @@ acpi_get_sysname(void)
 
 	xsdt = (struct acpi_table_xsdt *)__va(rsdp->xsdt_physical_address);
 	hdr = &xsdt->header;
-	if (strncmp(hdr->signature, ACPI_SIG_XSDT, sizeof(ACPI_SIG_XSDT) - 1)) {
+	if (memcmp(hdr->signature, ACPI_SIG_XSDT, sizeof(ACPI_SIG_XSDT) - 1)) {
 		printk(KERN_ERR
 		       "ACPI 2.0 XSDT signature incorrect, default to \"dig\"\n");
 		return "dig";
@@ -131,7 +131,7 @@ acpi_get_sysname(void)
 			 sizeof(xsdt->table_offset_entry[0]);
 	for (i = 0; i < nentries; i++) {
 		hdr = __va(xsdt->table_offset_entry[i]);
-		if (strncmp(hdr->signature, ACPI_SIG_DMAR,
+		if (memcmp(hdr->signature, ACPI_SIG_DMAR,
 			sizeof(ACPI_SIG_DMAR) - 1) == 0)
 			return "dig_vtd";
 	}
@@ -373,7 +373,7 @@ acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end
 
 static void __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 {
-	if (!strncmp(oem_id, "IBM", 3) && (!strncmp(oem_table_id, "SERMOW", 6))) {
+	if (!memcmp(oem_id, "IBM", 3) && (!strncmp(oem_table_id, "SERMOW", 6))) {
 
 		/*
 		 * Unfortunately ITC_DRIFT is not yet part of the
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index a0f0019..8c61d8c 100644
--- a/arch/ia64/kernel/efi.c
+++ b/arch/ia64/kernel/efi.c
@@ -426,7 +426,7 @@ static void __init handle_palo(unsigned long palo_phys)
 	struct palo_table *palo = __va(palo_phys);
 	u8  checksum;
 
-	if (strncmp(palo->signature, PALO_SIG, sizeof(PALO_SIG) - 1)) {
+	if (memcmp(palo->signature, PALO_SIG, sizeof(PALO_SIG) - 1)) {
 		printk(KERN_INFO "PALO signature incorrect.\n");
 		return;
 	}
diff --git a/arch/ia64/kernel/esi.c b/arch/ia64/kernel/esi.c
index b091111..cfbd726 100644
--- a/arch/ia64/kernel/esi.c
+++ b/arch/ia64/kernel/esi.c
@@ -69,7 +69,7 @@ static int __init esi_init (void)
 
 	systab = __va(esi);
 
-	if (strncmp(systab->signature, "ESIT", 4) != 0) {
+	if (memcmp(systab->signature, "ESIT", 4) != 0) {
 		printk(KERN_ERR "bad signature in ESI system table!");
 		return -ENODEV;
 	}
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c
index 0464173..7a11560 100644
--- a/arch/ia64/kernel/sal.c
+++ b/arch/ia64/kernel/sal.c
@@ -314,7 +314,7 @@ ia64_sal_init (struct ia64_sal_systab *systab)
 		return;
 	}
 
-	if (strncmp(systab->signature, "SST_", 4) != 0)
+	if (memcmp(systab->signature, "SST_", 4) != 0)
 		printk(KERN_ERR "bad signature in system table!");
 
 	check_versions(systab);
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c
index 422bea9..adcb6d8 100644
--- a/arch/m32r/kernel/process.c
+++ b/arch/m32r/kernel/process.c
@@ -121,10 +121,10 @@ void machine_power_off(void)
 
 static int __init idle_setup (char *str)
 {
-	if (!strncmp(str, "poll", 4)) {
+	if (!memcmp(str, "poll", 4)) {
 		printk("using poll in idle threads.\n");
 		pm_idle = poll_idle;
-	} else if (!strncmp(str, "sleep", 4)) {
+	} else if (!memcmp(str, "sleep", 4)) {
 		printk("using sleep in idle threads.\n");
 		pm_idle = default_idle;
 	}
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index ae2d96e..bb98b65 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -165,7 +165,7 @@ static int __init atari_switches_setup(char *str)
 		if (!*p)
 			continue;
 		ovsc_shift = 0;
-		if (strncmp(p, "ov_", 3) == 0) {
+		if (memcmp(p, "ov_", 3) == 0) {
 			p += 3;
 			ovsc_shift = ATARI_SWITCH_OVSC_SHIFT;
 		}
diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c
index 11edf61..fbe921b 100644
--- a/arch/m68k/mvme16x/config.c
+++ b/arch/m68k/mvme16x/config.c
@@ -142,7 +142,7 @@ void __init config_mvme16x(void)
 
     /* Report board revision */
 
-    if (strncmp("BDID", p->bdid, 4))
+    if (memcmp("BDID", p->bdid, 4))
     {
 	printk ("\n\nBug call .BRD_ID returned garbage - giving up\n\n");
 	while (1)
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c
index ad10fec..eb88b4f 100644
--- a/arch/m68k/q40/config.c
+++ b/arch/m68k/q40/config.c
@@ -83,7 +83,7 @@ static void q40_mem_console_write(struct console *co, const char *s,
 static int __init q40_debug_setup(char *arg)
 {
 	/* useful for early debugging stages - writes kernel messages into SRAM */
-	if (MACH_IS_Q40 && !strncmp(arg, "mem", 3)) {
+	if (MACH_IS_Q40 && !memcmp(arg, "mem", 3)) {
 		/*printk("using NVRAM debug, q40_mem_cptr=%p\n",q40_mem_cptr);*/
 		_cpleft = 2000 - ((long)q40_mem_cptr-0xff020000) / 4;
 		register_console(&q40_console_driver);
diff --git a/arch/m68k/sun3/prom/console.c b/arch/m68k/sun3/prom/console.c
index 2bcb6e4..8134e21 100644
--- a/arch/m68k/sun3/prom/console.c
+++ b/arch/m68k/sun3/prom/console.c
@@ -92,7 +92,7 @@ prom_query_input_device()
 		if(prom_node_has_property(st_p, "keyboard"))
 			return PROMDEV_IKBD;
 		prom_getproperty(st_p, "device_type", propb, sizeof(propb));
-		if(strncmp(propb, "serial", sizeof("serial")))
+		if(memcmp(propb, "serial", sizeof("serial")))
 			return PROMDEV_I_UNK;
 		prom_getproperty(prom_root_node, "stdin-path", propb, sizeof(propb));
 		p = propb;
@@ -139,12 +139,12 @@ prom_query_output_device()
 		local_irq_restore(flags);
 		propl = prom_getproperty(st_p, "device_type", propb, sizeof(propb));
 		if (propl >= 0 && propl == sizeof("display") &&
-			strncmp("display", propb, sizeof("display")) == 0)
+			memcmp("display", propb, sizeof("display")) == 0)
 		{
 			return PROMDEV_OSCREEN;
 		}
 		if(prom_vers == PROM_V3) {
-			if(strncmp("serial", propb, sizeof("serial")))
+			if(memcmp("serial", propb, sizeof("serial")))
 				return PROMDEV_O_UNK;
 			prom_getproperty(prom_root_node, "stdout-path", propb, sizeof(propb));
 			p = propb;
diff --git a/arch/m68knommu/platform/532x/config.c b/arch/m68knommu/platform/532x/config.c
index ca51323..8cecc8a 100644
--- a/arch/m68knommu/platform/532x/config.c
+++ b/arch/m68knommu/platform/532x/config.c
@@ -255,7 +255,7 @@ void __init config_BSP(char *commandp, int size)
 #if !defined(CONFIG_BOOTPARAM)
 	/* Copy command line from FLASH to local buffer... */
 	memcpy(commandp, (char *) 0x4000, 4);
-	if(strncmp(commandp, "kcl ", 4) == 0){
+	if(memcmp(commandp, "kcl ", 4) == 0){
 		memcpy(commandp, (char *) 0x4004, size);
 		commandp[size-1] = 0;
 	} else {
diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index a105301..9ba428c 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -64,16 +64,16 @@ static int __init early_init_dt_scan_serial(unsigned long node,
 	pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname);
 
 /* find all serial nodes */
-	if (strncmp(uname, "serial", 6) != 0)
+	if (memcmp(uname, "serial", 6) != 0)
 		return 0;
 
 	early_init_dt_check_for_initrd(node);
 
 /* find compatible node with uartlite */
 	p = of_get_flat_dt_prop(node, "compatible", &l);
-	if ((strncmp(p, "xlnx,xps-uartlite", 17) != 0) &&
-			(strncmp(p, "xlnx,opb-uartlite", 17) != 0) &&
-			(strncmp(p, "xlnx,axi-uartlite", 17) != 0))
+	if ((memcmp(p, "xlnx,xps-uartlite", 17) != 0) &&
+			(memcmp(p, "xlnx,opb-uartlite", 17) != 0) &&
+			(memcmp(p, "xlnx,axi-uartlite", 17) != 0))
 		return 0;
 
 	addr = of_get_flat_dt_prop(node, "reg", &l);
@@ -97,7 +97,7 @@ static int __init early_init_dt_scan_serial_full(unsigned long node,
 	pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname);
 
 /* find all serial nodes */
-	if (strncmp(uname, "serial", 6) != 0)
+	if (memcmp(uname, "serial", 6) != 0)
 		return 0;
 
 	early_init_dt_check_for_initrd(node);
@@ -105,8 +105,8 @@ static int __init early_init_dt_scan_serial_full(unsigned long node,
 /* find compatible node with uartlite */
 	p = of_get_flat_dt_prop(node, "compatible", &l);
 
-	if ((strncmp(p, "xlnx,xps-uart16550", 18) != 0) &&
-		(strncmp(p, "xlnx,axi-uart16550", 18) != 0))
+	if ((memcmp(p, "xlnx,xps-uart16550", 18) != 0) &&
+		(memcmp(p, "xlnx,axi-uart16550", 18) != 0))
 		return 0;
 
 	addr = *(u32 *)of_get_flat_dt_prop(node, "reg", &l);
diff --git a/arch/mips/alchemy/common/prom.c b/arch/mips/alchemy/common/prom.c
index 5340210..a2e9537 100644
--- a/arch/mips/alchemy/common/prom.c
+++ b/arch/mips/alchemy/common/prom.c
@@ -69,7 +69,7 @@ char *prom_getenv(char *envname)
 		if (yamon) {
 			if (strcmp(envname, *env++) == 0)
 				return *env;
-		} else if (strncmp(envname, *env, i) == 0 && (*env)[i] == '=')
+		} else if (memcmp(envname, *env, i) == 0 && (*env)[i] == '=')
 			return *env + i + 1;
 		env++;
 	}
diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c
index e5b6615..f060337 100644
--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
@@ -84,7 +84,7 @@ int nvram_getenv(char *name, char *val, size_t val_len)
 			break;
 		value = eq + 1;
 		if ((eq - var) == strlen(name) &&
-			strncmp(var, name, (eq - var)) == 0) {
+			memcmp(var, name, (eq - var)) == 0) {
 			snprintf(val, val_len, "%s", value);
 			return 0;
 		}
diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c
index f6e9063..b88e9d4 100644
--- a/arch/mips/bcm47xx/prom.c
+++ b/arch/mips/bcm47xx/prom.c
@@ -113,7 +113,7 @@ static __init void prom_init_cmdline(void)
 	if ((strstr(arcs_cmdline, "console=")) == NULL) {
 		/* Try to read the default serial port used by CFE */
 		if ((cfe_getenv("BOOT_CONSOLE", buf, COMMAND_LINE_SIZE) < 0)
-		    || (strncmp("uart", buf, 4)))
+		    || (memcmp("uart", buf, 4)))
 			/* Default to uart0 */
 			strcpy(buf, "uart0");
 
diff --git a/arch/mips/bcm63xx/boards/board_bcm963xx.c b/arch/mips/bcm63xx/boards/board_bcm963xx.c
index 8dba8cf..ba39966 100644
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -737,7 +737,7 @@ void __init board_prom_init(void)
 
 	/* find board by name */
 	for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) {
-		if (strncmp(nvram.name, bcm963xx_boards[i]->name,
+		if (memcmp(nvram.name, bcm963xx_boards[i]->name,
 			    sizeof(nvram.name)))
 			continue;
 		/* copy, board desc array is marked initdata */
diff --git a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
index fdf5f19..3b31aa1 100644
--- a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
+++ b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
@@ -547,7 +547,7 @@ struct cvmx_bootmem_named_block_desc *
 		for (i = 0;
 		     i < cvmx_bootmem_desc->named_block_num_blocks; i++) {
 			if ((name && named_block_array_ptr[i].size
-			     && !strncmp(name, named_block_array_ptr[i].name,
+			     && !memcmp(name, named_block_array_ptr[i].name,
 					 cvmx_bootmem_desc->named_block_name_len
 					 - 1))
 			    || (!name && !named_block_array_ptr[i].size)) {
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
index b0c3686..6daf0f9 100644
--- a/arch/mips/cavium-octeon/setup.c
+++ b/arch/mips/cavium-octeon/setup.c
@@ -586,8 +586,8 @@ void __init prom_init(void)
 	for (i = 0; i < argc; i++) {
 		const char *arg =
 			cvmx_phys_to_ptr(octeon_boot_desc_ptr->argv[i]);
-		if ((strncmp(arg, "MEM=", 4) == 0) ||
-		    (strncmp(arg, "mem=", 4) == 0)) {
+		if ((memcmp(arg, "MEM=", 4) == 0) ||
+		    (memcmp(arg, "mem=", 4) == 0)) {
 			sscanf(arg + 4, "%llu", &MAX_MEMORY);
 			MAX_MEMORY <<= 20;
 			if (MAX_MEMORY == 0)
diff --git a/arch/mips/fw/arc/cmdline.c b/arch/mips/fw/arc/cmdline.c
index 5c8603c..7932318 100644
--- a/arch/mips/fw/arc/cmdline.c
+++ b/arch/mips/fw/arc/cmdline.c
@@ -42,7 +42,7 @@ static char * __init move_firmware_args(char* cp)
 		for(i = 0; i < ARRAY_SIZE(used_arc); i++) {
 			int len = strlen(used_arc[i][0]);
 
-			if (!strncmp(prom_argv(actr), used_arc[i][0], len)) {
+			if (!memcmp(prom_argv(actr), used_arc[i][0], len)) {
 			/* Ok, we want it. First append the replacement... */
 				strcat(cp, used_arc[i][1]);
 				cp += strlen(used_arc[i][1]);
@@ -81,7 +81,7 @@ void __init prom_init_cmdline(void)
 		for (i = 0; i < ARRAY_SIZE(ignored); i++) {
 			int len = strlen(ignored[i]);
 
-			if (!strncmp(prom_argv(actr), ignored[i], len))
+			if (!memcmp(prom_argv(actr), ignored[i], len))
 				goto pic_cont;
 		}
 		/* Ok, we want it. */
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 3eb3cde..8752032 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -324,7 +324,7 @@ static void layout_sections(struct module *mod, const Elf_Ehdr * hdr,
 		for (i = 0; i < hdr->e_shnum; ++i) {
 			Elf_Shdr *s = &sechdrs[i];
 
-			//  || strncmp(secstrings + s->sh_name, ".init", 5) == 0)
+			//  || memcmp(secstrings + s->sh_name, ".init", 5) == 0)
 			if ((s->sh_flags & masks[m][0]) != masks[m][0]
 			    || (s->sh_flags & masks[m][1])
 			    || s->sh_entsize != ~0UL)
@@ -621,7 +621,7 @@ static void simplify_symbols(Elf_Shdr * sechdrs,
 
 	/* find the .bss section for COMMON symbols */
 	for (i = 0; i < nsecs; i++) {
-		if (strncmp(secstrings + sechdrs[i].sh_name, ".bss", 4) == 0) {
+		if (memcmp(secstrings + sechdrs[i].sh_name, ".bss", 4) == 0) {
 			bssbase = sechdrs[i].sh_addr;
 			break;
 		}
@@ -658,7 +658,7 @@ static void simplify_symbols(Elf_Shdr * sechdrs,
 		default:
 			secbase = sechdrs[sym[i].st_shndx].sh_addr;
 
-			if (strncmp(strtab + sym[i].st_name, "_gp", 3) == 0) {
+			if (memcmp(strtab + sym[i].st_name, "_gp", 3) == 0) {
 				save_gp_address(secbase, sym[i].st_value);
 			}
 
diff --git a/arch/mips/loongson/common/env.c b/arch/mips/loongson/common/env.c
index ae4cff9..7c04644 100644
--- a/arch/mips/loongson/common/env.c
+++ b/arch/mips/loongson/common/env.c
@@ -29,7 +29,7 @@ unsigned long memsize, highmemsize;
 
 #define parse_even_earlier(res, option, p)				\
 do {									\
-	if (strncmp(option, (char *)p, strlen(option)) == 0)		\
+	if (memcmp(option, (char *)p, strlen(option)) == 0)		\
 			strict_strtol((char *)p + strlen(option"="),	\
 					10, &res);			\
 } while (0)
diff --git a/arch/mips/mti-malta/malta-init.c b/arch/mips/mti-malta/malta-init.c
index 414f0c9..fb584df 100644
--- a/arch/mips/mti-malta/malta-init.c
+++ b/arch/mips/mti-malta/malta-init.c
@@ -75,7 +75,7 @@ char *prom_getenv(char *envname)
 	i = strlen(envname);
 
 	while (prom_envp(index)) {
-		if(strncmp(envname, prom_envp(index), i) == 0) {
+		if(memcmp(envname, prom_envp(index), i) == 0) {
 			return(prom_envp(index+1));
 		}
 		index += 2;
diff --git a/arch/mips/pci/ops-tx4927.c b/arch/mips/pci/ops-tx4927.c
index a1e7e6d..4ae514f 100644
--- a/arch/mips/pci/ops-tx4927.c
+++ b/arch/mips/pci/ops-tx4927.c
@@ -201,17 +201,17 @@ char *__devinit tx4927_pcibios_setup(char *str)
 {
 	unsigned long val;
 
-	if (!strncmp(str, "trdyto=", 7)) {
+	if (!memcmp(str, "trdyto=", 7)) {
 		if (strict_strtoul(str + 7, 0, &val) == 0)
 			tx4927_pci_opts.trdyto = val;
 		return NULL;
 	}
-	if (!strncmp(str, "retryto=", 8)) {
+	if (!memcmp(str, "retryto=", 8)) {
 		if (strict_strtoul(str + 8, 0, &val) == 0)
 			tx4927_pci_opts.retryto = val;
 		return NULL;
 	}
-	if (!strncmp(str, "gbwc=", 5)) {
+	if (!memcmp(str, "gbwc=", 5)) {
 		if (strict_strtoul(str + 5, 0, &val) == 0)
 			tx4927_pci_opts.gbwc = val;
 		return NULL;
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_prom.c b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
index db00deb..cbab2cd 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_prom.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
@@ -294,7 +294,7 @@ char *prom_getenv(char *env_name)
 	int i = strlen(env_name);
 
 	while (*var) {
-		if (strncmp(env_name, *var, i) == 0) {
+		if (memcmp(env_name, *var, i) == 0) {
 			return (*var + strlen(env_name) + 1);
 		}
 		var++;
diff --git a/arch/mips/pmc-sierra/yosemite/prom.c b/arch/mips/pmc-sierra/yosemite/prom.c
index cf4c868..89f2ad3 100644
--- a/arch/mips/pmc-sierra/yosemite/prom.c
+++ b/arch/mips/pmc-sierra/yosemite/prom.c
@@ -116,12 +116,12 @@ void __init prom_init(void)
 #endif
 
 	while (*env) {
-		if (strncmp("ocd_base", *env, strlen("ocd_base")) == 0)
+		if (memcmp("ocd_base", *env, strlen("ocd_base")) == 0)
 			yosemite_base =
 			    simple_strtol(*env + strlen("ocd_base="), NULL,
 					  16);
 
-		if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0)
+		if (memcmp("cpuclock", *env, strlen("cpuclock")) == 0)
 			cpu_clock_freq =
 			    simple_strtol(*env + strlen("cpuclock="), NULL,
 					  10);
diff --git a/arch/mips/pnx833x/common/prom.c b/arch/mips/pnx833x/common/prom.c
index 29969f9..8d44643 100644
--- a/arch/mips/pnx833x/common/prom.c
+++ b/arch/mips/pnx833x/common/prom.c
@@ -51,7 +51,7 @@ char __init *prom_getenv(char *envname)
 	i = strlen(envname);
 
 	while (*env) {
-		if (strncmp(envname, *env, i) == 0 && *(*env+i) == '=')
+		if (memcmp(envname, *env, i) == 0 && *(*env+i) == '=')
 			return *env + i + 1;
 		env++;
 	}
diff --git a/arch/mips/pnx8550/common/prom.c b/arch/mips/pnx8550/common/prom.c
index 32f7009..22c6457 100644
--- a/arch/mips/pnx8550/common/prom.c
+++ b/arch/mips/pnx8550/common/prom.c
@@ -59,7 +59,7 @@ char *prom_getenv(char *envname)
 	i = strlen(envname);
 
 	while(env->name) {
-		if(strncmp(envname, env->name, i) == 0) {
+		if(memcmp(envname, env->name, i) == 0) {
 			return(env->name + strlen(envname) + 1);
 		}
 		env++;
diff --git a/arch/mips/powertv/init.c b/arch/mips/powertv/init.c
index 8355228..ace3279 100644
--- a/arch/mips/powertv/init.c
+++ b/arch/mips/powertv/init.c
@@ -59,7 +59,7 @@ char *prom_getenv(char *envname)
 		i = strlen(envname);
 
 		while (prom_envp(index)) {
-			if (strncmp(envname, prom_envp(index), i) == 0) {
+			if (memcmp(envname, prom_envp(index), i) == 0) {
 				result = prom_envp(index + 1);
 				break;
 			}
diff --git a/arch/mips/rb532/prom.c b/arch/mips/rb532/prom.c
index d7c26d0..2f40741 100644
--- a/arch/mips/rb532/prom.c
+++ b/arch/mips/rb532/prom.c
@@ -56,7 +56,7 @@ void __init prom_free_prom_memory(void)
 
 static inline int match_tag(char *arg, const char *tag)
 {
-	return strncmp(arg, tag, strlen(tag)) == 0;
+	return memcmp(arg, tag, strlen(tag)) == 0;
 }
 
 static inline unsigned long tag2ul(char *arg, const char *tag)
diff --git a/arch/mips/sibyte/common/cfe.c b/arch/mips/sibyte/common/cfe.c
index 6343011..5512d24 100644
--- a/arch/mips/sibyte/common/cfe.c
+++ b/arch/mips/sibyte/common/cfe.c
@@ -305,7 +305,7 @@ void __init prom_init(void)
 			while (*ptr == ' ') {
 				ptr++;
 			}
-			if (!strncmp(ptr, "initrd=", 7)) {
+			if (!memcmp(ptr, "initrd=", 7)) {
 				initrd_setup(ptr+7);
 				break;
 			} else {
diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c
index d16b462..179060a 100644
--- a/arch/mips/sni/setup.c
+++ b/arch/mips/sni/setup.c
@@ -63,7 +63,7 @@ static void __init sni_console_setup(void)
 	static char options[8] __initdata;
 
 	cdev = prom_getenv("console_dev");
-	if (strncmp(cdev, "tty", 3) == 0) {
+	if (memcmp(cdev, "tty", 3) == 0) {
 		ctype = prom_getenv("console");
 		switch (*ctype) {
 		default:
@@ -78,7 +78,7 @@ static void __init sni_console_setup(void)
 		}
 		if (baud)
 			strcpy(options, baud);
-		if (strncmp(cdev, "tty552", 6) == 0)
+		if (memcmp(cdev, "tty552", 6) == 0)
 			add_preferred_console("ttyS", port,
 					      baud ? options : NULL);
 		else
diff --git a/arch/mips/txx9/generic/pci.c b/arch/mips/txx9/generic/pci.c
index 9a0be81..e632e2a 100644
--- a/arch/mips/txx9/generic/pci.c
+++ b/arch/mips/txx9/generic/pci.c
@@ -417,7 +417,7 @@ char *__devinit txx9_pcibios_setup(char *str)
 		   RBHBK4100,RBHBK4200, Interface PCM-PCM05, etc.) */
 		txx9_pci_option &= ~TXX9_PCI_OPT_PICMG;
 		return NULL;
-	} else if (!strncmp(str, "clk=", 4)) {
+	} else if (!memcmp(str, "clk=", 4)) {
 		char *val = str + 4;
 		txx9_pci_option &= ~TXX9_PCI_OPT_CLK_MASK;
 		if (strcmp(val, "33") == 0)
@@ -427,7 +427,7 @@ char *__devinit txx9_pcibios_setup(char *str)
 		else /* "auto" */
 			txx9_pci_option |= TXX9_PCI_OPT_CLK_AUTO;
 		return NULL;
-	} else if (!strncmp(str, "err=", 4)) {
+	} else if (!memcmp(str, "err=", 4)) {
 		if (!strcmp(str + 4, "panic"))
 			txx9_pci_err_action = TXX9_PCI_ERR_PANIC;
 		else if (!strcmp(str + 4, "ignore"))
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index 812816c..6f485b1 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -304,10 +304,10 @@ static void __init preprocess_cmdline(void)
 	arcs_cmdline[0] = '\0';
 	while (s && *s) {
 		char *str = strsep(&s, " ");
-		if (strncmp(str, "board=", 6) == 0) {
+		if (memcmp(str, "board=", 6) == 0) {
 			txx9_board_vec = find_board_byname(str + 6);
 			continue;
-		} else if (strncmp(str, "masterclk=", 10) == 0) {
+		} else if (memcmp(str, "masterclk=", 10) == 0) {
 			unsigned long val;
 			if (strict_strtoul(str + 10, 10, &val) == 0)
 				txx9_master_clock = val;
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c
index a4954fe..42b8365 100644
--- a/arch/mn10300/unit-asb2305/pci.c
+++ b/arch/mn10300/unit-asb2305/pci.c
@@ -439,7 +439,7 @@ char *__init pcibios_setup(char *str)
 		pci_probe = 0;
 		return NULL;
 
-	} else if (!strncmp(str, "lastbus=", 8)) {
+	} else if (!memcmp(str, "lastbus=", 8)) {
 		pcibios_last_bus = simple_strtol(str+8, NULL, 0);
 		return NULL;
 	}
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c
index df971fa..01b2657 100644
--- a/arch/parisc/kernel/firmware.c
+++ b/arch/parisc/kernel/firmware.c
@@ -793,7 +793,7 @@ int pdc_get_initiator(struct hardware_path *hwpath, struct pdc_initiator *initia
 
 /* BCJ-XXXX series boxes. E.G. "9000/785/C3000" */
 #define IS_SPROCKETS() (strlen(boot_cpu_data.pdc.sys_model_name) == 14 && \
-	strncmp(boot_cpu_data.pdc.sys_model_name, "9000/785", 8) == 0)
+	memcmp(boot_cpu_data.pdc.sys_model_name, "9000/785", 8) == 0)
 
 	retval = mem_pdc_call(PDC_INITIATOR, PDC_GET_INITIATOR, 
 			      __pa(pdc_result), __pa(hwpath));
diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
index 6e81bb5..3b5bb16 100644
--- a/arch/parisc/kernel/module.c
+++ b/arch/parisc/kernel/module.c
@@ -331,7 +331,7 @@ int module_frob_arch_sections(CONST Elf_Ehdr *hdr,
 		unsigned long nrels = sechdrs[i].sh_size / sizeof(*rels);
 		unsigned int count, s;
 
-		if (strncmp(secstrings + sechdrs[i].sh_name,
+		if (memcmp(secstrings + sechdrs[i].sh_name,
 			    ".PARISC.unwind", 14) == 0)
 			me->arch.unwind_section = i;
 
@@ -783,7 +783,7 @@ int apply_relocate_add(Elf_Shdr *sechdrs,
 				}
 			} else {
 				val = sym->st_value;
-				if (strncmp(strtab + sym->st_name, "$$", 2)
+				if (memcmp(strtab + sym->st_name, "$$", 2)
 				    == 0)
 					val = get_stub(me, val, addend, ELF_STUB_MILLI,
 						       loc0, targetsec);
@@ -928,7 +928,7 @@ int module_finalize(const Elf_Ehdr *hdr,
 
 	for (i = 1; i < nsyms; i++) {
 		oldptr++;	/* note, count starts at 1 so preincrement */
-		if(strncmp(strtab + oldptr->st_name,
+		if(memcmp(strtab + oldptr->st_name,
 			      ".L", 2) == 0)
 			continue;
 
diff --git a/arch/powerpc/boot/planetcore.c b/arch/powerpc/boot/planetcore.c
index 0d8558a..4b68411 100644
--- a/arch/powerpc/boot/planetcore.c
+++ b/arch/powerpc/boot/planetcore.c
@@ -43,7 +43,7 @@ const char *planetcore_get_key(const char *table, const char *key)
 	int keylen = strlen(key);
 
 	do {
-		if (!strncmp(table, key, keylen) && table[keylen] == '=')
+		if (!memcmp(table, key, keylen) && table[keylen] == '=')
 			return table + keylen + 1;
 
 		table += strlen(table) + 1;
diff --git a/arch/powerpc/include/asm/string.h b/arch/powerpc/include/asm/string.h
index e40010a..8f5222a 100644
--- a/arch/powerpc/include/asm/string.h
+++ b/arch/powerpc/include/asm/string.h
@@ -19,7 +19,7 @@ extern char * strcpy(char *,const char *);
 extern char * strncpy(char *,const char *, __kernel_size_t);
 extern __kernel_size_t strlen(const char *);
 extern int strcmp(const char *,const char *);
-extern int strncmp(const char *, const char *, __kernel_size_t);
+extern int memcmp(const char *, const char *, __kernel_size_t);
 extern char * strcat(char *, const char *);
 extern void * memset(void *,int,__kernel_size_t);
 extern void * memcpy(void *,const void *,__kernel_size_t);
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 941ff4d..bf0e1be 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -603,9 +603,9 @@ static void __init early_cmdline_parse(void)
 		opt += 6;
 		while (*opt && *opt == ' ')
 			opt++;
-		if (!strncmp(opt, RELOC("off"), 3))
+		if (!memcmp(opt, RELOC("off"), 3))
 			RELOC(prom_iommu_off) = 1;
-		else if (!strncmp(opt, RELOC("force"), 5))
+		else if (!memcmp(opt, RELOC("force"), 5))
 			RELOC(prom_iommu_force_on) = 1;
 	}
 #endif
@@ -1582,7 +1582,7 @@ static void __init prom_find_mmu(void)
 	/* XXX might need to add other versions here */
 	if (strcmp(version, "Open Firmware, 1.0.5") == 0)
 		of_workarounds = OF_WA_CLAIM;
-	else if (strncmp(version, "FirmWorks,3.", 12) == 0) {
+	else if (memcmp(version, "FirmWorks,3.", 12) == 0) {
 		of_workarounds = OF_WA_CLAIM | OF_WA_LONGTRAIL;
 		call_prom("interpret", 1, 1, "dev /memory 0 to allow-reclaim");
 	} else
diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c
index 2b442e6..41eaa12 100644
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
@@ -436,9 +436,9 @@ static ssize_t manage_flash_write(struct file *file, const char __user *buf,
 		if (copy_from_user (stkbuf, buf, count)) {
 			return -EFAULT;
 		}
-		if (strncmp(stkbuf, reject_str, strlen(reject_str)) == 0) 
+		if (memcmp(stkbuf, reject_str, strlen(reject_str)) == 0) 
 			op = RTAS_REJECT_TMP_IMG;
-		else if (strncmp(stkbuf, commit_str, strlen(commit_str)) == 0) 
+		else if (memcmp(stkbuf, commit_str, strlen(commit_str)) == 0) 
 			op = RTAS_COMMIT_TMP_IMG;
 	}
 	
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index 1d2fbc9..29d7f3e 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -149,7 +149,7 @@ notrace void __init machine_init(unsigned long dt_ptr)
 /* Checks wdt=x and wdt_period=xx command-line option */
 notrace int __init early_parse_wdt(char *p)
 {
-	if (p && strncmp(p, "0", 1) != 0)
+	if (p && memcmp(p, "0", 1) != 0)
 	       booke_wdt_enabled = 1;
 
 	return 0;
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 441d2a7..a46fd06 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -1089,7 +1089,7 @@ static const struct vio_device_id *vio_match_device(
 		const struct vio_device_id *ids, const struct vio_dev *dev)
 {
 	while (ids->type[0] != '\0') {
-		if ((strncmp(dev->type, ids->type, strlen(ids->type)) == 0) &&
+		if ((memcmp(dev->type, ids->type, strlen(ids->type)) == 0) &&
 		    of_device_is_compatible(dev->dev.of_node,
 					 ids->compat))
 			return ids;
diff --git a/arch/powerpc/kvm/44x.c b/arch/powerpc/kvm/44x.c
index 74d0e74..2b12a92 100644
--- a/arch/powerpc/kvm/44x.c
+++ b/arch/powerpc/kvm/44x.c
@@ -43,7 +43,7 @@ int kvmppc_core_check_processor_compat(void)
 {
 	int r;
 
-	if (strncmp(cur_cpu_spec->platform, "ppc440", 6) == 0)
+	if (memcmp(cur_cpu_spec->platform, "ppc440", 6) == 0)
 		r = 0;
 	else
 		r = -ENOTSUPP;
diff --git a/arch/powerpc/platforms/chrp/pci.c b/arch/powerpc/platforms/chrp/pci.c
index 8f67a39..f4fbb5f 100644
--- a/arch/powerpc/platforms/chrp/pci.c
+++ b/arch/powerpc/platforms/chrp/pci.c
@@ -222,11 +222,11 @@ chrp_find_bridges(void)
 	 */
 	machine = of_get_property(root, "model", NULL);
 	if (machine != NULL) {
-		is_longtrail = strncmp(machine, "IBM,LongTrail", 13) == 0;
-		is_mot = strncmp(machine, "MOT", 3) == 0;
-		if (strncmp(machine, "Pegasos2", 8) == 0)
+		is_longtrail = memcmp(machine, "IBM,LongTrail", 13) == 0;
+		is_mot = memcmp(machine, "MOT", 3) == 0;
+		if (memcmp(machine, "Pegasos2", 8) == 0)
 			is_pegasos = 2;
-		else if (strncmp(machine, "Pegasos", 7) == 0)
+		else if (memcmp(machine, "Pegasos", 7) == 0)
 			is_pegasos = 1;
 	}
 	for (dev = root->child; dev != NULL; dev = dev->sibling) {
@@ -267,10 +267,10 @@ chrp_find_bridges(void)
 		model = of_get_property(dev, "model", NULL);
 		if (model == NULL)
 			model = "<none>";
-		if (strncmp(model, "IBM, Python", 11) == 0) {
+		if (memcmp(model, "IBM, Python", 11) == 0) {
 			setup_python(hose, dev);
 		} else if (is_mot
-			   || strncmp(model, "Motorola, Grackle", 17) == 0) {
+			   || memcmp(model, "Motorola, Grackle", 17) == 0) {
 			setup_grackle(hose);
 		} else if (is_longtrail) {
 			void __iomem *p = ioremap(GG2_PCI_CONFIG_BASE, 0x80000);
@@ -281,7 +281,7 @@ chrp_find_bridges(void)
 			setup_indirect_pci(hose, 0xfec00cf8, 0xfee00cfc, 0);
 		} else if (is_pegasos == 2) {
 			setup_peg2(hose, dev);
-		} else if (!strncmp(model, "IBM,CPC710", 10)) {
+		} else if (!memcmp(model, "IBM,CPC710", 10)) {
 			setup_indirect_pci(hose,
 					   r.start + 0x000f8000,
 					   r.start + 0x000f8010,
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c
index 8553cc4..73a3bdb 100644
--- a/arch/powerpc/platforms/chrp/setup.c
+++ b/arch/powerpc/platforms/chrp/setup.c
@@ -106,7 +106,7 @@ void chrp_show_cpuinfo(struct seq_file *m)
 	seq_printf(m, "machine\t\t: CHRP %s\n", model);
 
 	/* longtrail (goldengate) stuff */
-	if (model && !strncmp(model, "IBM,LongTrail", 13)) {
+	if (model && !memcmp(model, "IBM,LongTrail", 13)) {
 		/* VLSI VAS96011/12 `Golden Gate 2' */
 		/* Memory banks */
 		sdramen = (in_le32(gg2_pci_config_base + GG2_PCI_DRAM_CTRL)
@@ -201,7 +201,7 @@ static void __init sio_init(void)
 		return;
 
 	model = of_get_property(root, "model", NULL);
-	if (model && !strncmp(model, "IBM,LongTrail", 13)) {
+	if (model && !memcmp(model, "IBM,LongTrail", 13)) {
 		/* logical device 0 (KBC/Keyboard) */
 		sio_fixup_irq("keyboard", 0, 1, 2);
 		/* select logical device 1 (KBC/Mouse) */
@@ -308,13 +308,13 @@ void __init chrp_setup_arch(void)
 
 	if (root)
 		machine = of_get_property(root, "model", NULL);
-	if (machine && strncmp(machine, "Pegasos", 7) == 0) {
+	if (machine && memcmp(machine, "Pegasos", 7) == 0) {
 		_chrp_type = _CHRP_Pegasos;
-	} else if (machine && strncmp(machine, "IBM", 3) == 0) {
+	} else if (machine && memcmp(machine, "IBM", 3) == 0) {
 		_chrp_type = _CHRP_IBM;
-	} else if (machine && strncmp(machine, "MOT", 3) == 0) {
+	} else if (machine && memcmp(machine, "MOT", 3) == 0) {
 		_chrp_type = _CHRP_Motorola;
-	} else if (machine && strncmp(machine, "TotalImpact,BRIQ-1", 18) == 0) {
+	} else if (machine && memcmp(machine, "TotalImpact,BRIQ-1", 18) == 0) {
 		_chrp_type = _CHRP_briq;
 		/* Map the SPOR register on briq and change the restart hook */
 		briq_SPOR = ioremap(0xff0000e8, 4);
diff --git a/arch/powerpc/platforms/powermac/backlight.c b/arch/powerpc/platforms/powermac/backlight.c
index d679964..ee957ed 100644
--- a/arch/powerpc/platforms/powermac/backlight.c
+++ b/arch/powerpc/platforms/powermac/backlight.c
@@ -61,7 +61,7 @@ int pmac_has_backlight_type(const char *type)
 	if (bk_node) {
 		const char *prop = of_get_property(bk_node,
 				"backlight-control", NULL);
-		if (prop && strncmp(prop, type, strlen(type)) == 0) {
+		if (prop && memcmp(prop, type, strlen(type)) == 0) {
 			of_node_put(bk_node);
 			return 1;
 		}
diff --git a/arch/powerpc/platforms/powermac/feature.c b/arch/powerpc/platforms/powermac/feature.c
index df42399..9ad5d20 100644
--- a/arch/powerpc/platforms/powermac/feature.c
+++ b/arch/powerpc/platforms/powermac/feature.c
@@ -1104,11 +1104,11 @@ core99_usb_enable(struct device_node *node, long param, long value)
 	prop = of_get_property(node, "AAPL,clock-id", NULL);
 	if (!prop)
 		return -ENODEV;
-	if (strncmp(prop, "usb0u048", 8) == 0)
+	if (memcmp(prop, "usb0u048", 8) == 0)
 		number = 0;
-	else if (strncmp(prop, "usb1u148", 8) == 0)
+	else if (memcmp(prop, "usb1u148", 8) == 0)
 		number = 2;
-	else if (strncmp(prop, "usb2u248", 8) == 0)
+	else if (memcmp(prop, "usb2u248", 8) == 0)
 		number = 4;
 	else
 		return -ENODEV;
@@ -1465,7 +1465,7 @@ static long g5_i2s_enable(struct device_node *node, long param, long value)
 
 	if (macio->type != macio_keylargo2 && macio->type != macio_shasta)
 		return -ENODEV;
-	if (strncmp(node->name, "i2s-", 4))
+	if (memcmp(node->name, "i2s-", 4))
 		return -ENODEV;
 	cell = node->name[4] - 'a';
 	switch(cell) {
@@ -2550,8 +2550,8 @@ found:
 #endif  /* CONFIG_POWER4 */
 
 	/* Check for "mobile" machine */
-	if (model && (strncmp(model, "PowerBook", 9) == 0
-		   || strncmp(model, "iBook", 5) == 0))
+	if (model && (memcmp(model, "PowerBook", 9) == 0
+		   || memcmp(model, "iBook", 5) == 0))
 		pmac_mb.board_flags |= PMAC_MB_MOBILE;
 
 
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c
index b0c3777..2c626f9 100644
--- a/arch/powerpc/platforms/powermac/pfunc_core.c
+++ b/arch/powerpc/platforms/powermac/pfunc_core.c
@@ -687,7 +687,7 @@ static int pmf_add_functions(struct pmf_device *dev, void *driverdata)
 
 	for (pp = dev->node->properties; pp != 0; pp = pp->next) {
 		char *name;
-		if (strncmp(pp->name, PP_PREFIX, plen) != 0)
+		if (memcmp(pp->name, PP_PREFIX, plen) != 0)
 			continue;
 		name = pp->name + plen;
 		if (strlen(name) && pp->length >= 12)
diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
index f129040..c223797 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -220,7 +220,7 @@ void __init find_udbg_vterm(void)
 	}
 
 	/* Check if it's a virtual terminal */
-	if (strncmp(name, "vty", 3) != 0)
+	if (memcmp(name, "vty", 3) != 0)
 		goto out;
 	termno = of_get_property(stdout_node, "reg", NULL);
 	if (termno == NULL)
diff --git a/arch/powerpc/platforms/pseries/phyp_dump.c b/arch/powerpc/platforms/pseries/phyp_dump.c
index 6e7742d..8d0ec01 100644
--- a/arch/powerpc/platforms/pseries/phyp_dump.c
+++ b/arch/powerpc/platforms/pseries/phyp_dump.c
@@ -493,9 +493,9 @@ static int __init early_phyp_dump_enabled(char *p)
         if (!p)
                 return 0;
 
-        if (strncmp(p, "1", 1) == 0)
+        if (memcmp(p, "1", 1) == 0)
 		phyp_dump_info->phyp_dump_at_boot = 1;
-        else if (strncmp(p, "0", 1) == 0)
+        else if (memcmp(p, "0", 1) == 0)
 		phyp_dump_info->phyp_dump_at_boot = 0;
 
         return 0;
diff --git a/arch/powerpc/platforms/pseries/scanlog.c b/arch/powerpc/platforms/pseries/scanlog.c
index 5544572..eefb26f 100644
--- a/arch/powerpc/platforms/pseries/scanlog.c
+++ b/arch/powerpc/platforms/pseries/scanlog.c
@@ -128,7 +128,7 @@ static ssize_t scanlog_write(struct file * file, const char __user * buf,
 	stkbuf[count] = 0;
 
 	if (buf) {
-		if (strncmp(stkbuf, "reset", 5) == 0) {
+		if (memcmp(stkbuf, "reset", 5) == 0) {
 			pr_debug("scanlog: reset scanlog\n");
 			status = rtas_call(ibm_scan_log_dump, 2, 1, NULL, 0, 0);
 			pr_debug("scanlog: rtas returns %d\n", status);
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index d17d04c..ffd2017 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2909,15 +2909,15 @@ static int __initdata xmon_early, xmon_off;
 
 static int __init early_parse_xmon(char *p)
 {
-	if (!p || strncmp(p, "early", 5) == 0) {
+	if (!p || memcmp(p, "early", 5) == 0) {
 		/* just "xmon" is equivalent to "xmon=early" */
 		xmon_init(1);
 		xmon_early = 1;
-	} else if (strncmp(p, "on", 2) == 0)
+	} else if (memcmp(p, "on", 2) == 0)
 		xmon_init(1);
-	else if (strncmp(p, "off", 3) == 0)
+	else if (memcmp(p, "off", 3) == 0)
 		xmon_off = 1;
-	else if (strncmp(p, "nobt", 4) == 0)
+	else if (memcmp(p, "nobt", 4) == 0)
 		xmon_no_auto_backtrace = 1;
 	else
 		return 1;
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index a689070..6240ae0 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -1004,11 +1004,11 @@ static ssize_t reipl_type_store(struct kobject *kobj,
 {
 	int rc = -EINVAL;
 
-	if (strncmp(buf, IPL_CCW_STR, strlen(IPL_CCW_STR)) == 0)
+	if (memcmp(buf, IPL_CCW_STR, strlen(IPL_CCW_STR)) == 0)
 		rc = reipl_set_type(IPL_TYPE_CCW);
-	else if (strncmp(buf, IPL_FCP_STR, strlen(IPL_FCP_STR)) == 0)
+	else if (memcmp(buf, IPL_FCP_STR, strlen(IPL_FCP_STR)) == 0)
 		rc = reipl_set_type(IPL_TYPE_FCP);
-	else if (strncmp(buf, IPL_NSS_STR, strlen(IPL_NSS_STR)) == 0)
+	else if (memcmp(buf, IPL_NSS_STR, strlen(IPL_NSS_STR)) == 0)
 		rc = reipl_set_type(IPL_TYPE_NSS);
 	return (rc != 0) ? rc : len;
 }
@@ -1368,11 +1368,11 @@ static ssize_t dump_type_store(struct kobject *kobj,
 {
 	int rc = -EINVAL;
 
-	if (strncmp(buf, DUMP_NONE_STR, strlen(DUMP_NONE_STR)) == 0)
+	if (memcmp(buf, DUMP_NONE_STR, strlen(DUMP_NONE_STR)) == 0)
 		rc = dump_set_type(DUMP_TYPE_NONE);
-	else if (strncmp(buf, DUMP_CCW_STR, strlen(DUMP_CCW_STR)) == 0)
+	else if (memcmp(buf, DUMP_CCW_STR, strlen(DUMP_CCW_STR)) == 0)
 		rc = dump_set_type(DUMP_TYPE_CCW);
-	else if (strncmp(buf, DUMP_FCP_STR, strlen(DUMP_FCP_STR)) == 0)
+	else if (memcmp(buf, DUMP_FCP_STR, strlen(DUMP_FCP_STR)) == 0)
 		rc = dump_set_type(DUMP_TYPE_FCP);
 	return (rc != 0) ? rc : len;
 }
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 6f63508..06009a3 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -143,15 +143,15 @@ static void __init set_preferred_console(void)
 static int __init conmode_setup(char *str)
 {
 #if defined(CONFIG_SCLP_CONSOLE) || defined(CONFIG_SCLP_VT220_CONSOLE)
-	if (strncmp(str, "hwc", 4) == 0 || strncmp(str, "sclp", 5) == 0)
+	if (memcmp(str, "hwc", 4) == 0 || strncmp(str, "sclp", 5) == 0)
                 SET_CONSOLE_SCLP;
 #endif
 #if defined(CONFIG_TN3215_CONSOLE)
-	if (strncmp(str, "3215", 5) == 0)
+	if (memcmp(str, "3215", 5) == 0)
 		SET_CONSOLE_3215;
 #endif
 #if defined(CONFIG_TN3270_CONSOLE)
-	if (strncmp(str, "3270", 5) == 0)
+	if (memcmp(str, "3270", 5) == 0)
 		SET_CONSOLE_3270;
 #endif
 	set_preferred_console();
@@ -186,7 +186,7 @@ static void __init conmode_default(void)
 #endif
 			return;
 		}
-		if (strncmp(ptr + 8, "3270", 4) == 0) {
+		if (memcmp(ptr + 8, "3270", 4) == 0) {
 #if defined(CONFIG_TN3270_CONSOLE)
 			SET_CONSOLE_3270;
 #elif defined(CONFIG_TN3215_CONSOLE)
@@ -194,7 +194,7 @@ static void __init conmode_default(void)
 #elif defined(CONFIG_SCLP_CONSOLE) || defined(CONFIG_SCLP_VT220_CONSOLE)
 			SET_CONSOLE_SCLP;
 #endif
-		} else if (strncmp(ptr + 8, "3215", 4) == 0) {
+		} else if (memcmp(ptr + 8, "3215", 4) == 0) {
 #if defined(CONFIG_TN3215_CONSOLE)
 			SET_CONSOLE_3215;
 #elif defined(CONFIG_TN3270_CONSOLE)
@@ -343,7 +343,7 @@ early_param("user_mode", early_parse_user_mode);
  */
 static int __init early_parse_noexec(char *p)
 {
-	if (!strncmp(p, "off", 3))
+	if (!memcmp(p, "off", 3))
 		return 0;
 	user_mode = SECONDARY_SPACE_MODE;
 	return 0;
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index f754a6d..aa7bdf6 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -403,13 +403,13 @@ static int etr_steai_available;
 
 static int __init early_parse_etr(char *p)
 {
-	if (strncmp(p, "off", 3) == 0)
+	if (memcmp(p, "off", 3) == 0)
 		etr_port0_online = etr_port1_online = 0;
-	else if (strncmp(p, "port0", 5) == 0)
+	else if (memcmp(p, "port0", 5) == 0)
 		etr_port0_online = 1;
-	else if (strncmp(p, "port1", 5) == 0)
+	else if (memcmp(p, "port1", 5) == 0)
 		etr_port1_online = 1;
-	else if (strncmp(p, "on", 2) == 0)
+	else if (memcmp(p, "on", 2) == 0)
 		etr_port0_online = etr_port1_online = 1;
 	return 0;
 }
@@ -1411,9 +1411,9 @@ static struct timer_list stp_timer;
 
 static int __init early_parse_stp(char *p)
 {
-	if (strncmp(p, "off", 3) == 0)
+	if (memcmp(p, "off", 3) == 0)
 		stp_online = 0;
-	else if (strncmp(p, "on", 2) == 0)
+	else if (memcmp(p, "on", 2) == 0)
 		stp_online = 1;
 	return 0;
 }
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c
index 94b06c3..12f8c0d 100644
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@ -276,7 +276,7 @@ static void set_topology_timer(void)
 
 static int __init early_parse_topology(char *p)
 {
-	if (strncmp(p, "off", 3))
+	if (memcmp(p, "off", 3))
 		return 0;
 	topology_enabled = 0;
 	return 0;
diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c
index e3150dd..06167cb 100644
--- a/arch/s390/kernel/vdso.c
+++ b/arch/s390/kernel/vdso.c
@@ -58,9 +58,9 @@ static int __init vdso_setup(char *s)
 	int rc;
 
 	rc = 0;
-	if (strncmp(s, "on", 3) == 0)
+	if (memcmp(s, "on", 3) == 0)
 		vdso_enabled = 1;
-	else if (strncmp(s, "off", 4) == 0)
+	else if (memcmp(s, "off", 4) == 0)
 		vdso_enabled = 0;
 	else {
 		rc = strict_strtoul(s, 0, &val);
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c
index c66ffd8..7f86e87 100644
--- a/arch/s390/mm/cmm.c
+++ b/arch/s390/mm/cmm.c
@@ -368,21 +368,21 @@ static void cmm_smsg_target(const char *from, char *msg)
 		return;
 	if (!cmm_skip_blanks(msg + strlen(SMSG_PREFIX), &msg))
 		return;
-	if (strncmp(msg, "SHRINK", 6) == 0) {
+	if (memcmp(msg, "SHRINK", 6) == 0) {
 		if (!cmm_skip_blanks(msg + 6, &msg))
 			return;
 		nr = simple_strtoul(msg, &msg, 0);
 		cmm_skip_blanks(msg, &msg);
 		if (*msg == '\0')
 			cmm_set_pages(nr);
-	} else if (strncmp(msg, "RELEASE", 7) == 0) {
+	} else if (memcmp(msg, "RELEASE", 7) == 0) {
 		if (!cmm_skip_blanks(msg + 7, &msg))
 			return;
 		nr = simple_strtoul(msg, &msg, 0);
 		cmm_skip_blanks(msg, &msg);
 		if (*msg == '\0')
 			cmm_add_timed_pages(nr);
-	} else if (strncmp(msg, "REUSE", 5) == 0) {
+	} else if (memcmp(msg, "REUSE", 5) == 0) {
 		if (!cmm_skip_blanks(msg + 5, &msg))
 			return;
 		nr = simple_strtoul(msg, &msg, 0);
diff --git a/arch/sh/drivers/pci/pci-dreamcast.c b/arch/sh/drivers/pci/pci-dreamcast.c
index 6336941..bdce2ee 100644
--- a/arch/sh/drivers/pci/pci-dreamcast.c
+++ b/arch/sh/drivers/pci/pci-dreamcast.c
@@ -66,7 +66,7 @@ static int __init gapspci_init(void)
 	for (i=0; i<16; i++)
 		idbuf[i] = inb(GAPSPCI_REGS+i);
 
-	if (strncmp(idbuf, "GAPSPCI_BRIDGE_2", 16))
+	if (memcmp(idbuf, "GAPSPCI_BRIDGE_2", 16))
 		return -ENODEV;
 
 	outl(0x5a14a501, GAPSPCI_REGS+0x18);
diff --git a/arch/sh/kernel/sh_bios.c b/arch/sh/kernel/sh_bios.c
index 47475cc..c497082 100644
--- a/arch/sh/kernel/sh_bios.c
+++ b/arch/sh/kernel/sh_bios.c
@@ -156,7 +156,7 @@ static int __init setup_early_printk(char *buf)
 	if (strstr(buf, "keep"))
 		keep_early = 1;
 
-	if (!strncmp(buf, "bios", 4))
+	if (!memcmp(buf, "bios", 4))
 		early_console = &bios_console;
 
 	if (likely(early_console)) {
diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c
index 40733a9..d32b8b3 100644
--- a/arch/sh/mm/consistent.c
+++ b/arch/sh/mm/consistent.c
@@ -113,7 +113,7 @@ static void __init memchunk_cmdline_override(char *name, unsigned long *sizep)
 
 	while ((p = strstr(p, "memchunk."))) {
 		p += 9; /* strlen("memchunk.") */
-		if (!strncmp(name, p, k) && p[k] == '=') {
+		if (!memcmp(name, p, k) && p[k] == '=') {
 			p += k + 1;
 			*sizep = memparse(p, NULL);
 			pr_info("%s: forcing memory chunk size to 0x%08lx\n",
diff --git a/arch/sparc/boot/btfixupprep.c b/arch/sparc/boot/btfixupprep.c
index da03115..cb23077 100644
--- a/arch/sparc/boot/btfixupprep.c
+++ b/arch/sparc/boot/btfixupprep.c
@@ -112,13 +112,13 @@ int main(int argc,char **argv)
 
 	symlen = strlen(symtab);
 	while (fgets (buffer, 1024, stdin) != NULL)
-		if (!strncmp (buffer, symtab, symlen))
+		if (!memcmp (buffer, symtab, symlen))
 			goto main0;
 	fatal();
 main0:
 	rellen = strlen(relrec);
 	while (fgets (buffer, 1024, stdin) != NULL)
-		if (!strncmp (buffer, relrec, rellen))
+		if (!memcmp (buffer, relrec, rellen))
 			goto main1;
 	fatal();
 main1:
@@ -132,7 +132,7 @@ main1:
 		fatal();
 	while (fgets (buffer, 1024, stdin) != NULL) {
 		int nbase;
-		if (!strncmp (buffer, relrec, rellen))
+		if (!memcmp (buffer, relrec, rellen))
 			goto main1;
 		if (mode == 0)
 			set_mode (buffer);
@@ -140,7 +140,7 @@ main1:
 		if (p) *p = 0;
 		if (strlen (buffer) < 22+mode)
 			continue;
-		if (strncmp (buffer + mode, " R_SPARC_", 9))
+		if (memcmp (buffer + mode, " R_SPARC_", 9))
 			continue;
 		nbase = 27 - 8 + mode;
 		if (buffer[nbase] != '_' || buffer[nbase+1] != '_' || buffer[nbase+2] != '_')
@@ -220,13 +220,13 @@ main1:
 				exit(1);
 			}
 			if (!strcmp (sect, "__ksymtab")) {
-				if (strncmp (buffer + mode+9, "32        ", 10)) {
+				if (memcmp (buffer + mode+9, "32        ", 10)) {
 					fprintf(stderr, "BTFIXUP_CALL in EXPORT_SYMBOL results in relocation other than R_SPARC_32\n\%s\n", buffer);
 					exit(1);
 				}
-			} else if (strncmp (buffer + mode+9, "WDISP30   ", 10) &&
-				   strncmp (buffer + mode+9, "HI22      ", 10) &&
-				   strncmp (buffer + mode+9, "LO10      ", 10)) {
+			} else if (memcmp (buffer + mode+9, "WDISP30   ", 10) &&
+				   memcmp (buffer + mode+9, "HI22      ", 10) &&
+				   memcmp (buffer + mode+9, "LO10      ", 10)) {
 				fprintf(stderr, "BTFIXUP_CALL results in relocation other than R_SPARC_WDISP30, R_SPARC_HI22 or R_SPARC_LO10\n%s\n", buffer);
 				exit(1);
 			}
@@ -236,7 +236,7 @@ main1:
 				fprintf(stderr, "Cannot use pre-initialized fixups for blackboxes\n%s\n", buffer);
 				exit(1);
 			}
-			if (strncmp (buffer + mode+9, "HI22      ", 10)) {
+			if (memcmp (buffer + mode+9, "HI22      ", 10)) {
 				fprintf(stderr, "BTFIXUP_BLACKBOX results in relocation other than R_SPARC_HI22\n%s\n", buffer);
 				exit(1);
 			}
@@ -246,7 +246,7 @@ main1:
 				fprintf(stderr, "Wrong initializer for SIMM13. Has to be from $fffff000 to $00000fff\n%s\n", buffer);
 				exit(1);
 			}
-			if (strncmp (buffer + mode+9, "13        ", 10)) {
+			if (memcmp (buffer + mode+9, "13        ", 10)) {
 				fprintf(stderr, "BTFIXUP_SIMM13 results in relocation other than R_SPARC_13\n%s\n", buffer);
 				exit(1);
 			}
@@ -256,7 +256,7 @@ main1:
 				fprintf(stderr, "Wrong initializer for HALF.\n%s\n", buffer);
 				exit(1);
 			}
-			if (strncmp (buffer + mode+9, "13        ", 10)) {
+			if (memcmp (buffer + mode+9, "13        ", 10)) {
 				fprintf(stderr, "BTFIXUP_HALF results in relocation other than R_SPARC_13\n%s\n", buffer);
 				exit(1);
 			}
@@ -266,7 +266,7 @@ main1:
 				fprintf(stderr, "Wrong initializer for SETHI. Cannot have set low 10 bits\n%s\n", buffer);
 				exit(1);
 			}
-			if (strncmp (buffer + mode+9, "HI22      ", 10)) {
+			if (memcmp (buffer + mode+9, "HI22      ", 10)) {
 				fprintf(stderr, "BTFIXUP_SETHI results in relocation other than R_SPARC_HI22\n%s\n", buffer);
 				exit(1);
 			}
@@ -276,7 +276,7 @@ main1:
 				fprintf(stderr, "Cannot use pre-initialized fixups for INT\n%s\n", buffer);
 				exit(1);
 			}
-			if (strncmp (buffer + mode+9, "HI22      ", 10) && strncmp (buffer + mode+9, "LO10      ", 10)) {
+			if (memcmp (buffer + mode+9, "HI22      ", 10) && strncmp (buffer + mode+9, "LO10      ", 10)) {
 				fprintf(stderr, "BTFIXUP_INT results in relocation other than R_SPARC_HI22 and R_SPARC_LO10\n%s\n", buffer);
 				exit(1);
 			}
@@ -300,7 +300,7 @@ main1:
 			exit(1);
 		}
 		offset = strtoul(buffer, &q, 16);
-		if (q != buffer + mode || (!offset && (mode == 8 ? strncmp (buffer, "00000000 ", 9) : strncmp (buffer, "0000000000000000 ", 17)))) {
+		if (q != buffer + mode || (!offset && (mode == 8 ? memcmp (buffer, "00000000 ", 9) : strncmp (buffer, "0000000000000000 ", 17)))) {
 			fprintf(stderr, "Malformed relocation address in\n%s\n", buffer);
 			exit(1);
 		}
diff --git a/arch/sparc/include/asm/floppy_64.h b/arch/sparc/include/asm/floppy_64.h
index 6597ce8..901e468 100644
--- a/arch/sparc/include/asm/floppy_64.h
+++ b/arch/sparc/include/asm/floppy_64.h
@@ -590,7 +590,7 @@ static unsigned long __init sun_floppy_init(void)
 			return 0;
 
 		state_prop = of_get_property(op->dev.of_node, "status", NULL);
-		if (state_prop && !strncmp(state_prop, "disabled", 8))
+		if (state_prop && !memcmp(state_prop, "disabled", 8))
 			return 0;
 
 		FLOPPY_IRQ = op->archdata.irqs[0];
@@ -717,7 +717,7 @@ static unsigned long __init sun_floppy_init(void)
 		return sun_floppy_types[0];
 	}
 	prop = of_get_property(op->dev.of_node, "status", NULL);
-	if (prop && !strncmp(state, "disabled", 8))
+	if (prop && !memcmp(state, "disabled", 8))
 		return 0;
 
 	/*
diff --git a/arch/sparc/include/asm/prom.h b/arch/sparc/include/asm/prom.h
index 56bbaad..6dc987d 100644
--- a/arch/sparc/include/asm/prom.h
+++ b/arch/sparc/include/asm/prom.h
@@ -26,7 +26,7 @@
 #define OF_ROOT_NODE_ADDR_CELLS_DEFAULT	2
 #define OF_ROOT_NODE_SIZE_CELLS_DEFAULT	1
 
-#define of_compat_cmp(s1, s2, l)	strncmp((s1), (s2), (l))
+#define of_compat_cmp(s1, s2, l)	memcmp((s1), (s2), (l))
 #define of_prop_cmp(s1, s2)		strcasecmp((s1), (s2))
 #define of_node_cmp(s1, s2)		strcmp((s1), (s2))
 
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c
index 52de4a9..f9878bf 100644
--- a/arch/sparc/kernel/apc.c
+++ b/arch/sparc/kernel/apc.c
@@ -43,7 +43,7 @@ static int apc_no_idle __devinitdata = 0;
  */
 static int __init apc_setup(char *str) 
 {
-	if(!strncmp(str, "noidle", strlen("noidle"))) {
+	if(!memcmp(str, "noidle", strlen("noidle"))) {
 		apc_no_idle = 1;
 		return 1;
 	}
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c
index a4bd7ba..d58d083 100644
--- a/arch/sparc/kernel/nmi.c
+++ b/arch/sparc/kernel/nmi.c
@@ -278,7 +278,7 @@ int __init nmi_init(void)
 
 static int __init setup_nmi_watchdog(char *str)
 {
-	if (!strncmp(str, "panic", 5))
+	if (!memcmp(str, "panic", 5))
 		panic_on_timeout = 1;
 
 	return 0;
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
index b22ce61..9a237e4 100644
--- a/arch/sparc/kernel/setup_32.c
+++ b/arch/sparc/kernel/setup_32.c
@@ -158,7 +158,7 @@ static void __init boot_flags_init(char *commands)
 				process_switch(*commands++);
 			continue;
 		}
-		if (!strncmp(commands, "mem=", 4)) {
+		if (!memcmp(commands, "mem=", 4)) {
 			/*
 			 * "mem=XXX[kKmM] overrides the PROM-reported
 			 * memory size.
@@ -233,7 +233,7 @@ void __init setup_arch(char **cmdline_p)
 		sparc_cpu_model = sun4e;
 	if (!strcmp(&cputypval,"sun4u"))
 		sparc_cpu_model = sun4u;
-	if (!strncmp(&cputypval, "leon" , 4))
+	if (!memcmp(&cputypval, "leon" , 4))
 		sparc_cpu_model = sparc_leon;
 
 	printk("ARCH: ");
diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c
index 29bafe0..cdd1874 100644
--- a/arch/sparc/kernel/setup_64.c
+++ b/arch/sparc/kernel/setup_64.c
@@ -138,7 +138,7 @@ static void __init boot_flags_init(char *commands)
 				process_switch(*commands++);
 			continue;
 		}
-		if (!strncmp(commands, "mem=", 4)) {
+		if (!memcmp(commands, "mem=", 4)) {
 			/*
 			 * "mem=XXX[kKmM]" overrides the PROM-reported
 			 * memory size.
diff --git a/arch/sparc/kernel/tadpole.c b/arch/sparc/kernel/tadpole.c
index 9aba8bd..a1fc7f1 100644
--- a/arch/sparc/kernel/tadpole.c
+++ b/arch/sparc/kernel/tadpole.c
@@ -104,7 +104,7 @@ void __init clock_stop_probe(void)
 	char name[20];
     
 	prom_getstring(prom_root_node, "name", name, sizeof(name));
-	if (strncmp(name, "Tadpole", 7))
+	if (memcmp(name, "Tadpole", 7))
 		return;
 	node = prom_getchild(prom_root_node);
 	node = prom_searchsiblings(node, "obio");
diff --git a/arch/tile/kernel/early_printk.c b/arch/tile/kernel/early_printk.c
index 493a0e6..0bbd74e 100644
--- a/arch/tile/kernel/early_printk.c
+++ b/arch/tile/kernel/early_printk.c
@@ -71,7 +71,7 @@ static int __init setup_early_printk(char *str)
 	if (early_console_initialized)
 		return 1;
 
-	if (str != NULL && strncmp(str, "keep", 4) == 0)
+	if (str != NULL && memcmp(str, "keep", 4) == 0)
 		keep_early = 1;
 
 	early_console = &early_hv_console;
diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c
index 0b9ce69..e15514f 100644
--- a/arch/tile/mm/init.c
+++ b/arch/tile/mm/init.c
@@ -363,7 +363,7 @@ static int __init setup_ktext(char *str)
 		return -EINVAL;
 
 	/* If you have a leading "nocache", turn off ktext caching */
-	if (strncmp(str, "nocache", 7) == 0) {
+	if (memcmp(str, "nocache", 7) == 0) {
 		ktext_nocache = 1;
 		pr_info("ktext: disabling local caching of kernel text\n");
 		str += 7;
diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c
index 25e1965..d031c26 100644
--- a/arch/um/drivers/chan_kern.c
+++ b/arch/um/drivers/chan_kern.c
@@ -502,7 +502,7 @@ static struct chan *parse_chan(struct line *line, char *str, int device,
 	data = NULL;
 	for(i = 0; i < ARRAY_SIZE(chan_table); i++) {
 		entry = &chan_table[i];
-		if (!strncmp(str, entry->key, strlen(entry->key))) {
+		if (!memcmp(str, entry->key, strlen(entry->key))) {
 			ops = entry->ops;
 			str += strlen(entry->key);
 			break;
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c
index 975613b..922c880 100644
--- a/arch/um/drivers/mconsole_kern.c
+++ b/arch/um/drivers/mconsole_kern.c
@@ -338,7 +338,7 @@ static struct mc_device *mconsole_find_dev(char *name)
 
 	list_for_each(ele, &mconsole_devices) {
 		dev = list_entry(ele, struct mc_device, list);
-		if (!strncmp(name, dev->name, strlen(dev->name)))
+		if (!memcmp(name, dev->name, strlen(dev->name)))
 			return dev;
 	}
 	return NULL;
@@ -880,7 +880,7 @@ __initcall(create_proc_mconsole);
 
 static int mconsole_setup(char *str)
 {
-	if (!strncmp(str, NOTIFY, strlen(NOTIFY))) {
+	if (!memcmp(str, NOTIFY, strlen(NOTIFY))) {
 		str += strlen(NOTIFY);
 		notify_socket = str;
 	}
diff --git a/arch/um/drivers/mconsole_user.c b/arch/um/drivers/mconsole_user.c
index f8cf4c8..b0f6f10 100644
--- a/arch/um/drivers/mconsole_user.c
+++ b/arch/um/drivers/mconsole_user.c
@@ -65,7 +65,7 @@ static struct mconsole_command *mconsole_parse(struct mc_request *req)
 
 	for (i = 0; i < ARRAY_SIZE(commands); i++) {
 		cmd = &commands[i];
-		if (!strncmp(req->request.data, cmd->command,
+		if (!memcmp(req->request.data, cmd->command,
 			    strlen(cmd->command))) {
 			return cmd;
 		}
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c
index 47d0c37..1a050a9 100644
--- a/arch/um/drivers/net_kern.c
+++ b/arch/um/drivers/net_kern.c
@@ -560,7 +560,7 @@ static int check_transport(struct transport *transport, char *eth, int n,
 	int len;
 
 	len = strlen(transport->name);
-	if (strncmp(eth, transport->name, len))
+	if (memcmp(eth, transport->name, len))
 		return 0;
 
 	eth += len;
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
index 8d84250..62d1baa 100644
--- a/arch/um/kernel/um_arch.c
+++ b/arch/um/kernel/um_arch.c
@@ -205,7 +205,7 @@ static void __init uml_checksetup(char *line, int *add)
 		size_t n;
 
 		n = strlen(p->str);
-		if (!strncmp(line, p->str, n) && p->setup_func(line + n, add))
+		if (!memcmp(line, p->str, n) && p->setup_func(line + n, add))
 			return;
 		p++;
 	}
diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c
index e696144..7f3096c 100644
--- a/arch/um/os-Linux/mem.c
+++ b/arch/um/os-Linux/mem.c
@@ -129,7 +129,7 @@ static void which_tmpdir(void)
 		if (found != 1)
 			break;
 
-		if (!strncmp(buf, "/dev/shm", strlen("/dev/shm")))
+		if (!memcmp(buf, "/dev/shm", strlen("/dev/shm")))
 			goto found;
 
 		found = next(fd, buf, ARRAY_SIZE(buf), '\n');
@@ -153,7 +153,7 @@ found:
 	if (found != 1)
 		goto err;
 
-	if (strncmp(buf, "tmpfs", strlen("tmpfs"))) {
+	if (memcmp(buf, "tmpfs", strlen("tmpfs"))) {
 		printf("not tmpfs\n");
 		goto out;
 	}
diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
index 5852519..8c2358b 100644
--- a/arch/x86/ia32/sys_ia32.c
+++ b/arch/x86/ia32/sys_ia32.c
@@ -502,7 +502,7 @@ long sys32_vm86_warning(void)
 	struct task_struct *me = current;
 	static char lastcomm[sizeof(me->comm)];
 
-	if (strncmp(lastcomm, me->comm, sizeof(lastcomm))) {
+	if (memcmp(lastcomm, me->comm, sizeof(lastcomm))) {
 		compat_printk(KERN_INFO
 			      "%s: vm86 mode not supported on 64 bit kernel\n",
 			      me->comm);
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index 69fd72a..75dc003 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -153,24 +153,24 @@ void __init acpi_reserve_wakeup_memory(void)
 static int __init acpi_sleep_setup(char *str)
 {
 	while ((str != NULL) && (*str != '\0')) {
-		if (strncmp(str, "s3_bios", 7) == 0)
+		if (memcmp(str, "s3_bios", 7) == 0)
 			acpi_realmode_flags |= 1;
-		if (strncmp(str, "s3_mode", 7) == 0)
+		if (memcmp(str, "s3_mode", 7) == 0)
 			acpi_realmode_flags |= 2;
-		if (strncmp(str, "s3_beep", 7) == 0)
+		if (memcmp(str, "s3_beep", 7) == 0)
 			acpi_realmode_flags |= 4;
 #ifdef CONFIG_HIBERNATION
-		if (strncmp(str, "s4_nohwsig", 10) == 0)
+		if (memcmp(str, "s4_nohwsig", 10) == 0)
 			acpi_no_s4_hw_signature();
-		if (strncmp(str, "s4_nonvs", 8) == 0) {
+		if (memcmp(str, "s4_nonvs", 8) == 0) {
 			pr_warning("ACPI: acpi_sleep=s4_nonvs is deprecated, "
 					"please use acpi_sleep=nonvs instead");
 			acpi_nvs_nosave();
 		}
 #endif
-		if (strncmp(str, "nonvs", 5) == 0)
+		if (memcmp(str, "nonvs", 5) == 0)
 			acpi_nvs_nosave();
-		if (strncmp(str, "old_ordering", 12) == 0)
+		if (memcmp(str, "old_ordering", 12) == 0)
 			acpi_old_suspend_ordering();
 		str = strchr(str, ',');
 		if (str != NULL)
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index 6e11c81..0989dba 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -1536,9 +1536,9 @@ static int __init parse_amd_iommu_dump(char *str)
 static int __init parse_amd_iommu_options(char *str)
 {
 	for (; *str; ++str) {
-		if (strncmp(str, "fullflush", 9) == 0)
+		if (memcmp(str, "fullflush", 9) == 0)
 			amd_iommu_unmap_flush = true;
-		if (strncmp(str, "off", 3) == 0)
+		if (memcmp(str, "off", 3) == 0)
 			amd_iommu_disabled = true;
 	}
 
diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
index b3a16e8..3fb2c87 100644
--- a/arch/x86/kernel/aperture_64.c
+++ b/arch/x86/kernel/aperture_64.c
@@ -259,9 +259,9 @@ static int __init parse_gart_mem(char *p)
 	if (!p)
 		return -EINVAL;
 
-	if (!strncmp(p, "off", 3))
+	if (!memcmp(p, "off", 3))
 		gart_fix_e820 = 0;
-	else if (!strncmp(p, "on", 2))
+	else if (!memcmp(p, "on", 2))
 		gart_fix_e820 = 1;
 
 	return 0;
diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
index 09d3b17..182badb 100644
--- a/arch/x86/kernel/apic/apic_flat_64.c
+++ b/arch/x86/kernel/apic/apic_flat_64.c
@@ -241,7 +241,7 @@ static int physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 		return 1;
 	}
 
-	if (!strncmp(oem_id, "IBM", 3) && !strncmp(oem_table_id, "EXA", 3)) {
+	if (!memcmp(oem_id, "IBM", 3) && !strncmp(oem_table_id, "EXA", 3)) {
 		printk(KERN_DEBUG "IBM Summit detected, will use apic physical");
 		return 1;
 	}
diff --git a/arch/x86/kernel/apic/es7000_32.c b/arch/x86/kernel/apic/es7000_32.c
index 8593582..ed83451 100644
--- a/arch/x86/kernel/apic/es7000_32.c
+++ b/arch/x86/kernel/apic/es7000_32.c
@@ -282,7 +282,7 @@ static int es7000_check_dsdt(void)
 	struct acpi_table_header header;
 
 	if (ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_DSDT, 0, &header)) &&
-	    !strncmp(header.oem_id, "UNISYS", 6))
+	    !memcmp(header.oem_id, "UNISYS", 6))
 		return 1;
 	return 0;
 }
@@ -614,7 +614,7 @@ static int es7000_mps_oem_check(struct mpc_table *mpc, char *oem,
 		struct mpc_oemtable *oem_table =
 			(struct mpc_oemtable *)mpc->oemptr;
 
-		if (!strncmp(oem, "UNISYS", 6))
+		if (!memcmp(oem, "UNISYS", 6))
 			ret = parse_unisys_oem((char *)oem_table);
 	}
 
diff --git a/arch/x86/kernel/apic/nmi.c b/arch/x86/kernel/apic/nmi.c
index c90041c..e972632 100644
--- a/arch/x86/kernel/apic/nmi.c
+++ b/arch/x86/kernel/apic/nmi.c
@@ -192,7 +192,7 @@ static int __init setup_nmi_watchdog(char *str)
 {
 	unsigned int nmi;
 
-	if (!strncmp(str, "panic", 5)) {
+	if (!memcmp(str, "panic", 5)) {
 		panic_on_timeout = 1;
 		str = strchr(str, ',');
 		if (!str)
@@ -200,9 +200,9 @@ static int __init setup_nmi_watchdog(char *str)
 		++str;
 	}
 
-	if (!strncmp(str, "lapic", 5))
+	if (!memcmp(str, "lapic", 5))
 		nmi_watchdog = NMI_LOCAL_APIC;
-	else if (!strncmp(str, "ioapic", 6))
+	else if (!memcmp(str, "ioapic", 6))
 		nmi_watchdog = NMI_IO_APIC;
 	else {
 		get_option(&str, &nmi);
diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c
index 960f26a..ff98d23 100644
--- a/arch/x86/kernel/apic/numaq_32.c
+++ b/arch/x86/kernel/apic/numaq_32.c
@@ -439,7 +439,7 @@ static inline int numaq_phys_pkg_id(int cpuid_apic, int index_msb)
 static int
 numaq_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
 {
-	if (strncmp(oem, "IBM NUMA", 8))
+	if (memcmp(oem, "IBM NUMA", 8))
 		printk(KERN_ERR "Warning! Not a NUMA-Q system!\n");
 	else
 		found_numaq = 1;
diff --git a/arch/x86/kernel/apic/summit_32.c b/arch/x86/kernel/apic/summit_32.c
index 9b41926..c761142 100644
--- a/arch/x86/kernel/apic/summit_32.c
+++ b/arch/x86/kernel/apic/summit_32.c
@@ -80,10 +80,10 @@ static inline void setup_summit(void) {}
 static int summit_mps_oem_check(struct mpc_table *mpc, char *oem,
 		char *productid)
 {
-	if (!strncmp(oem, "IBM ENSW", 8) &&
-			(!strncmp(productid, "VIGIL SMP", 9)
-			 || !strncmp(productid, "EXA", 3)
-			 || !strncmp(productid, "RUTHLESS SMP", 12))){
+	if (!memcmp(oem, "IBM ENSW", 8) &&
+			(!memcmp(productid, "VIGIL SMP", 9)
+			 || !memcmp(productid, "EXA", 3)
+			 || !memcmp(productid, "RUTHLESS SMP", 12))){
 		mark_tsc_unstable("Summit based system");
 		use_cyclone = 1; /*enable cyclone-timer*/
 		setup_summit();
@@ -95,9 +95,9 @@ static int summit_mps_oem_check(struct mpc_table *mpc, char *oem,
 /* Hook from generic ACPI tables.c */
 static int summit_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
 {
-	if (!strncmp(oem_id, "IBM", 3) &&
-	    (!strncmp(oem_table_id, "SERVIGIL", 8)
-	     || !strncmp(oem_table_id, "EXA", 3))){
+	if (!memcmp(oem_id, "IBM", 3) &&
+	    (!memcmp(oem_table_id, "SERVIGIL", 8)
+	     || !memcmp(oem_table_id, "EXA", 3))){
 		mark_tsc_unstable("Summit based system");
 		use_cyclone = 1; /*enable cyclone-timer*/
 		setup_summit();
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
index 0e4f24c..a783133 100644
--- a/arch/x86/kernel/apm_32.c
+++ b/arch/x86/kernel/apm_32.c
@@ -1874,40 +1874,40 @@ static int __init apm_setup(char *str)
 	int invert;
 
 	while ((str != NULL) && (*str != '\0')) {
-		if (strncmp(str, "off", 3) == 0)
+		if (memcmp(str, "off", 3) == 0)
 			apm_disabled = 1;
-		if (strncmp(str, "on", 2) == 0)
+		if (memcmp(str, "on", 2) == 0)
 			apm_disabled = 0;
-		if ((strncmp(str, "bounce-interval=", 16) == 0) ||
-		    (strncmp(str, "bounce_interval=", 16) == 0))
+		if ((memcmp(str, "bounce-interval=", 16) == 0) ||
+		    (memcmp(str, "bounce_interval=", 16) == 0))
 			bounce_interval = simple_strtol(str + 16, NULL, 0);
-		if ((strncmp(str, "idle-threshold=", 15) == 0) ||
-		    (strncmp(str, "idle_threshold=", 15) == 0))
+		if ((memcmp(str, "idle-threshold=", 15) == 0) ||
+		    (memcmp(str, "idle_threshold=", 15) == 0))
 			idle_threshold = simple_strtol(str + 15, NULL, 0);
-		if ((strncmp(str, "idle-period=", 12) == 0) ||
-		    (strncmp(str, "idle_period=", 12) == 0))
+		if ((memcmp(str, "idle-period=", 12) == 0) ||
+		    (memcmp(str, "idle_period=", 12) == 0))
 			idle_period = simple_strtol(str + 12, NULL, 0);
-		invert = (strncmp(str, "no-", 3) == 0) ||
-			(strncmp(str, "no_", 3) == 0);
+		invert = (memcmp(str, "no-", 3) == 0) ||
+			(memcmp(str, "no_", 3) == 0);
 		if (invert)
 			str += 3;
-		if (strncmp(str, "debug", 5) == 0)
+		if (memcmp(str, "debug", 5) == 0)
 			debug = !invert;
-		if ((strncmp(str, "power-off", 9) == 0) ||
-		    (strncmp(str, "power_off", 9) == 0))
+		if ((memcmp(str, "power-off", 9) == 0) ||
+		    (memcmp(str, "power_off", 9) == 0))
 			power_off = !invert;
-		if (strncmp(str, "smp", 3) == 0) {
+		if (memcmp(str, "smp", 3) == 0) {
 			smp = !invert;
 			idle_threshold = 100;
 		}
-		if ((strncmp(str, "allow-ints", 10) == 0) ||
-		    (strncmp(str, "allow_ints", 10) == 0))
+		if ((memcmp(str, "allow-ints", 10) == 0) ||
+		    (memcmp(str, "allow_ints", 10) == 0))
 			apm_info.allow_ints = !invert;
-		if ((strncmp(str, "broken-psr", 10) == 0) ||
-		    (strncmp(str, "broken_psr", 10) == 0))
+		if ((memcmp(str, "broken-psr", 10) == 0) ||
+		    (memcmp(str, "broken_psr", 10) == 0))
 			apm_info.get_power_status_broken = !invert;
-		if ((strncmp(str, "realmode-power-off", 18) == 0) ||
-		    (strncmp(str, "realmode_power_off", 18) == 0))
+		if ((memcmp(str, "realmode-power-off", 18) == 0) ||
+		    (memcmp(str, "realmode_power_off", 18) == 0))
 			apm_info.realmode_power_off = !invert;
 		str = strchr(str, ',');
 		if (str != NULL)
diff --git a/arch/x86/kernel/cpu/mtrr/if.c b/arch/x86/kernel/cpu/mtrr/if.c
index 7928963..4373ccb 100644
--- a/arch/x86/kernel/cpu/mtrr/if.c
+++ b/arch/x86/kernel/cpu/mtrr/if.c
@@ -123,7 +123,7 @@ mtrr_write(struct file *file, const char __user *buf, size_t len, loff_t * ppos)
 	if (linelen && *ptr == '\n')
 		*ptr = '\0';
 
-	if (!strncmp(line, "disable=", 8)) {
+	if (!memcmp(line, "disable=", 8)) {
 		reg = simple_strtoul(line + 8, &ptr, 0);
 		err = mtrr_del_page(reg, 0, 0);
 		if (err < 0)
@@ -131,13 +131,13 @@ mtrr_write(struct file *file, const char __user *buf, size_t len, loff_t * ppos)
 		return len;
 	}
 
-	if (strncmp(line, "base=", 5))
+	if (memcmp(line, "base=", 5))
 		return -EINVAL;
 
 	base = simple_strtoull(line + 5, &ptr, 0);
 	ptr = skip_spaces(ptr);
 
-	if (strncmp(ptr, "size=", 5))
+	if (memcmp(ptr, "size=", 5))
 		return -EINVAL;
 
 	size = simple_strtoull(ptr + 5, &ptr, 0);
@@ -145,7 +145,7 @@ mtrr_write(struct file *file, const char __user *buf, size_t len, loff_t * ppos)
 		return -EINVAL;
 	ptr = skip_spaces(ptr);
 
-	if (strncmp(ptr, "type=", 5))
+	if (memcmp(ptr, "type=", 5))
 		return -EINVAL;
 	ptr = skip_spaces(ptr + 5);
 
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 0c2b7ef..5f0ce9d 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -869,7 +869,7 @@ static int __init parse_memmap_opt(char *p)
 	if (!p)
 		return -EINVAL;
 
-	if (!strncmp(p, "exactmap", 8)) {
+	if (!memcmp(p, "exactmap", 8)) {
 #ifdef CONFIG_CRASH_DUMP
 		/*
 		 * If we are doing a crash dump, we still need to know
diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
index 4572f25..b321a13 100644
--- a/arch/x86/kernel/early_printk.c
+++ b/arch/x86/kernel/early_printk.c
@@ -126,12 +126,12 @@ static __init void early_serial_init(char *s)
 
 	if (*s) {
 		unsigned port;
-		if (!strncmp(s, "0x", 2)) {
+		if (!memcmp(s, "0x", 2)) {
 			early_serial_base = simple_strtoul(s, &e, 16);
 		} else {
 			static const int __initconst bases[] = { 0x3f8, 0x2f8 };
 
-			if (!strncmp(s, "ttyS", 4))
+			if (!memcmp(s, "ttyS", 4))
 				s += 4;
 			port = simple_strtoul(s, &e, 10);
 			if (port > 1 || s == e)
@@ -214,18 +214,18 @@ static int __init setup_early_printk(char *buf)
 	keep = (strstr(buf, "keep") != NULL);
 
 	while (*buf != '\0') {
-		if (!strncmp(buf, "serial", 6)) {
+		if (!memcmp(buf, "serial", 6)) {
 			buf += 6;
 			early_serial_init(buf);
 			early_console_register(&early_serial_console, keep);
-			if (!strncmp(buf, ",ttyS", 5))
+			if (!memcmp(buf, ",ttyS", 5))
 				buf += 5;
 		}
-		if (!strncmp(buf, "ttyS", 4)) {
+		if (!memcmp(buf, "ttyS", 4)) {
 			early_serial_init(buf + 4);
 			early_console_register(&early_serial_console, keep);
 		}
-		if (!strncmp(buf, "vga", 3) &&
+		if (!memcmp(buf, "vga", 3) &&
 		    boot_params.screen_info.orig_video_isVGA == 1) {
 			max_xpos = boot_params.screen_info.orig_video_cols;
 			max_ypos = boot_params.screen_info.orig_video_lines;
@@ -233,20 +233,20 @@ static int __init setup_early_printk(char *buf)
 			early_console_register(&early_vga_console, keep);
 		}
 #ifdef CONFIG_EARLY_PRINTK_DBGP
-		if (!strncmp(buf, "dbgp", 4) && !early_dbgp_init(buf + 4))
+		if (!memcmp(buf, "dbgp", 4) && !early_dbgp_init(buf + 4))
 			early_console_register(&early_dbgp_console, keep);
 #endif
 #ifdef CONFIG_HVC_XEN
-		if (!strncmp(buf, "xen", 3))
+		if (!memcmp(buf, "xen", 3))
 			early_console_register(&xenboot_console, keep);
 #endif
 #ifdef CONFIG_X86_MRST_EARLY_PRINTK
-		if (!strncmp(buf, "mrst", 4)) {
+		if (!memcmp(buf, "mrst", 4)) {
 			mrst_early_console_init();
 			early_console_register(&early_mrst_console, keep);
 		}
 
-		if (!strncmp(buf, "hsu", 3)) {
+		if (!memcmp(buf, "hsu", 3)) {
 			hsu_early_console_init();
 			early_console_register(&early_hsu_console, keep);
 		}
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index ae03cab..98df834 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -88,11 +88,11 @@ static int hpet_verbose;
 static int __init hpet_setup(char *str)
 {
 	if (str) {
-		if (!strncmp("disable", str, 7))
+		if (!memcmp("disable", str, 7))
 			boot_hpet_disable = 1;
-		if (!strncmp("force", str, 5))
+		if (!memcmp("force", str, 5))
 			hpet_force_user = 1;
-		if (!strncmp("verbose", str, 7))
+		if (!memcmp("verbose", str, 7))
 			hpet_verbose = 1;
 	}
 	return 1;
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index 9af64d9..df7208a 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -95,21 +95,21 @@ static void __init MP_bus_info(struct mpc_bus *m)
 	}
 #endif
 
-	if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA) - 1) == 0) {
+	if (memcmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA) - 1) == 0) {
 		set_bit(m->busid, mp_bus_not_pci);
 #if defined(CONFIG_EISA) || defined(CONFIG_MCA)
 		mp_bus_id_to_type[m->busid] = MP_BUS_ISA;
 #endif
-	} else if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI) - 1) == 0) {
+	} else if (memcmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI) - 1) == 0) {
 		if (x86_init.mpparse.mpc_oem_pci_bus)
 			x86_init.mpparse.mpc_oem_pci_bus(m);
 
 		clear_bit(m->busid, mp_bus_not_pci);
 #if defined(CONFIG_EISA) || defined(CONFIG_MCA)
 		mp_bus_id_to_type[m->busid] = MP_BUS_PCI;
-	} else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA) - 1) == 0) {
+	} else if (memcmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA) - 1) == 0) {
 		mp_bus_id_to_type[m->busid] = MP_BUS_EISA;
-	} else if (strncmp(str, BUSTYPE_MCA, sizeof(BUSTYPE_MCA) - 1) == 0) {
+	} else if (memcmp(str, BUSTYPE_MCA, sizeof(BUSTYPE_MCA) - 1) == 0) {
 		mp_bus_id_to_type[m->busid] = MP_BUS_MCA;
 #endif
 	} else
diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
index f56a117..46a9d9e 100644
--- a/arch/x86/kernel/pci-calgary_64.c
+++ b/arch/x86/kernel/pci-calgary_64.c
@@ -1484,29 +1484,29 @@ static int __init calgary_parse_options(char *p)
 	char* endp;
 
 	while (*p) {
-		if (!strncmp(p, "64k", 3))
+		if (!memcmp(p, "64k", 3))
 			specified_table_size = TCE_TABLE_SIZE_64K;
-		else if (!strncmp(p, "128k", 4))
+		else if (!memcmp(p, "128k", 4))
 			specified_table_size = TCE_TABLE_SIZE_128K;
-		else if (!strncmp(p, "256k", 4))
+		else if (!memcmp(p, "256k", 4))
 			specified_table_size = TCE_TABLE_SIZE_256K;
-		else if (!strncmp(p, "512k", 4))
+		else if (!memcmp(p, "512k", 4))
 			specified_table_size = TCE_TABLE_SIZE_512K;
-		else if (!strncmp(p, "1M", 2))
+		else if (!memcmp(p, "1M", 2))
 			specified_table_size = TCE_TABLE_SIZE_1M;
-		else if (!strncmp(p, "2M", 2))
+		else if (!memcmp(p, "2M", 2))
 			specified_table_size = TCE_TABLE_SIZE_2M;
-		else if (!strncmp(p, "4M", 2))
+		else if (!memcmp(p, "4M", 2))
 			specified_table_size = TCE_TABLE_SIZE_4M;
-		else if (!strncmp(p, "8M", 2))
+		else if (!memcmp(p, "8M", 2))
 			specified_table_size = TCE_TABLE_SIZE_8M;
 
 		len = strlen("translate_empty_slots");
-		if (!strncmp(p, "translate_empty_slots", len))
+		if (!memcmp(p, "translate_empty_slots", len))
 			translate_empty_slots = 1;
 
 		len = strlen("disable");
-		if (!strncmp(p, "disable", len)) {
+		if (!memcmp(p, "disable", len)) {
 			p += len;
 			if (*p == '=')
 				++p;
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 9ea999a..a5b07e1 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -192,51 +192,51 @@ static __init int iommu_setup(char *p)
 		return -EINVAL;
 
 	while (*p) {
-		if (!strncmp(p, "off", 3))
+		if (!memcmp(p, "off", 3))
 			no_iommu = 1;
 		/* gart_parse_options has more force support */
-		if (!strncmp(p, "force", 5))
+		if (!memcmp(p, "force", 5))
 			force_iommu = 1;
-		if (!strncmp(p, "noforce", 7)) {
+		if (!memcmp(p, "noforce", 7)) {
 			iommu_merge = 0;
 			force_iommu = 0;
 		}
 
-		if (!strncmp(p, "biomerge", 8)) {
+		if (!memcmp(p, "biomerge", 8)) {
 			iommu_merge = 1;
 			force_iommu = 1;
 		}
-		if (!strncmp(p, "panic", 5))
+		if (!memcmp(p, "panic", 5))
 			panic_on_overflow = 1;
-		if (!strncmp(p, "nopanic", 7))
+		if (!memcmp(p, "nopanic", 7))
 			panic_on_overflow = 0;
-		if (!strncmp(p, "merge", 5)) {
+		if (!memcmp(p, "merge", 5)) {
 			iommu_merge = 1;
 			force_iommu = 1;
 		}
-		if (!strncmp(p, "nomerge", 7))
+		if (!memcmp(p, "nomerge", 7))
 			iommu_merge = 0;
-		if (!strncmp(p, "forcesac", 8))
+		if (!memcmp(p, "forcesac", 8))
 			iommu_sac_force = 1;
-		if (!strncmp(p, "allowdac", 8))
+		if (!memcmp(p, "allowdac", 8))
 			forbid_dac = 0;
-		if (!strncmp(p, "nodac", 5))
+		if (!memcmp(p, "nodac", 5))
 			forbid_dac = 1;
-		if (!strncmp(p, "usedac", 6)) {
+		if (!memcmp(p, "usedac", 6)) {
 			forbid_dac = -1;
 			return 1;
 		}
 #ifdef CONFIG_SWIOTLB
-		if (!strncmp(p, "soft", 4))
+		if (!memcmp(p, "soft", 4))
 			swiotlb = 1;
 #endif
-		if (!strncmp(p, "pt", 2))
+		if (!memcmp(p, "pt", 2))
 			iommu_pass_through = 1;
 
 		gart_parse_options(p);
 
 #ifdef CONFIG_CALGARY_IOMMU
-		if (!strncmp(p, "calgary", 7))
+		if (!memcmp(p, "calgary", 7))
 			use_calgary = 1;
 #endif /* CONFIG_CALGARY_IOMMU */
 
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c
index ba0f0ca..def8ce1 100644
--- a/arch/x86/kernel/pci-gart_64.c
+++ b/arch/x86/kernel/pci-gart_64.c
@@ -872,7 +872,7 @@ void __init gart_parse_options(char *p)
 	int arg;
 
 #ifdef CONFIG_IOMMU_LEAK
-	if (!strncmp(p, "leak", 4)) {
+	if (!memcmp(p, "leak", 4)) {
 		leak_trace = 1;
 		p += 4;
 		if (*p == '=')
@@ -883,20 +883,20 @@ void __init gart_parse_options(char *p)
 #endif
 	if (isdigit(*p) && get_option(&p, &arg))
 		iommu_size = arg;
-	if (!strncmp(p, "fullflush", 9))
+	if (!memcmp(p, "fullflush", 9))
 		iommu_fullflush = 1;
-	if (!strncmp(p, "nofullflush", 11))
+	if (!memcmp(p, "nofullflush", 11))
 		iommu_fullflush = 0;
-	if (!strncmp(p, "noagp", 5))
+	if (!memcmp(p, "noagp", 5))
 		no_agp = 1;
-	if (!strncmp(p, "noaperture", 10))
+	if (!memcmp(p, "noaperture", 10))
 		fix_aperture = 0;
 	/* duplicated from pci-dma.c */
-	if (!strncmp(p, "force", 5))
+	if (!memcmp(p, "force", 5))
 		gart_iommu_aperture_allowed = 1;
-	if (!strncmp(p, "allowed", 7))
+	if (!memcmp(p, "allowed", 7))
 		gart_iommu_aperture_allowed = 1;
-	if (!strncmp(p, "memaper", 7)) {
+	if (!memcmp(p, "memaper", 7)) {
 		fallback_aper_force = 1;
 		p += 7;
 		if (*p == '=') {
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 21c6746..b30bba3 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -755,7 +755,7 @@ void __init setup_arch(char **cmdline_p)
 	rd_doload = ((boot_params.hdr.ram_size & RAMDISK_LOAD_FLAG) != 0);
 #endif
 #ifdef CONFIG_EFI
-	if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature,
+	if (!memcmp((char *)&boot_params.efi_info.efi_loader_signature,
 #ifdef CONFIG_X86_32
 		     "EL32",
 #else
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 0c40d8b..663f314 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -110,7 +110,7 @@ static int __init tsc_setup(char *str)
 {
 	if (!strcmp(str, "reliable"))
 		tsc_clocksource_reliable = 1;
-	if (!strncmp(str, "noirqtime", 9))
+	if (!memcmp(str, "noirqtime", 9))
 		no_sched_irq_time = 1;
 	return 1;
 }
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index 7ffc9b7..baf1ee2 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -665,14 +665,14 @@ static __init int numa_setup(char *opt)
 {
 	if (!opt)
 		return -EINVAL;
-	if (!strncmp(opt, "off", 3))
+	if (!memcmp(opt, "off", 3))
 		numa_off = 1;
 #ifdef CONFIG_NUMA_EMU
-	if (!strncmp(opt, "fake=", 5))
+	if (!memcmp(opt, "fake=", 5))
 		cmdline = opt + 5;
 #endif
 #ifdef CONFIG_ACPI_NUMA
-	if (!strncmp(opt, "noacpi", 6))
+	if (!memcmp(opt, "noacpi", 6))
 		acpi_numa = -1;
 #endif
 	return 0;
diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
index a3250aa..174d099 100644
--- a/arch/x86/mm/setup_nx.c
+++ b/arch/x86/mm/setup_nx.c
@@ -19,9 +19,9 @@ static int __init noexec_setup(char *str)
 {
 	if (!str)
 		return -EINVAL;
-	if (!strncmp(str, "on", 2)) {
+	if (!memcmp(str, "on", 2)) {
 		disable_nx = 0;
-	} else if (!strncmp(str, "off", 3)) {
+	} else if (!memcmp(str, "off", 3)) {
 		disable_nx = 1;
 	}
 	x86_configure_nx();
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index f7c8a39..5b8c1eb 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -478,7 +478,7 @@ char * __devinit  pcibios_setup(char *str)
 	} else if (!strcmp(str, "biosirq")) {
 		pci_probe |= PCI_BIOS_IRQ_SCAN;
 		return NULL;
-	} else if (!strncmp(str, "pirqaddr=", 9)) {
+	} else if (!memcmp(str, "pirqaddr=", 9)) {
 		pirq_table_addr = simple_strtoul(str+9, NULL, 0);
 		return NULL;
 	}
@@ -515,10 +515,10 @@ char * __devinit  pcibios_setup(char *str)
 	else if (!strcmp(str, "usepirqmask")) {
 		pci_probe |= PCI_USE_PIRQ_MASK;
 		return NULL;
-	} else if (!strncmp(str, "irqmask=", 8)) {
+	} else if (!memcmp(str, "irqmask=", 8)) {
 		pcibios_irq_mask = simple_strtol(str+8, NULL, 0);
 		return NULL;
-	} else if (!strncmp(str, "lastbus=", 8)) {
+	} else if (!memcmp(str, "lastbus=", 8)) {
 		pcibios_last_bus = simple_strtol(str+8, NULL, 0);
 		return NULL;
 	}
diff --git a/arch/x86/platform/olpc/olpc.c b/arch/x86/platform/olpc/olpc.c
index edaf3fe..d4c648e 100644
--- a/arch/x86/platform/olpc/olpc.c
+++ b/arch/x86/platform/olpc/olpc.c
@@ -198,7 +198,7 @@ static bool __init check_ofw_architecture(void)
 		printk(KERN_ERR "ofw: getprop call failed!\n");
 		return false;
 	}
-	return propsize == 5 && strncmp("OLPC", olpc_arch, 5) == 0;
+	return propsize == 5 && memcmp("OLPC", olpc_arch, 5) == 0;
 }
 
 static u32 __init get_board_revision(void)
diff --git a/arch/x86/platform/uv/bios_uv.c b/arch/x86/platform/uv/bios_uv.c
index 8bc57ba..128d2da 100644
--- a/arch/x86/platform/uv/bios_uv.c
+++ b/arch/x86/platform/uv/bios_uv.c
@@ -197,7 +197,7 @@ void uv_bios_init(void)
 
 	tab = (struct uv_systab *)ioremap(efi.uv_systab,
 					sizeof(struct uv_systab));
-	if (strncmp(tab->signature, "UVST", 4) != 0)
+	if (memcmp(tab->signature, "UVST", 4) != 0)
 		printk(KERN_ERR "bad signature in UV system table!");
 
 	/*
diff --git a/arch/x86/xen/platform-pci-unplug.c b/arch/x86/xen/platform-pci-unplug.c
index 0f45638..08c9804 100644
--- a/arch/x86/xen/platform-pci-unplug.c
+++ b/arch/x86/xen/platform-pci-unplug.c
@@ -121,17 +121,17 @@ static int __init parse_xen_emul_unplug(char *arg)
 		} else {
 			l = strlen(p);
 		}
-		if (!strncmp(p, "all", l))
+		if (!memcmp(p, "all", l))
 			xen_emul_unplug |= XEN_UNPLUG_ALL;
-		else if (!strncmp(p, "ide-disks", l))
+		else if (!memcmp(p, "ide-disks", l))
 			xen_emul_unplug |= XEN_UNPLUG_ALL_IDE_DISKS;
-		else if (!strncmp(p, "aux-ide-disks", l))
+		else if (!memcmp(p, "aux-ide-disks", l))
 			xen_emul_unplug |= XEN_UNPLUG_AUX_IDE_DISKS;
-		else if (!strncmp(p, "nics", l))
+		else if (!memcmp(p, "nics", l))
 			xen_emul_unplug |= XEN_UNPLUG_ALL_NICS;
-		else if (!strncmp(p, "unnecessary", l))
+		else if (!memcmp(p, "unnecessary", l))
 			xen_emul_unplug |= XEN_UNPLUG_UNNECESSARY;
-		else if (!strncmp(p, "never", l))
+		else if (!memcmp(p, "never", l))
 			xen_emul_unplug |= XEN_UNPLUG_NEVER;
 		else
 			printk(KERN_WARNING "unrecognised option '%s' "
diff --git a/arch/xtensa/platforms/iss/network.c b/arch/xtensa/platforms/iss/network.c
index f717e20..ae4fb29 100644
--- a/arch/xtensa/platforms/iss/network.c
+++ b/arch/xtensa/platforms/iss/network.c
@@ -313,7 +313,7 @@ static int tuntap_probe(struct iss_net_private *lp, int index, char *init)
 
 	/* Transport should be 'tuntap': ethX=tuntap,mac,dev_name */
 
-	if (strncmp(init, TRANSPORT_TUNTAP_NAME, len))
+	if (memcmp(init, TRANSPORT_TUNTAP_NAME, len))
 		return 0;
 
 	if (*(init += strlen(TRANSPORT_TUNTAP_NAME)) == ',') {
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
index af308d0..e4354c7 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -121,12 +121,12 @@ int __init acpi_blacklisted(void)
 			continue;
 		}
 
-		if (strncmp(acpi_blacklist[i].oem_id, table_header.oem_id, 6)) {
+		if (memcmp(acpi_blacklist[i].oem_id, table_header.oem_id, 6)) {
 			i++;
 			continue;
 		}
 
-		if (strncmp
+		if (memcmp
 		    (acpi_blacklist[i].oem_table_id, table_header.oem_table_id,
 		     8)) {
 			i++;
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 966fedd..4c817ac 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -481,7 +481,7 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
 	*new_table = NULL;
 
 #ifdef CONFIG_ACPI_CUSTOM_DSDT
-	if (strncmp(existing_table->signature, "DSDT", 4) == 0)
+	if (memcmp(existing_table->signature, "DSDT", 4) == 0)
 		*new_table = (struct acpi_table_header *)AmlCode;
 #endif
 	if (*new_table != NULL) {
diff --git a/drivers/acpi/proc.c b/drivers/acpi/proc.c
index afad677..28c2197 100644
--- a/drivers/acpi/proc.c
+++ b/drivers/acpi/proc.c
@@ -360,7 +360,7 @@ acpi_system_write_wakeup_device(struct file *file,
 		if (!dev->wakeup.flags.valid)
 			continue;
 
-		if (!strncmp(dev->pnp.bus_id, str, 4)) {
+		if (!memcmp(dev->pnp.bus_id, str, 4)) {
 			dev->wakeup.state.enabled =
 			    dev->wakeup.state.enabled ? 0 : 1;
 			found_dev = dev;
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
index f8588f8..c58ff2a 100644
--- a/drivers/acpi/sysfs.c
+++ b/drivers/acpi/sysfs.c
@@ -173,7 +173,7 @@ static int param_set_trace_state(const char *val, struct kernel_param *kp)
 {
 	int result = 0;
 
-	if (!strncmp(val, "enable", strlen("enable") - 1)) {
+	if (!memcmp(val, "enable", strlen("enable") - 1)) {
 		result = acpi_debug_trace(trace_method_name, trace_debug_level,
 					  trace_debug_layer, 0);
 		if (result)
@@ -181,7 +181,7 @@ static int param_set_trace_state(const char *val, struct kernel_param *kp)
 		goto exit;
 	}
 
-	if (!strncmp(val, "disable", strlen("disable") - 1)) {
+	if (!memcmp(val, "disable", strlen("disable") - 1)) {
 		int name = 0;
 		result = acpi_debug_trace((char *)&name, trace_debug_level,
 					  trace_debug_layer, 0);
@@ -190,7 +190,7 @@ static int param_set_trace_state(const char *val, struct kernel_param *kp)
 		goto exit;
 	}
 
-	if (!strncmp(val, "1", 1)) {
+	if (!memcmp(val, "1", 1)) {
 		result = acpi_debug_trace(trace_method_name, trace_debug_level,
 					  trace_debug_layer, 1);
 		if (result)
@@ -259,7 +259,7 @@ static ssize_t acpi_table_show(struct file *filp, struct kobject *kobj,
 	acpi_status status;
 	char name[ACPI_NAME_SIZE];
 
-	if (strncmp(table_attr->name, "NULL", 4))
+	if (memcmp(table_attr->name, "NULL", 4))
 		memcpy(name, table_attr->name, ACPI_NAME_SIZE);
 	else
 		memcpy(name, "\0\0\0\0", 4);
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index f336bca..387d86f 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -219,7 +219,7 @@ acpi_table_parse_entries(char *id,
 	if (!handler)
 		return -EINVAL;
 
-	if (strncmp(id, ACPI_SIG_MADT, 4) == 0)
+	if (memcmp(id, ACPI_SIG_MADT, 4) == 0)
 		acpi_get_table_with_size(id, acpi_apic_instance, &table_header, &tbl_size);
 	else
 		acpi_get_table_with_size(id, 0, &table_header, &tbl_size);
@@ -286,7 +286,7 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler)
 	if (!handler)
 		return -EINVAL;
 
-	if (strncmp(id, ACPI_SIG_MADT, 4) == 0)
+	if (memcmp(id, ACPI_SIG_MADT, 4) == 0)
 		acpi_get_table_with_size(id, acpi_apic_instance, &table, &tbl_size);
 	else
 		acpi_get_table_with_size(id, 0, &table, &tbl_size);
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 66aa4be..65a438b 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -124,7 +124,7 @@ static ssize_t ata_scsi_lpm_store(struct device *dev,
 	     policy < ARRAY_SIZE(ata_lpm_policy_names); policy++) {
 		const char *name = ata_lpm_policy_names[policy];
 
-		if (strncmp(name, buf, strlen(name)) == 0)
+		if (memcmp(name, buf, strlen(name)) == 0)
 			break;
 	}
 	if (policy == ARRAY_SIZE(ata_lpm_policy_names))
diff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c
index 75b49d0..4d8643e 100644
--- a/drivers/ata/pata_macio.c
+++ b/drivers/ata/pata_macio.c
@@ -483,12 +483,12 @@ static int pata_macio_cable_detect(struct ata_port *ap)
 		struct device_node *root = of_find_node_by_path("/");
 		const char *model = of_get_property(root, "model", NULL);
 
-		if (cable && !strncmp(cable, "80-", 3)) {
+		if (cable && !memcmp(cable, "80-", 3)) {
 			/* Some drives fail to detect 80c cable in PowerBook
 			 * These machine use proprietary short IDE cable
 			 * anyway
 			 */
-			if (!strncmp(model, "PowerBook", 9))
+			if (!memcmp(model, "PowerBook", 9))
 				return ATA_CBL_PATA40_SHORT;
 			else
 				return ATA_CBL_PATA80;
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index 7254e25..9d3d8ca 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -1956,7 +1956,7 @@ static int nv_swncq_slave_config(struct scsi_device *sdev)
 
 	ata_id_c_string(dev->id, model_num, ATA_ID_PROD, sizeof(model_num));
 
-	if (strncmp(model_num, "Maxtor", 6) == 0) {
+	if (memcmp(model_num, "Maxtor", 6) == 0) {
 		ata_scsi_change_queue_depth(sdev, 1, SCSI_QDEPTH_DEFAULT);
 		ata_dev_printk(dev, KERN_NOTICE,
 			"Disabling SWNCQ mode (depth %x)\n", sdev->queue_depth);
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
index 2e08c99..b435838 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
@@ -292,9 +292,9 @@ static ssize_t solos_param_store(struct device *dev, struct device_attribute *at
 	if (skb->data[buflen - 1] == '\n')
 		buflen--;
 
-	if (buflen == 2 && !strncmp(skb->data, "OK", 2))
+	if (buflen == 2 && !memcmp(skb->data, "OK", 2))
 		ret = count;
-	else if (buflen == 5 && !strncmp(skb->data, "ERROR", 5))
+	else if (buflen == 5 && !memcmp(skb->data, "ERROR", 5))
 		ret = -EIO;
 	else {
 		/* We know we have enough space allocated for this; we allocated 
diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index cafeaaf..1d4b772 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -271,9 +271,9 @@ store_mem_state(struct sys_device *dev,
 	if (!present_section_nr(phys_section_nr))
 		goto out;
 
-	if (!strncmp(buf, "online", min((int)count, 6)))
+	if (!memcmp(buf, "online", min((int)count, 6)))
 		ret = memory_block_change_state(mem, MEM_ONLINE, MEM_OFFLINE);
-	else if(!strncmp(buf, "offline", min((int)count, 7)))
+	else if(!memcmp(buf, "offline", min((int)count, 7)))
 		ret = memory_block_change_state(mem, MEM_OFFLINE, MEM_ONLINE);
 out:
 	if (ret)
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index f051cff..851cbcb 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -1077,7 +1077,7 @@ int __init early_platform_driver_register(struct early_platform_driver *epdrv,
 	 * command line will be put first on the list.
 	 */
 	n = strlen(epdrv->pdrv->driver.name);
-	if (buf && !strncmp(buf, epdrv->pdrv->driver.name, n)) {
+	if (buf && !memcmp(buf, epdrv->pdrv->driver.name, n)) {
 		list_move(&epdrv->list, &early_platform_driver_list);
 
 		/* Allow passing parameters after device name */
diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
index 0b1e46b..53a3982 100644
--- a/drivers/base/power/sysfs.c
+++ b/drivers/base/power/sysfs.c
@@ -116,9 +116,9 @@ static ssize_t control_store(struct device * dev, struct device_attribute *attr,
 	cp = memchr(buf, '\n', n);
 	if (cp)
 		len = cp - buf;
-	if (len == sizeof ctrl_auto - 1 && strncmp(buf, ctrl_auto, len) == 0)
+	if (len == sizeof ctrl_auto - 1 && memcmp(buf, ctrl_auto, len) == 0)
 		pm_runtime_allow(dev);
-	else if (len == sizeof ctrl_on - 1 && strncmp(buf, ctrl_on, len) == 0)
+	else if (len == sizeof ctrl_on - 1 && memcmp(buf, ctrl_on, len) == 0)
 		pm_runtime_forbid(dev);
 	else
 		return -EINVAL;
@@ -236,10 +236,10 @@ wake_store(struct device * dev, struct device_attribute *attr,
 	if (cp)
 		len = cp - buf;
 	if (len == sizeof enabled - 1
-			&& strncmp(buf, enabled, sizeof enabled - 1) == 0)
+			&& memcmp(buf, enabled, sizeof enabled - 1) == 0)
 		device_set_wakeup_enable(dev, 1);
 	else if (len == sizeof disabled - 1
-			&& strncmp(buf, disabled, sizeof disabled - 1) == 0)
+			&& memcmp(buf, disabled, sizeof disabled - 1) == 0)
 		device_set_wakeup_enable(dev, 0);
 	else
 		return -EINVAL;
@@ -419,9 +419,9 @@ static ssize_t async_store(struct device *dev, struct device_attribute *attr,
 	cp = memchr(buf, '\n', n);
 	if (cp)
 		len = cp - buf;
-	if (len == sizeof enabled - 1 && strncmp(buf, enabled, len) == 0)
+	if (len == sizeof enabled - 1 && memcmp(buf, enabled, len) == 0)
 		device_enable_async_suspend(dev);
-	else if (len == sizeof disabled - 1 && strncmp(buf, disabled, len) == 0)
+	else if (len == sizeof disabled - 1 && memcmp(buf, disabled, len) == 0)
 		device_disable_async_suspend(dev);
 	else
 		return -EINVAL;
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c
index 1f286ab..f41a925 100644
--- a/drivers/block/DAC960.c
+++ b/drivers/block/DAC960.c
@@ -5979,7 +5979,7 @@ static bool DAC960_V1_ExecuteUserCommand(DAC960_Controller_T *Controller,
       DAC960_ExecuteCommand(Command);
       DAC960_UserCritical("Cache Flush Completed\n", Controller);
     }
-  else if (strncmp(UserCommand, "kill", 4) == 0 &&
+  else if (memcmp(UserCommand, "kill", 4) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[4],
 				      &Channel, &TargetID))
     {
@@ -5993,7 +5993,7 @@ static bool DAC960_V1_ExecuteUserCommand(DAC960_Controller_T *Controller,
       else DAC960_UserCritical("Kill of Physical Device %d:%d Illegal\n",
 			       Controller, Channel, TargetID);
     }
-  else if (strncmp(UserCommand, "make-online", 11) == 0 &&
+  else if (memcmp(UserCommand, "make-online", 11) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[11],
 				      &Channel, &TargetID))
     {
@@ -6008,7 +6008,7 @@ static bool DAC960_V1_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			       Controller, Channel, TargetID);
 
     }
-  else if (strncmp(UserCommand, "make-standby", 12) == 0 &&
+  else if (memcmp(UserCommand, "make-standby", 12) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[12],
 				      &Channel, &TargetID))
     {
@@ -6023,7 +6023,7 @@ static bool DAC960_V1_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			       "Device %d:%d Illegal\n",
 			       Controller, Channel, TargetID);
     }
-  else if (strncmp(UserCommand, "rebuild", 7) == 0 &&
+  else if (memcmp(UserCommand, "rebuild", 7) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[7],
 				      &Channel, &TargetID))
     {
@@ -6065,7 +6065,7 @@ static bool DAC960_V1_ExecuteUserCommand(DAC960_Controller_T *Controller,
 	  break;
 	}
     }
-  else if (strncmp(UserCommand, "check-consistency", 17) == 0 &&
+  else if (memcmp(UserCommand, "check-consistency", 17) == 0 &&
 	   DAC960_ParseLogicalDrive(Controller, &UserCommand[17],
 				    &LogicalDriveNumber))
     {
@@ -6247,7 +6247,7 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
       DAC960_ExecuteCommand(Command);
       DAC960_UserCritical("Cache Flush Completed\n", Controller);
     }
-  else if (strncmp(UserCommand, "kill", 4) == 0 &&
+  else if (memcmp(UserCommand, "kill", 4) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[4],
 				      &Channel, &TargetID) &&
 	   DAC960_V2_TranslatePhysicalDevice(Command, Channel, TargetID,
@@ -6266,7 +6266,7 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			   == DAC960_V2_NormalCompletion
 			   ? "Succeeded" : "Failed"));
     }
-  else if (strncmp(UserCommand, "make-online", 11) == 0 &&
+  else if (memcmp(UserCommand, "make-online", 11) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[11],
 				      &Channel, &TargetID) &&
 	   DAC960_V2_TranslatePhysicalDevice(Command, Channel, TargetID,
@@ -6285,7 +6285,7 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			   == DAC960_V2_NormalCompletion
 			   ? "Succeeded" : "Failed"));
     }
-  else if (strncmp(UserCommand, "make-standby", 12) == 0 &&
+  else if (memcmp(UserCommand, "make-standby", 12) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[12],
 				      &Channel, &TargetID) &&
 	   DAC960_V2_TranslatePhysicalDevice(Command, Channel, TargetID,
@@ -6304,7 +6304,7 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			   == DAC960_V2_NormalCompletion
 			   ? "Succeeded" : "Failed"));
     }
-  else if (strncmp(UserCommand, "rebuild", 7) == 0 &&
+  else if (memcmp(UserCommand, "rebuild", 7) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[7],
 				      &Channel, &TargetID) &&
 	   DAC960_V2_TranslatePhysicalDevice(Command, Channel, TargetID,
@@ -6321,7 +6321,7 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			   == DAC960_V2_NormalCompletion
 			   ? "Initiated" : "Not Initiated"));
     }
-  else if (strncmp(UserCommand, "cancel-rebuild", 14) == 0 &&
+  else if (memcmp(UserCommand, "cancel-rebuild", 14) == 0 &&
 	   DAC960_ParsePhysicalDevice(Controller, &UserCommand[14],
 				      &Channel, &TargetID) &&
 	   DAC960_V2_TranslatePhysicalDevice(Command, Channel, TargetID,
@@ -6338,7 +6338,7 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			   == DAC960_V2_NormalCompletion
 			   ? "Cancelled" : "Not Cancelled"));
     }
-  else if (strncmp(UserCommand, "check-consistency", 17) == 0 &&
+  else if (memcmp(UserCommand, "check-consistency", 17) == 0 &&
 	   DAC960_ParseLogicalDrive(Controller, &UserCommand[17],
 				    &LogicalDriveNumber))
     {
@@ -6358,7 +6358,7 @@ static bool DAC960_V2_ExecuteUserCommand(DAC960_Controller_T *Controller,
 			   == DAC960_V2_NormalCompletion
 			   ? "Initiated" : "Not Initiated"));
     }
-  else if (strncmp(UserCommand, "cancel-consistency-check", 24) == 0 &&
+  else if (memcmp(UserCommand, "cancel-consistency-check", 24) == 0 &&
 	   DAC960_ParseLogicalDrive(Controller, &UserCommand[24],
 				    &LogicalDriveNumber))
     {
diff --git a/drivers/block/aoe/aoedev.c b/drivers/block/aoe/aoedev.c
index 6b5110a..b2f5a43 100644
--- a/drivers/block/aoe/aoedev.c
+++ b/drivers/block/aoe/aoedev.c
@@ -133,7 +133,7 @@ aoedev_flush(const char __user *str, size_t cnt)
 			cnt = sizeof buf;
 		if (copy_from_user(buf, str, cnt))
 			return -EFAULT;
-		all = !strncmp(buf, "all", 3);
+		all = !memcmp(buf, "all", 3);
 	}
 
 	spin_lock_irqsave(&devlist_lock, flags);
diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c
index 4d3bc0d..6512bc5 100644
--- a/drivers/block/aoe/aoenet.c
+++ b/drivers/block/aoe/aoenet.c
@@ -61,7 +61,7 @@ is_aoe_netif(struct net_device *ifp)
 		else
 			len = strlen(p); /* last token in aoe_iflist */
 
-		if (strlen(ifp->name) == len && !strncmp(ifp->name, p, len))
+		if (strlen(ifp->name) == len && !memcmp(ifp->name, p, len))
 			return 1;
 		if (q == p)
 			break;
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index f291587..24763ce 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -510,7 +510,7 @@ cciss_proc_write(struct file *file, const char __user *buf,
 	buffer[length] = '\0';
 
 #ifdef CONFIG_CISS_SCSI_TAPE
-	if (strncmp(ENGAGE_SCSI, buffer, sizeof ENGAGE_SCSI - 1) == 0) {
+	if (memcmp(ENGAGE_SCSI, buffer, sizeof ENGAGE_SCSI - 1) == 0) {
 		struct seq_file *seq = file->private_data;
 		ctlr_info_t *h = seq->private;
 
diff --git a/drivers/block/cciss_scsi.c b/drivers/block/cciss_scsi.c
index 727d022..b3bbe14 100644
--- a/drivers/block/cciss_scsi.c
+++ b/drivers/block/cciss_scsi.c
@@ -1244,7 +1244,7 @@ cciss_update_non_disk_devices(ctlr_info_t *h, int hostno)
 
 				strncpy(obdr_sig, &inq_buff[43], 6);
 				obdr_sig[6] = '\0';
-				if (strncmp(obdr_sig, OBDR_TAPE_SIG, 6) != 0)
+				if (memcmp(obdr_sig, OBDR_TAPE_SIG, 6) != 0)
 					/* Not OBDR device, ignore it. */
 					break;
 			}
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 4f9e22f..2804b26 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -857,7 +857,7 @@ static int blkfront_probe(struct xenbus_device *dev,
 		type = xenbus_read(XBT_NIL, dev->nodename, "device-type", &len);
 		if (IS_ERR(type))
 			return -ENODEV;
-		if (strncmp(type, "cdrom", 5) == 0) {
+		if (memcmp(type, "cdrom", 5) == 0) {
 			kfree(type);
 			return -ENODEV;
 		}
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c
index be73a9b..88f519d 100644
--- a/drivers/cdrom/viocd.c
+++ b/drivers/cdrom/viocd.c
@@ -562,7 +562,7 @@ static int find_capability(const char *type)
 	struct capability_entry *entry;
 
 	for(entry = capability_table; entry->type; ++entry)
-		if(!strncmp(entry->type, type, 4))
+		if(!memcmp(entry->type, type, 4))
 			break;
 	return entry->capability;
 }
diff --git a/drivers/char/apm-emulation.c b/drivers/char/apm-emulation.c
index 45b987c..fce4a41 100644
--- a/drivers/char/apm-emulation.c
+++ b/drivers/char/apm-emulation.c
@@ -712,9 +712,9 @@ MODULE_LICENSE("GPL");
 static int __init apm_setup(char *str)
 {
 	while ((str != NULL) && (*str != '\0')) {
-		if (strncmp(str, "off", 3) == 0)
+		if (memcmp(str, "off", 3) == 0)
 			apm_disabled = 1;
-		if (strncmp(str, "on", 2) == 0)
+		if (memcmp(str, "on", 2) == 0)
 			apm_disabled = 0;
 		str = strchr(str, ',');
 		if (str != NULL)
diff --git a/drivers/char/briq_panel.c b/drivers/char/briq_panel.c
index 095ab90..3b1a4dc 100644
--- a/drivers/char/briq_panel.c
+++ b/drivers/char/briq_panel.c
@@ -201,7 +201,7 @@ static int __init briq_panel_init(void)
 	int i;
 
 	machine = of_get_property(root, "model", NULL);
-	if (!machine || strncmp(machine, "TotalImpact,BRIQ-1", 18) != 0) {
+	if (!machine || memcmp(machine, "TotalImpact,BRIQ-1", 18) != 0) {
 		of_node_put(root);
 		return -ENODEV;
 	}
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c
index 4f152c2..d77292f 100644
--- a/drivers/char/cyclades.c
+++ b/drivers/char/cyclades.c
@@ -3496,7 +3496,7 @@ static int __devinit __cyz_load_fw(const struct firmware *fw,
 		return -EINVAL;
 	}
 
-	if (strncmp(name, h->name, sizeof(h->name))) {
+	if (memcmp(name, h->name, sizeof(h->name))) {
 		printk(BAD_FW "bad name '%s' (expected '%s')\n", h->name, name);
 		return -EINVAL;
 	}
diff --git a/drivers/char/epca.c b/drivers/char/epca.c
index d9df46a..9475709 100644
--- a/drivers/char/epca.c
+++ b/drivers/char/epca.c
@@ -2524,9 +2524,9 @@ static void __init epca_setup(char *str, int *ints)
 		switch (index) {
 		case 1:
 			len = strlen(str);
-			if (strncmp("Disable", str, len) == 0)
+			if (memcmp("Disable", str, len) == 0)
 				board.status = 0;
-			else if (strncmp("Enable", str, len) == 0)
+			else if (memcmp("Enable", str, len) == 0)
 				board.status = 1;
 			else {
 				printk(KERN_ERR "epca_setup: Invalid status %s\n", str);
@@ -2558,9 +2558,9 @@ static void __init epca_setup(char *str, int *ints)
 
 		case 3:
 			len = strlen(str);
-			if (strncmp("Disable", str, len) == 0)
+			if (memcmp("Disable", str, len) == 0)
 				board.altpin = 0;
-			else if (strncmp("Enable", str, len) == 0)
+			else if (memcmp("Enable", str, len) == 0)
 				board.altpin = 1;
 			else {
 				printk(KERN_ERR "epca_setup: Invalid altpin %s\n", str);
diff --git a/drivers/char/i8k.c b/drivers/char/i8k.c
index d72433f..173aceb 100644
--- a/drivers/char/i8k.c
+++ b/drivers/char/i8k.c
@@ -569,7 +569,7 @@ static int __init i8k_probe(void)
 		/*
 		 * Check if the two versions match.
 		 */
-		if (strncmp(buff, bios_version, sizeof(bios_version)) != 0)
+		if (memcmp(buff, bios_version, sizeof(bios_version)) != 0)
 			printk(KERN_WARNING "i8k: BIOS version mismatch: %s != %s\n",
 				buff, bios_version);
 	}
diff --git a/drivers/char/ip2/ip2main.c b/drivers/char/ip2/ip2main.c
index fcd02ba..dba18cb 100644
--- a/drivers/char/ip2/ip2main.c
+++ b/drivers/char/ip2/ip2main.c
@@ -559,7 +559,7 @@ static int __init ip2_loadmain(void)
 	}
 
 	/* Check module parameter with 'ip2=' has been passed or not */
-	if (!poll_only && (!strncmp(str, "ip2=", 4)))
+	if (!poll_only && (!memcmp(str, "ip2=", 4)))
 		ip2_setup(str);
 
 	ip2trace(ITRC_NO_PORT, ITRC_INIT, ITRC_ENTER, 0);
diff --git a/drivers/char/lp.c b/drivers/char/lp.c
index 97c3edb..b62a76a 100644
--- a/drivers/char/lp.c
+++ b/drivers/char/lp.c
@@ -848,7 +848,7 @@ static int __init lp_setup (char *str)
 			printk(KERN_WARNING "warning: 'lp=0x%x' is deprecated, ignored\n", x);
 			return 0;
 		}
-	} else if (!strncmp(str, "parport", 7)) {
+	} else if (!memcmp(str, "parport", 7)) {
 		int n = simple_strtoul(str+7, NULL, 10);
 		if (parport_ptr < LP_NO)
 			parport_nr[parport_ptr++] = n;
@@ -1010,12 +1010,12 @@ static int __init lp_init_module (void)
 {
 	if (parport[0]) {
 		/* The user gave some parameters.  Let's see what they were.  */
-		if (!strncmp(parport[0], "auto", 4))
+		if (!memcmp(parport[0], "auto", 4))
 			parport_nr[0] = LP_PARPORT_AUTO;
 		else {
 			int n;
 			for (n = 0; n < LP_NO && parport[n]; n++) {
-				if (!strncmp(parport[n], "none", 4))
+				if (!memcmp(parport[n], "none", 4))
 					parport_nr[n] = LP_PARPORT_NONE;
 				else {
 					char *ep;
diff --git a/drivers/char/rio/rio_linux.c b/drivers/char/rio/rio_linux.c
index 5e33293..f60d612 100644
--- a/drivers/char/rio/rio_linux.c
+++ b/drivers/char/rio/rio_linux.c
@@ -1095,7 +1095,7 @@ static int __init rio_init(void)
 		vpdp = get_VPD_PROM(hp);
 		rio_dprintk(RIO_DEBUG_PROBE, "Got VPD ROM\n");
 		okboard = 0;
-		if ((strncmp(vpdp->identifier, RIO_ISA_IDENT, 16) == 0) || (strncmp(vpdp->identifier, RIO_ISA2_IDENT, 16) == 0) || (strncmp(vpdp->identifier, RIO_ISA3_IDENT, 16) == 0)) {
+		if ((memcmp(vpdp->identifier, RIO_ISA_IDENT, 16) == 0) || (strncmp(vpdp->identifier, RIO_ISA2_IDENT, 16) == 0) || (strncmp(vpdp->identifier, RIO_ISA3_IDENT, 16) == 0)) {
 			/* Board is present... */
 			if (RIOBoardTest(hp->PaddrP, hp->Caddr, RIO_AT, 0) == 0) {
 				/* ... and feeling fine!!!! */
diff --git a/drivers/char/sx.c b/drivers/char/sx.c
index a786326..b238db1 100644
--- a/drivers/char/sx.c
+++ b/drivers/char/sx.c
@@ -2189,7 +2189,7 @@ static int __devinit probe_sx(struct sx_board *board)
 
 		sx_dprintk(SX_DEBUG_PROBE, "checking identifier...\n");
 
-		if (strncmp(vpdp.identifier, SX_VPD_IDENT_STRING, 16) != 0) {
+		if (memcmp(vpdp.identifier, SX_VPD_IDENT_STRING, 16) != 0) {
 			sx_dprintk(SX_DEBUG_PROBE, "Got non-SX identifier: "
 					"'%s'\n", vpdp.identifier);
 			return 0;
diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
index a84250a..9be1d7b 100644
--- a/drivers/crypto/hifn_795x.c
+++ b/drivers/crypto/hifn_795x.c
@@ -977,7 +977,7 @@ static void hifn_init_pll(struct hifn_device *dev)
 
 	pllcfg = HIFN_1_PLL | HIFN_PLL_RESERVED_1;
 
-	if (strncmp(hifn_pll_ref, "ext", 3) == 0)
+	if (memcmp(hifn_pll_ref, "ext", 3) == 0)
 		pllcfg |= HIFN_PLL_REF_CLK_PLL;
 	else
 		pllcfg |= HIFN_PLL_REF_CLK_HBI;
@@ -2749,8 +2749,8 @@ static int __init hifn_init(void)
 		return -EINVAL;
 	}
 
-	if (strncmp(hifn_pll_ref, "ext", 3) &&
-	    strncmp(hifn_pll_ref, "pci", 3)) {
+	if (memcmp(hifn_pll_ref, "ext", 3) &&
+	    memcmp(hifn_pll_ref, "pci", 3)) {
 		printk(KERN_ERR "hifn795x: invalid hifn_pll_ref clock, "
 				"must be pci or ext");
 		return -EINVAL;
diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index 96c25d9..3952a5b 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -147,20 +147,20 @@ edd_show_host_bus(struct edd_device *edev, char *buf)
 		}
 	}
 
-	if (!strncmp(info->params.host_bus_type, "ISA", 3)) {
+	if (!memcmp(info->params.host_bus_type, "ISA", 3)) {
 		p += scnprintf(p, left, "\tbase_address: %x\n",
 			     info->params.interface_path.isa.base_address);
-	} else if (!strncmp(info->params.host_bus_type, "PCIX", 4) ||
-		   !strncmp(info->params.host_bus_type, "PCI", 3)) {
+	} else if (!memcmp(info->params.host_bus_type, "PCIX", 4) ||
+		   !memcmp(info->params.host_bus_type, "PCI", 3)) {
 		p += scnprintf(p, left,
 			     "\t%02x:%02x.%d  channel: %u\n",
 			     info->params.interface_path.pci.bus,
 			     info->params.interface_path.pci.slot,
 			     info->params.interface_path.pci.function,
 			     info->params.interface_path.pci.channel);
-	} else if (!strncmp(info->params.host_bus_type, "IBND", 4) ||
-		   !strncmp(info->params.host_bus_type, "XPRS", 4) ||
-		   !strncmp(info->params.host_bus_type, "HTPT", 4)) {
+	} else if (!memcmp(info->params.host_bus_type, "IBND", 4) ||
+		   !memcmp(info->params.host_bus_type, "XPRS", 4) ||
+		   !memcmp(info->params.host_bus_type, "HTPT", 4)) {
 		p += scnprintf(p, left,
 			     "\tTBD: %llx\n",
 			     info->params.interface_path.ibnd.reserved);
@@ -192,34 +192,34 @@ edd_show_interface(struct edd_device *edev, char *buf)
 			p += scnprintf(p, left, " ");
 		}
 	}
-	if (!strncmp(info->params.interface_type, "ATAPI", 5)) {
+	if (!memcmp(info->params.interface_type, "ATAPI", 5)) {
 		p += scnprintf(p, left, "\tdevice: %u  lun: %u\n",
 			     info->params.device_path.atapi.device,
 			     info->params.device_path.atapi.lun);
-	} else if (!strncmp(info->params.interface_type, "ATA", 3)) {
+	} else if (!memcmp(info->params.interface_type, "ATA", 3)) {
 		p += scnprintf(p, left, "\tdevice: %u\n",
 			     info->params.device_path.ata.device);
-	} else if (!strncmp(info->params.interface_type, "SCSI", 4)) {
+	} else if (!memcmp(info->params.interface_type, "SCSI", 4)) {
 		p += scnprintf(p, left, "\tid: %u  lun: %llu\n",
 			     info->params.device_path.scsi.id,
 			     info->params.device_path.scsi.lun);
-	} else if (!strncmp(info->params.interface_type, "USB", 3)) {
+	} else if (!memcmp(info->params.interface_type, "USB", 3)) {
 		p += scnprintf(p, left, "\tserial_number: %llx\n",
 			     info->params.device_path.usb.serial_number);
-	} else if (!strncmp(info->params.interface_type, "1394", 4)) {
+	} else if (!memcmp(info->params.interface_type, "1394", 4)) {
 		p += scnprintf(p, left, "\teui: %llx\n",
 			     info->params.device_path.i1394.eui);
-	} else if (!strncmp(info->params.interface_type, "FIBRE", 5)) {
+	} else if (!memcmp(info->params.interface_type, "FIBRE", 5)) {
 		p += scnprintf(p, left, "\twwid: %llx lun: %llx\n",
 			     info->params.device_path.fibre.wwid,
 			     info->params.device_path.fibre.lun);
-	} else if (!strncmp(info->params.interface_type, "I2O", 3)) {
+	} else if (!memcmp(info->params.interface_type, "I2O", 3)) {
 		p += scnprintf(p, left, "\tidentity_tag: %llx\n",
 			     info->params.device_path.i2o.identity_tag);
-	} else if (!strncmp(info->params.interface_type, "RAID", 4)) {
+	} else if (!memcmp(info->params.interface_type, "RAID", 4)) {
 		p += scnprintf(p, left, "\tidentity_tag: %x\n",
 			     info->params.device_path.raid.array_number);
-	} else if (!strncmp(info->params.interface_type, "SATA", 4)) {
+	} else if (!memcmp(info->params.interface_type, "SATA", 4)) {
 		p += scnprintf(p, left, "\tdevice: %u\n",
 			     info->params.device_path.sata.device);
 	} else {
@@ -650,8 +650,8 @@ edd_dev_is_type(struct edd_device *edev, const char *type)
 	info = edd_dev_get_info(edev);
 
 	if (type && info) {
-		if (!strncmp(info->params.host_bus_type, type, strlen(type)) ||
-		    !strncmp(info->params.interface_type, type, strlen(type)))
+		if (!memcmp(info->params.host_bus_type, type, strlen(type)) ||
+		    !memcmp(info->params.interface_type, type, strlen(type)))
 			return 1;
 	}
 	return 0;
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index a245d17..3cfa597 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -372,7 +372,7 @@ static bool edid_vendor(struct edid *edid, char *vendor)
 			  ((edid->mfg_id[1] & 0xe0) >> 5)) + '@';
 	edid_vendor[2] = (edid->mfg_id[1] & 0x1f) + '@';
 
-	return !strncmp(edid_vendor, vendor, 3);
+	return !memcmp(edid_vendor, vendor, 3);
 }
 
 /**
diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c b/drivers/gpu/drm/nouveau/nouveau_pm.c
index 9f7b158..5f3128f 100644
--- a/drivers/gpu/drm/nouveau/nouveau_pm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_pm.c
@@ -91,7 +91,7 @@ nouveau_pm_profile_set(struct drm_device *dev, const char *profile)
 	if (!pm->clock_set)
 		return -EINVAL;
 
-	if (!strncmp(profile, "boot", 4))
+	if (!memcmp(profile, "boot", 4))
 		perflvl = &pm->boot;
 	else {
 		int pl = simple_strtol(profile, NULL, 10);
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index 8e421f6..1486d0f 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -1248,7 +1248,7 @@ struct atom_context *atom_parse(struct card_info *card, void *bios)
 		kfree(ctx);
 		return NULL;
 	}
-	if (strncmp
+	if (memcmp
 	    (CSTR(ATOM_ATI_MAGIC_PTR), ATOM_ATI_MAGIC,
 	     strlen(ATOM_ATI_MAGIC))) {
 		printk(KERN_INFO "Invalid ATI magic.\n");
@@ -1257,7 +1257,7 @@ struct atom_context *atom_parse(struct card_info *card, void *bios)
 	}
 
 	base = CU16(ATOM_ROM_TABLE_PTR);
-	if (strncmp
+	if (memcmp
 	    (CSTR(base + ATOM_ROM_MAGIC_PTR), ATOM_ROM_MAGIC,
 	     strlen(ATOM_ROM_MAGIC))) {
 		printk(KERN_INFO "Invalid ATOM magic.\n");
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 8c9b2ef..b7a12d8 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -354,15 +354,15 @@ static ssize_t radeon_set_pm_profile(struct device *dev,
 
 	mutex_lock(&rdev->pm.mutex);
 	if (rdev->pm.pm_method == PM_METHOD_PROFILE) {
-		if (strncmp("default", buf, strlen("default")) == 0)
+		if (memcmp("default", buf, strlen("default")) == 0)
 			rdev->pm.profile = PM_PROFILE_DEFAULT;
-		else if (strncmp("auto", buf, strlen("auto")) == 0)
+		else if (memcmp("auto", buf, strlen("auto")) == 0)
 			rdev->pm.profile = PM_PROFILE_AUTO;
-		else if (strncmp("low", buf, strlen("low")) == 0)
+		else if (memcmp("low", buf, strlen("low")) == 0)
 			rdev->pm.profile = PM_PROFILE_LOW;
-		else if (strncmp("mid", buf, strlen("mid")) == 0)
+		else if (memcmp("mid", buf, strlen("mid")) == 0)
 			rdev->pm.profile = PM_PROFILE_MID;
-		else if (strncmp("high", buf, strlen("high")) == 0)
+		else if (memcmp("high", buf, strlen("high")) == 0)
 			rdev->pm.profile = PM_PROFILE_HIGH;
 		else {
 			DRM_ERROR("invalid power profile!\n");
@@ -398,13 +398,13 @@ static ssize_t radeon_set_pm_method(struct device *dev,
 	struct radeon_device *rdev = ddev->dev_private;
 
 
-	if (strncmp("dynpm", buf, strlen("dynpm")) == 0) {
+	if (memcmp("dynpm", buf, strlen("dynpm")) == 0) {
 		mutex_lock(&rdev->pm.mutex);
 		rdev->pm.pm_method = PM_METHOD_DYNPM;
 		rdev->pm.dynpm_state = DYNPM_STATE_PAUSED;
 		rdev->pm.dynpm_planned_action = DYNPM_ACTION_DEFAULT;
 		mutex_unlock(&rdev->pm.mutex);
-	} else if (strncmp("profile", buf, strlen("profile")) == 0) {
+	} else if (memcmp("profile", buf, strlen("profile")) == 0) {
 		bool flush_wq = false;
 
 		mutex_lock(&rdev->pm.mutex);
diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
index c8768f3..1b06242 100644
--- a/drivers/gpu/vga/vga_switcheroo.c
+++ b/drivers/gpu/vga/vga_switcheroo.c
@@ -282,7 +282,7 @@ vga_switcheroo_debugfs_write(struct file *filp, const char __user *ubuf,
 	}
 
 	/* pwr off the device not in use */
-	if (strncmp(usercmd, "OFF", 3) == 0) {
+	if (memcmp(usercmd, "OFF", 3) == 0) {
 		for (i = 0; i < VGA_SWITCHEROO_MAX_CLIENTS; i++) {
 			if (vgasr_priv.clients[i].active)
 				continue;
@@ -292,7 +292,7 @@ vga_switcheroo_debugfs_write(struct file *filp, const char __user *ubuf,
 		goto out;
 	}
 	/* pwr on the device not in use */
-	if (strncmp(usercmd, "ON", 2) == 0) {
+	if (memcmp(usercmd, "ON", 2) == 0) {
 		for (i = 0; i < VGA_SWITCHEROO_MAX_CLIENTS; i++) {
 			if (vgasr_priv.clients[i].active)
 				continue;
@@ -303,20 +303,20 @@ vga_switcheroo_debugfs_write(struct file *filp, const char __user *ubuf,
 	}
 
 	/* request a delayed switch - test can we switch now */
-	if (strncmp(usercmd, "DIGD", 4) == 0) {
+	if (memcmp(usercmd, "DIGD", 4) == 0) {
 		client_id = VGA_SWITCHEROO_IGD;
 		delay = true;
 	}
 
-	if (strncmp(usercmd, "DDIS", 4) == 0) {
+	if (memcmp(usercmd, "DDIS", 4) == 0) {
 		client_id = VGA_SWITCHEROO_DIS;
 		delay = true;
 	}
 
-	if (strncmp(usercmd, "IGD", 3) == 0)
+	if (memcmp(usercmd, "IGD", 3) == 0)
 		client_id = VGA_SWITCHEROO_IGD;
 
-	if (strncmp(usercmd, "DIS", 3) == 0)
+	if (memcmp(usercmd, "DIS", 3) == 0)
 		client_id = VGA_SWITCHEROO_DIS;
 
 	if (client_id == -1)
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index c380c65..dbd0849 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -94,17 +94,17 @@ static int vga_str_to_iostate(char *buf, int str_size, int *io_state)
 {
 	/* we could in theory hand out locks on IO and mem
 	 * separately to userspace but it can cause deadlocks */
-	if (strncmp(buf, "none", 4) == 0) {
+	if (memcmp(buf, "none", 4) == 0) {
 		*io_state = VGA_RSRC_NONE;
 		return 1;
 	}
 
 	/* XXX We're not chekcing the str_size! */
-	if (strncmp(buf, "io+mem", 6) == 0)
+	if (memcmp(buf, "io+mem", 6) == 0)
 		goto both;
-	else if (strncmp(buf, "io", 2) == 0)
+	else if (memcmp(buf, "io", 2) == 0)
 		goto both;
-	else if (strncmp(buf, "mem", 3) == 0)
+	else if (memcmp(buf, "mem", 3) == 0)
 		goto both;
 	return 0;
 both:
@@ -848,7 +848,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
 	curr_pos = kbuf;
 	kbuf[count] = '\0';	/* Just to make sure... */
 
-	if (strncmp(curr_pos, "lock ", 5) == 0) {
+	if (memcmp(curr_pos, "lock ", 5) == 0) {
 		curr_pos += 5;
 		remaining -= 5;
 
@@ -884,13 +884,13 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
 
 		ret_val = count;
 		goto done;
-	} else if (strncmp(curr_pos, "unlock ", 7) == 0) {
+	} else if (memcmp(curr_pos, "unlock ", 7) == 0) {
 		curr_pos += 7;
 		remaining -= 7;
 
 		pr_debug("client 0x%p called 'unlock'\n", priv);
 
-		if (strncmp(curr_pos, "all", 3) == 0)
+		if (memcmp(curr_pos, "all", 3) == 0)
 			io_state = VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM;
 		else {
 			if (!vga_str_to_iostate
@@ -934,7 +934,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
 
 		ret_val = count;
 		goto done;
-	} else if (strncmp(curr_pos, "trylock ", 8) == 0) {
+	} else if (memcmp(curr_pos, "trylock ", 8) == 0) {
 		curr_pos += 8;
 		remaining -= 8;
 
@@ -975,7 +975,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
 			goto done;
 		}
 
-	} else if (strncmp(curr_pos, "target ", 7) == 0) {
+	} else if (memcmp(curr_pos, "target ", 7) == 0) {
 		struct pci_bus *pbus;
 		unsigned int domain, bus, devfn;
 		struct vga_device *vgadev;
@@ -984,7 +984,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
 		remaining -= 7;
 		pr_debug("client 0x%p called 'target'\n", priv);
 		/* if target is default */
-		if (!strncmp(curr_pos, "default", 7))
+		if (!memcmp(curr_pos, "default", 7))
 			pdev = pci_dev_get(vga_default_device());
 		else {
 			if (!vga_pci_str_to_vars(curr_pos, remaining,
@@ -1047,7 +1047,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf,
 		goto done;
 
 
-	} else if (strncmp(curr_pos, "decodes ", 8) == 0) {
+	} else if (memcmp(curr_pos, "decodes ", 8) == 0) {
 		curr_pos += 8;
 		remaining -= 8;
 		pr_debug("vgaarb: client 0x%p called 'decodes'\n", priv);
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 515345b..27a270e 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1496,7 +1496,7 @@ static int hid_bus_match(struct device *dev, struct device_driver *drv)
 		return 0;
 
 	/* generic wants all non-blacklisted */
-	if (!strncmp(hdrv->name, "generic-", 8))
+	if (!memcmp(hdrv->name, "generic-", 8))
 		return !hid_match_id(hdev, hid_blacklist);
 
 	return 1;
diff --git a/drivers/hid/hid-picolcd.c b/drivers/hid/hid-picolcd.c
index bc2e077..43e658f 100644
--- a/drivers/hid/hid-picolcd.c
+++ b/drivers/hid/hid-picolcd.c
@@ -1411,12 +1411,12 @@ static ssize_t picolcd_operation_mode_store(struct device *dev,
 	int timeout = data->opmode_delay;
 	unsigned long flags;
 
-	if (cnt >= 3 && strncmp("lcd", buf, 3) == 0) {
+	if (cnt >= 3 && memcmp("lcd", buf, 3) == 0) {
 		if (data->status & PICOLCD_BOOTLOADER)
 			report = picolcd_out_report(REPORT_EXIT_FLASHER, data->hdev);
 		buf += 3;
 		cnt -= 3;
-	} else if (cnt >= 10 && strncmp("bootloader", buf, 10) == 0) {
+	} else if (cnt >= 10 && memcmp("bootloader", buf, 10) == 0) {
 		if (!(data->status & PICOLCD_BOOTLOADER))
 			report = picolcd_out_report(REPORT_EXIT_KEYBOARD, data->hdev);
 		buf += 10;
diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c
index b289ec9..fdac3aa 100644
--- a/drivers/i2c/busses/i2c-powermac.c
+++ b/drivers/i2c/busses/i2c-powermac.c
@@ -281,7 +281,7 @@ static int __devinit i2c_powermac_probe(struct platform_device *dev)
 
 	printk(KERN_INFO "PowerMac i2c bus %s registered\n", adapter->name);
 
-	if (!strncmp(basename, "uni-n", 5)) {
+	if (!memcmp(basename, "uni-n", 5)) {
 		struct device_node *np;
 		const u32 *prop;
 		struct i2c_board_info info;
diff --git a/drivers/i2c/busses/i2c-taos-evm.c b/drivers/i2c/busses/i2c-taos-evm.c
index dd39c1e..702a44d 100644
--- a/drivers/i2c/busses/i2c-taos-evm.c
+++ b/drivers/i2c/busses/i2c-taos-evm.c
@@ -58,7 +58,7 @@ static struct i2c_board_info tsl2550_info = {
 /* Instantiate i2c devices based on the adapter name */
 static struct i2c_client *taos_instantiate_device(struct i2c_adapter *adapter)
 {
-	if (!strncmp(adapter->name, "TAOS TSL2550 EVM", 16)) {
+	if (!memcmp(adapter->name, "TAOS TSL2550 EVM", 16)) {
 		dev_info(&adapter->dev, "Instantiating device %s at 0x%02x\n",
 			tsl2550_info.type, tsl2550_info.addr);
 		return i2c_new_device(adapter, &tsl2550_info);
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 5406b6e..f60e394 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -488,7 +488,7 @@ static void ide_floppy_setup(ide_drive_t *drive)
 	 * it. It should be fixed as of version 1.9, but to be on the safe side
 	 * we'll leave the limitation below for the 2.2.x tree.
 	 */
-	if (!strncmp((char *)&id[ATA_ID_PROD], "IOMEGA ZIP 100 ATAPI", 20)) {
+	if (!memcmp((char *)&id[ATA_ID_PROD], "IOMEGA ZIP 100 ATAPI", 20)) {
 		drive->atapi_flags |= IDE_AFLAG_ZIP_DRIVE;
 		/* This value will be visible in the /proc/ide/hdx/settings */
 		drive->pc_delay = IDEFLOPPY_PC_DELAY;
@@ -499,7 +499,7 @@ static void ide_floppy_setup(ide_drive_t *drive)
 	 * Guess what? The IOMEGA Clik! drive also needs the above fix. It makes
 	 * nasty clicking noises without it, so please don't remove this.
 	 */
-	if (strncmp((char *)&id[ATA_ID_PROD], "IOMEGA Clik!", 11) == 0) {
+	if (memcmp((char *)&id[ATA_ID_PROD], "IOMEGA Clik!", 11) == 0) {
 		blk_queue_max_hw_sectors(drive->queue, 64);
 		drive->atapi_flags |= IDE_AFLAG_CLIK_DRIVE;
 		/* IOMEGA Clik! drives do not support lock/unlock commands */
diff --git a/drivers/ide/ide-pio-blacklist.c b/drivers/ide/ide-pio-blacklist.c
index a8c2c8f..285383a 100644
--- a/drivers/ide/ide-pio-blacklist.c
+++ b/drivers/ide/ide-pio-blacklist.c
@@ -87,7 +87,7 @@ int ide_scan_pio_blacklist(char *model)
 	struct ide_pio_info *p;
 
 	for (p = ide_pio_blacklist; p->name != NULL; p++) {
-		if (strncmp(p->name, model, strlen(p->name)) == 0)
+		if (memcmp(p->name, model, strlen(p->name)) == 0)
 			return p->pio;
 	}
 	return -1;
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 068cef0..33cadfb 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -659,7 +659,7 @@ void ide_undecoded_slave(ide_drive_t *dev1)
 		return;
 
 	/* Serial numbers do not match */
-	if (strncmp((char *)&dev0->id[ATA_ID_SERNO],
+	if (memcmp((char *)&dev0->id[ATA_ID_SERNO],
 		    (char *)&dev1->id[ATA_ID_SERNO], ATA_ID_SERNO_LEN))
 		return;
 
diff --git a/drivers/ide/ide-sysfs.c b/drivers/ide/ide-sysfs.c
index 883ffac..bf2b301 100644
--- a/drivers/ide/ide-sysfs.c
+++ b/drivers/ide/ide-sysfs.c
@@ -78,7 +78,7 @@ static ssize_t store_delete_devices(struct device *portdev,
 {
 	ide_hwif_t *hwif = dev_get_drvdata(portdev);
 
-	if (strncmp(buf, "1", n))
+	if (memcmp(buf, "1", n))
 		return -EINVAL;
 
 	ide_port_unregister_devices(hwif);
@@ -94,7 +94,7 @@ static ssize_t store_scan(struct device *portdev,
 {
 	ide_hwif_t *hwif = dev_get_drvdata(portdev);
 
-	if (strncmp(buf, "1", n))
+	if (memcmp(buf, "1", n))
 		return -EINVAL;
 
 	ide_port_unregister_devices(hwif);
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c
index ebcf8e4..651179f 100644
--- a/drivers/ide/pmac.c
+++ b/drivers/ide/pmac.c
@@ -926,10 +926,10 @@ static u8 pmac_ide_cable_detect(ide_hwif_t *hwif)
 	const char *model = of_get_property(root, "model", NULL);
 
 	/* Get cable type from device-tree. */
-	if (cable && !strncmp(cable, "80-", 3)) {
+	if (cable && !memcmp(cable, "80-", 3)) {
 		/* Some drives fail to detect 80c cable in PowerBook */
 		/* These machine use proprietary short IDE cable anyway */
-		if (!strncmp(model, "PowerBook", 9))
+		if (!memcmp(model, "PowerBook", 9))
 			return ATA_CBL_PATA40_SHORT;
 		else
 			return ATA_CBL_PATA80;
diff --git a/drivers/ide/qd65xx.c b/drivers/ide/qd65xx.c
index 3f0244f..051a2a8 100644
--- a/drivers/ide/qd65xx.c
+++ b/drivers/ide/qd65xx.c
@@ -162,7 +162,7 @@ static int qd_find_disk_type (ide_drive_t *drive,
 	ide_fixstring(model, ATA_ID_PROD_LEN, 1); /* byte-swap */
 
 	for (p = qd65xx_timing ; p->offset != -1 ; p++) {
-		if (!strncmp(p->model, model+p->offset, 4)) {
+		if (!memcmp(p->model, model+p->offset, 4)) {
 			printk(KERN_DEBUG "%s: listed !\n", drive->name);
 			*active_time = p->active;
 			*recovery_time = p->recovery;
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index a19effa..0997813 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -109,7 +109,7 @@ static struct ib_device *__ib_device_get_by_name(const char *name)
 	struct ib_device *device;
 
 	list_for_each_entry(device, &device_list, core_list)
-		if (!strncmp(name, device->name, IB_DEVICE_NAME_MAX))
+		if (!memcmp(name, device->name, IB_DEVICE_NAME_MAX))
 			return device;
 
 	return NULL;
@@ -133,7 +133,7 @@ static int alloc_name(char *name)
 		if (i < 0 || i >= PAGE_SIZE * 8)
 			continue;
 		snprintf(buf, sizeof buf, name, i);
-		if (!strncmp(buf, device->name, IB_DEVICE_NAME_MAX))
+		if (!memcmp(buf, device->name, IB_DEVICE_NAME_MAX))
 			set_bit(i, inuse);
 	}
 
diff --git a/drivers/infiniband/hw/qib/qib_iba6120.c b/drivers/infiniband/hw/qib/qib_iba6120.c
index a5e29db..0098f77 100644
--- a/drivers/infiniband/hw/qib/qib_iba6120.c
+++ b/drivers/infiniband/hw/qib/qib_iba6120.c
@@ -2507,7 +2507,7 @@ static void init_6120_cntrnames(struct qib_devdata *dd)
 	for (i = 0, s = (char *)cntr6120names; s && j <= dd->cfgctxts;
 	     i++) {
 		/* we always have at least one counter before the egrovfl */
-		if (!j && !strncmp("Ctxt0EgrOvfl", s + 1, 12))
+		if (!j && !memcmp("Ctxt0EgrOvfl", s + 1, 12))
 			j = 1;
 		s = strchr(s + 1, '\n');
 		if (s && j)
@@ -2920,11 +2920,11 @@ bail:
 static int qib_6120_set_loopback(struct qib_pportdata *ppd, const char *what)
 {
 	int ret = 0;
-	if (!strncmp(what, "ibc", 3)) {
+	if (!memcmp(what, "ibc", 3)) {
 		ppd->dd->cspec->ibcctrl |= SYM_MASK(IBCCtrl, Loopback);
 		qib_devinfo(ppd->dd->pcidev, "Enabling IB%u:%u IBC loopback\n",
 			 ppd->dd->unit, ppd->port);
-	} else if (!strncmp(what, "off", 3)) {
+	} else if (!memcmp(what, "off", 3)) {
 		ppd->dd->cspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback);
 		qib_devinfo(ppd->dd->pcidev, "Disabling IB%u:%u IBC loopback "
 			    "(normal)\n", ppd->dd->unit, ppd->port);
diff --git a/drivers/infiniband/hw/qib/qib_iba7220.c b/drivers/infiniband/hw/qib/qib_iba7220.c
index 6fd8d74..511afd7 100644
--- a/drivers/infiniband/hw/qib/qib_iba7220.c
+++ b/drivers/infiniband/hw/qib/qib_iba7220.c
@@ -2677,12 +2677,12 @@ static int qib_7220_set_loopback(struct qib_pportdata *ppd, const char *what)
 	int ret = 0;
 	u64 val, ddr;
 
-	if (!strncmp(what, "ibc", 3)) {
+	if (!memcmp(what, "ibc", 3)) {
 		ppd->cpspec->ibcctrl |= SYM_MASK(IBCCtrl, Loopback);
 		val = 0; /* disable heart beat, so link will come up */
 		qib_devinfo(ppd->dd->pcidev, "Enabling IB%u:%u IBC loopback\n",
 			 ppd->dd->unit, ppd->port);
-	} else if (!strncmp(what, "off", 3)) {
+	} else if (!memcmp(what, "off", 3)) {
 		ppd->cpspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback);
 		/* enable heart beat again */
 		val = IBA7220_IBC_HRTBT_MASK << IBA7220_IBC_HRTBT_SHIFT;
@@ -3136,7 +3136,7 @@ static void init_7220_cntrnames(struct qib_devdata *dd)
 	for (i = 0, s = (char *)cntr7220names; s && j <= dd->cfgctxts;
 	     i++) {
 		/* we always have at least one counter before the egrovfl */
-		if (!j && !strncmp("Ctxt0EgrOvfl", s + 1, 12))
+		if (!j && !memcmp("Ctxt0EgrOvfl", s + 1, 12))
 			j = 1;
 		s = strchr(s + 1, '\n');
 		if (s && j)
diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c
index 584d443..7eae339 100644
--- a/drivers/infiniband/hw/qib/qib_iba7322.c
+++ b/drivers/infiniband/hw/qib/qib_iba7322.c
@@ -3898,13 +3898,13 @@ static int qib_7322_set_loopback(struct qib_pportdata *ppd, const char *what)
 	u64 val, ctrlb;
 
 	/* only IBC loopback, may add serdes and xgxs loopbacks later */
-	if (!strncmp(what, "ibc", 3)) {
+	if (!memcmp(what, "ibc", 3)) {
 		ppd->cpspec->ibcctrl_a |= SYM_MASK(IBCCtrlA_0,
 						       Loopback);
 		val = 0; /* disable heart beat, so link will come up */
 		qib_devinfo(ppd->dd->pcidev, "Enabling IB%u:%u IBC loopback\n",
 			 ppd->dd->unit, ppd->port);
-	} else if (!strncmp(what, "off", 3)) {
+	} else if (!memcmp(what, "off", 3)) {
 		ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0,
 							Loopback);
 		/* enable heart beat again */
@@ -4561,7 +4561,7 @@ static void init_7322_cntrnames(struct qib_devdata *dd)
 	for (i = 0, s = (char *)cntr7322names; s && j <= dd->cfgctxts;
 	     i++) {
 		/* we always have at least one counter before the egrovfl */
-		if (!j && !strncmp("Ctxt0EgrOvfl", s + 1, 12))
+		if (!j && !memcmp("Ctxt0EgrOvfl", s + 1, 12))
 			j = 1;
 		s = strchr(s + 1, '\n');
 		if (s && j)
diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
index 46239e4..f055411 100644
--- a/drivers/input/gameport/gameport.c
+++ b/drivers/input/gameport/gameport.c
@@ -453,11 +453,11 @@ static ssize_t gameport_rebind_driver(struct device *dev, struct device_attribut
 	if (error)
 		return error;
 
-	if (!strncmp(buf, "none", count)) {
+	if (!memcmp(buf, "none", count)) {
 		gameport_disconnect_port(gameport);
-	} else if (!strncmp(buf, "reconnect", count)) {
+	} else if (!memcmp(buf, "reconnect", count)) {
 		gameport_reconnect_port(gameport);
-	} else if (!strncmp(buf, "rescan", count)) {
+	} else if (!memcmp(buf, "rescan", count)) {
 		gameport_disconnect_port(gameport);
 		gameport_find_driver(gameport);
 	} else if ((drv = driver_find(buf, &gameport_bus)) != NULL) {
diff --git a/drivers/input/misc/yealink.c b/drivers/input/misc/yealink.c
index 41201c6..49f6c75 100644
--- a/drivers/input/misc/yealink.c
+++ b/drivers/input/misc/yealink.c
@@ -720,7 +720,7 @@ static ssize_t set_icon(struct device *dev, const char *buf, size_t count,
 	for (i = 0; i < ARRAY_SIZE(lcdMap); i++) {
 		if (lcdMap[i].type != '.')
 			continue;
-		if (strncmp(buf, lcdMap[i].u.p.name, count) == 0) {
+		if (memcmp(buf, lcdMap[i].u.p.name, count) == 0) {
 			setChar(yld, i, chr);
 			break;
 		}
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index cd9d0c9..042f952 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -905,8 +905,8 @@ static const struct psmouse_protocol *psmouse_protocol_by_name(const char *name,
 	for (i = 0; i < ARRAY_SIZE(psmouse_protocols); i++) {
 		p = &psmouse_protocols[i];
 
-		if ((strlen(p->name) == len && !strncmp(p->name, name, len)) ||
-		    (strlen(p->alias) == len && !strncmp(p->alias, name, len)))
+		if ((strlen(p->name) == len && !memcmp(p->name, name, len)) ||
+		    (strlen(p->alias) == len && !memcmp(p->alias, name, len)))
 			return &psmouse_protocols[i];
 	}
 
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
index 405bf21..21ae582 100644
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -443,11 +443,11 @@ static ssize_t serio_rebind_driver(struct device *dev, struct device_attribute *
 	if (error)
 		return error;
 
-	if (!strncmp(buf, "none", count)) {
+	if (!memcmp(buf, "none", count)) {
 		serio_disconnect_port(serio);
-	} else if (!strncmp(buf, "reconnect", count)) {
+	} else if (!memcmp(buf, "reconnect", count)) {
 		serio_reconnect_subtree(serio);
-	} else if (!strncmp(buf, "rescan", count)) {
+	} else if (!memcmp(buf, "rescan", count)) {
 		serio_disconnect_port(serio);
 		serio_find_driver(serio);
 	} else if ((drv = driver_find(buf, &serio_bus)) != NULL) {
@@ -475,9 +475,9 @@ static ssize_t serio_set_bind_mode(struct device *dev, struct device_attribute *
 	int retval;
 
 	retval = count;
-	if (!strncmp(buf, "manual", count)) {
+	if (!memcmp(buf, "manual", count)) {
 		serio->manual_bind = true;
-	} else if (!strncmp(buf, "auto", count)) {
+	} else if (!memcmp(buf, "auto", count)) {
 		serio->manual_bind = false;
 	} else {
 		retval = -EINVAL;
@@ -762,9 +762,9 @@ static ssize_t serio_driver_set_bind_mode(struct device_driver *drv, const char
 	int retval;
 
 	retval = count;
-	if (!strncmp(buf, "manual", count)) {
+	if (!memcmp(buf, "manual", count)) {
 		serio_drv->manual_bind = true;
-	} else if (!strncmp(buf, "auto", count)) {
+	} else if (!memcmp(buf, "auto", count)) {
 		serio_drv->manual_bind = false;
 	} else {
 		retval = -EINVAL;
diff --git a/drivers/input/tablet/aiptek.c b/drivers/input/tablet/aiptek.c
index 0a619c5..106a8ef 100644
--- a/drivers/input/tablet/aiptek.c
+++ b/drivers/input/tablet/aiptek.c
@@ -380,7 +380,7 @@ static int map_str_to_val(const struct aiptek_map *map, const char *str, size_t
 		count--;
 
 	for (p = map; p->string; p++)
-	        if (!strncmp(str, p->string, count))
+	        if (!memcmp(str, p->string, count))
 			return p->value;
 
 	return AIPTEK_INVALID_VALUE;
@@ -1204,7 +1204,7 @@ store_tabletXtilt(struct device *dev, struct device_attribute *attr, const char
 	if (strict_strtol(buf, 10, &x)) {
 		size_t len = buf[count - 1] == '\n' ? count - 1 : count;
 
-		if (strncmp(buf, "disable", len))
+		if (memcmp(buf, "disable", len))
 			return -EINVAL;
 
 		aiptek->newSetting.xTilt = AIPTEK_TILT_DISABLE;
@@ -1246,7 +1246,7 @@ store_tabletYtilt(struct device *dev, struct device_attribute *attr, const char
 	if (strict_strtol(buf, 10, &y)) {
 		size_t len = buf[count - 1] == '\n' ? count - 1 : count;
 
-		if (strncmp(buf, "disable", len))
+		if (memcmp(buf, "disable", len))
 			return -EINVAL;
 
 		aiptek->newSetting.yTilt = AIPTEK_TILT_DISABLE;
diff --git a/drivers/isdn/act2000/capi.c b/drivers/isdn/act2000/capi.c
index 1f0a949..76c50f2 100644
--- a/drivers/isdn/act2000/capi.c
+++ b/drivers/isdn/act2000/capi.c
@@ -915,8 +915,8 @@ actcapi_dispatch(struct work_struct *work)
 						printk(KERN_WARNING "act2000: %s\n", tmp);
 					else {
 						printk(KERN_DEBUG "act2000: %s\n", tmp);
-						if ((!strncmp(tmp, "INFO: Trace buffer con", 22)) ||
-						    (!strncmp(tmp, "INFO: Compile Date/Tim", 22))) {
+						if ((!memcmp(tmp, "INFO: Trace buffer con", 22)) ||
+						    (!memcmp(tmp, "INFO: Compile Date/Tim", 22))) {
 							card->flags |= ACT2000_FLAGS_RUNNING;
 							cmd.command = ISDN_STAT_RUN;
 							cmd.driver = card->myid;
diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c
index e54e79d..14577cf 100644
--- a/drivers/isdn/capi/capidrv.c
+++ b/drivers/isdn/capi/capidrv.c
@@ -1499,7 +1499,7 @@ static int decodeFVteln(char *teln, unsigned long *bmaskp, int *activep)
 	char *s;
 	int i;
 
-	if (strncmp(teln, "FV:", 3) != 0)
+	if (memcmp(teln, "FV:", 3) != 0)
 		return 1;
 	s = teln + 3;
 	while (*s && *s == ' ') s++;
diff --git a/drivers/isdn/hardware/eicon/maintidi.c b/drivers/isdn/hardware/eicon/maintidi.c
index 534978b..bc37728 100644
--- a/drivers/isdn/hardware/eicon/maintidi.c
+++ b/drivers/isdn/hardware/eicon/maintidi.c
@@ -858,7 +858,7 @@ static int process_idi_event (diva_strace_context_t* pLib,
 	char name[64];
 	int i;
 
-	if (!strncmp("State\\B Event", path, pVar->path_length)) {
+	if (!memcmp("State\\B Event", path, pVar->path_length)) {
     dword ch_id;
     if (!diva_trace_read_variable (pVar, &ch_id)) {
       if (!pLib->line_init_event && !pLib->pending_line_status) {
@@ -874,7 +874,7 @@ static int process_idi_event (diva_strace_context_t* pLib,
     return (-1);
   }
 
-	if (!strncmp("State\\FAX Event", path, pVar->path_length)) {
+	if (!memcmp("State\\FAX Event", path, pVar->path_length)) {
     dword ch_id;
     if (!diva_trace_read_variable (pVar, &ch_id)) {
       if (!pLib->pending_fax_status && !pLib->fax_init_event) {
@@ -890,7 +890,7 @@ static int process_idi_event (diva_strace_context_t* pLib,
     return (-1);
   }
 
-	if (!strncmp("State\\Modem Event", path, pVar->path_length)) {
+	if (!memcmp("State\\Modem Event", path, pVar->path_length)) {
     dword ch_id;
     if (!diva_trace_read_variable (pVar, &ch_id)) {
       if (!pLib->pending_modem_status && !pLib->modem_init_event) {
@@ -939,7 +939,7 @@ static int process_idi_event (diva_strace_context_t* pLib,
 	/*
 		Notification about loss of events
 		*/
-	if (!strncmp("Events Down", path, pVar->path_length)) {
+	if (!memcmp("Events Down", path, pVar->path_length)) {
 		if (pLib->trace_events_down == 1) {
 			pLib->trace_events_down = 2;
 		} else {
@@ -948,7 +948,7 @@ static int process_idi_event (diva_strace_context_t* pLib,
 		return (0);
 	}
 
-	if (!strncmp("State\\Layer1", path, pVar->path_length)) {
+	if (!memcmp("State\\Layer1", path, pVar->path_length)) {
 		diva_strace_read_asz  (pVar, &pLib->lines[0].pInterface->Layer1[0]);
 		if (pLib->l1_trace == 1) {
 			pLib->l1_trace = 2;
@@ -957,7 +957,7 @@ static int process_idi_event (diva_strace_context_t* pLib,
 		}
 		return (0);
 	}
-	if (!strncmp("State\\Layer2 No1", path, pVar->path_length)) {
+	if (!memcmp("State\\Layer2 No1", path, pVar->path_length)) {
 		char* tmp = &pLib->lines[0].pInterface->Layer2[0];
 		dword l2_state;
 		if (diva_strace_read_uint(pVar, &l2_state))
@@ -1017,13 +1017,13 @@ static int process_idi_event (diva_strace_context_t* pLib,
 		return (0);
 	}
 
-	if (!strncmp("Statistics\\Incoming Calls\\Calls", path, pVar->path_length) ||
-			!strncmp("Statistics\\Incoming Calls\\Connected", path, pVar->path_length)) {
+	if (!memcmp("Statistics\\Incoming Calls\\Calls", path, pVar->path_length) ||
+			!memcmp("Statistics\\Incoming Calls\\Connected", path, pVar->path_length)) {
 		return (SuperTraceGetIncomingCallStatistics (pLib));
 	}
 
-	if (!strncmp("Statistics\\Outgoing Calls\\Calls", path, pVar->path_length) ||
-			!strncmp("Statistics\\Outgoing Calls\\Connected", path, pVar->path_length)) {
+	if (!memcmp("Statistics\\Outgoing Calls\\Calls", path, pVar->path_length) ||
+			!memcmp("Statistics\\Outgoing Calls\\Connected", path, pVar->path_length)) {
 		return (SuperTraceGetOutgoingCallStatistics (pLib));
 	}
 
@@ -1061,7 +1061,7 @@ static int process_idi_info  (diva_strace_context_t* pLib,
 		*/
 	for (i = pLib->Channels; i > 0; i--) {
 		len = sprintf (name, "State\\B%d\\Modem", i);
-		if (!strncmp(name, path, len)) {
+		if (!memcmp(name, path, len)) {
 			return (diva_modem_info (pLib, i, pVar));
 		}
 	}
@@ -1071,7 +1071,7 @@ static int process_idi_info  (diva_strace_context_t* pLib,
 		*/
 	for (i = pLib->Channels; i > 0; i--) {
 		len = sprintf (name, "State\\B%d\\FAX", i);
-		if (!strncmp(name, path, len)) {
+		if (!memcmp(name, path, len)) {
 			return (diva_fax_info (pLib, i, pVar));
 		}
 	}
@@ -1081,7 +1081,7 @@ static int process_idi_info  (diva_strace_context_t* pLib,
 		*/
 	for (i = pLib->Channels; i > 0; i--) {
 		len = sprintf (name, "State\\B%d", i);
-		if (!strncmp(name, path, len)) {
+		if (!memcmp(name, path, len)) {
 			return (diva_line_info (pLib, i, pVar));
 		}
 	}
@@ -1239,7 +1239,7 @@ static diva_man_var_header_t* find_var (diva_man_var_header_t* pVar,
 	do {
 		path = (char*)&pVar->path_length+1;
 
-		if (!strncmp (name, path, pVar->path_length)) {
+		if (!memcmp (name, path, pVar->path_length)) {
 			break;
 		}
 	} while ((pVar = get_next_var (pVar)));
diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c
index 26d44c3..8c641bf 100644
--- a/drivers/isdn/i4l/isdn_net.c
+++ b/drivers/isdn/i4l/isdn_net.c
@@ -640,7 +640,7 @@ isdn_net_dial(void)
 					isdn_net_hangup(p->dev);
 					break;
 				}
-				if (!strncmp(lp->dial->num, "LEASED", strlen("LEASED"))) {
+				if (!memcmp(lp->dial->num, "LEASED", strlen("LEASED"))) {
 					lp->dialstate = 4;
 					printk(KERN_INFO "%s: Open leased line ...\n", p->dev->name);
 				} else {
@@ -3021,7 +3021,7 @@ isdn_net_getpeer(isdn_net_ioctl_phone *phone, isdn_net_ioctl_phone __user *peer)
 	if (idx <0 )
 		return -ENODEV;
 	/* for pre-bound channels, we need this extra check */
-	if (strncmp(dev->num[idx], "???", 3) == 0)
+	if (memcmp(dev->num[idx], "???", 3) == 0)
 		return -ENOTCONN;
 	strncpy(phone->phone, dev->num[idx], ISDN_MSNLEN);
 	phone->outgoing = USG_OUTGOING(dev->usage[idx]);
diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c
index fe824e0..e8f10ca 100644
--- a/drivers/isdn/i4l/isdn_ppp.c
+++ b/drivers/isdn/i4l/isdn_ppp.c
@@ -2058,7 +2058,7 @@ isdn_ppp_if_get_unit(char *name)
 
 	len = strlen(name);
 
-	if (strncmp("ippp", name, 4) || len > 8)
+	if (memcmp("ippp", name, 4) || len > 8)
 		return -1;
 
 	for (i = 0, deci = 1; i < len; i++, deci *= 10) {
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
index c463162..c8a3f86 100644
--- a/drivers/isdn/i4l/isdn_tty.c
+++ b/drivers/isdn/i4l/isdn_tty.c
@@ -3141,7 +3141,7 @@ isdn_tty_cmd_PLUSF(char **p, modem_info * info)
 	atemu *m = &info->emu;
 	char rs[20];
 
-	if (!strncmp(p[0], "CLASS", 5)) {
+	if (!memcmp(p[0], "CLASS", 5)) {
 		p[0] += 5;
 		switch (*p[0]) {
 			case '?':
@@ -3246,7 +3246,7 @@ isdn_tty_cmd_PLUSV(char **p, modem_info * info)
 
 	i = 0;
 	while (vcmd[i]) {
-		if (!strncmp(vcmd[i], p[0], 2)) {
+		if (!memcmp(vcmd[i], p[0], 2)) {
 			p[0] += 2;
 			break;
 		}
@@ -3746,7 +3746,7 @@ isdn_tty_edit_at(const char *p, int count, modem_info * info)
 				eb[1] = 0;
 				isdn_tty_at_cout(eb, info);
 			}
-			if ((m->mdmcmdl >= 2) && (!(strncmp(m->mdmcmd, "AT", 2))))
+			if ((m->mdmcmdl >= 2) && (!(memcmp(m->mdmcmd, "AT", 2))))
 				isdn_tty_parse_at(info);
 			m->mdmcmdl = 0;
 			continue;
diff --git a/drivers/isdn/i4l/isdn_ttyfax.c b/drivers/isdn/i4l/isdn_ttyfax.c
index 4c41f19..44c8233 100644
--- a/drivers/isdn/i4l/isdn_ttyfax.c
+++ b/drivers/isdn/i4l/isdn_ttyfax.c
@@ -326,7 +326,7 @@ isdn_tty_cmd_FCLASS1(char **p, modem_info * info)
 	u_long flags;
 
 	for (c.parm.aux.cmd = 0; c.parm.aux.cmd < 7; c.parm.aux.cmd++)
-		if (!strncmp(p[0], cmd[c.parm.aux.cmd], 2))
+		if (!memcmp(p[0], cmd[c.parm.aux.cmd], 2))
 			break;
 
 #ifdef ISDN_TTY_FAX_CMD_DEBUG
@@ -421,7 +421,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 	{1, 5, 2, 2, 3, 2, 0, 7};
 
 	/* FAA still unchanged */
-	if (!strncmp(p[0], "AA", 2)) {	/* TODO */
+	if (!memcmp(p[0], "AA", 2)) {	/* TODO */
 		p[0] += 2;
 		switch (*p[0]) {
 			case '?':
@@ -441,7 +441,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* BADLIN=value - dummy 0=disable errorchk disabled, 1-255 nr. of lines for making page bad */
-	if (!strncmp(p[0], "BADLIN", 6)) {
+	if (!memcmp(p[0], "BADLIN", 6)) {
 		p[0] += 6;
 		switch (*p[0]) {
 			case '?':
@@ -471,7 +471,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* BADMUL=value - dummy 0=disable errorchk disabled (threshold multiplier) */
-	if (!strncmp(p[0], "BADMUL", 6)) {
+	if (!memcmp(p[0], "BADMUL", 6)) {
 		p[0] += 6;
 		switch (*p[0]) {
 			case '?':
@@ -501,7 +501,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* BOR=n - Phase C bit order, 0=direct, 1=reverse */
-	if (!strncmp(p[0], "BOR", 3)) {
+	if (!memcmp(p[0], "BOR", 3)) {
 		p[0] += 3;
 		switch (*p[0]) {
 			case '?':
@@ -531,7 +531,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* NBC=n - No Best Capabilities */
-	if (!strncmp(p[0], "NBC", 3)) {
+	if (!memcmp(p[0], "NBC", 3)) {
 		p[0] += 3;
 		switch (*p[0]) {
 			case '?':
@@ -561,7 +561,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* BUF? - Readonly buffersize readout  */
-	if (!strncmp(p[0], "BUF?", 4)) {
+	if (!memcmp(p[0], "BUF?", 4)) {
 		p[0] += 4;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
 		printk(KERN_DEBUG "isdn_tty: Fax FBUF? (%d) \n", (16 * m->mdmreg[REG_PSIZE]));
@@ -572,7 +572,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* CIG=string - local fax station id string for polling rx */
-	if (!strncmp(p[0], "CIG", 3)) {
+	if (!memcmp(p[0], "CIG", 3)) {
 		int i, r;
 		p[0] += 3;
 		switch (*p[0]) {
@@ -610,7 +610,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* CQ=n - copy qlty chk, 0= no chk, 1=only 1D chk, 2=1D+2D chk */
-	if (!strncmp(p[0], "CQ", 2)) {
+	if (!memcmp(p[0], "CQ", 2)) {
 		p[0] += 2;
 		switch (*p[0]) {
 			case '?':
@@ -640,7 +640,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* CR=n - can receive? 0= no data rx or poll remote dev, 1=do receive data or poll remote dev */
-	if (!strncmp(p[0], "CR", 2)) {
+	if (!memcmp(p[0], "CR", 2)) {
 		p[0] += 2;
 		switch (*p[0]) {
 			case '?':
@@ -670,7 +670,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* CTCRTY=value - ECM retry count */
-	if (!strncmp(p[0], "CTCRTY", 6)) {
+	if (!memcmp(p[0], "CTCRTY", 6)) {
 		p[0] += 6;
 		switch (*p[0]) {
 			case '?':
@@ -700,7 +700,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* DCC=vr,br,wd,ln,df,ec,bf,st - DCE capabilities parms */
-	if (!strncmp(p[0], "DCC", 3)) {
+	if (!memcmp(p[0], "DCC", 3)) {
 		char *rp = &f->resolution;
 		int i;
 
@@ -746,7 +746,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* DIS=vr,br,wd,ln,df,ec,bf,st - current session parms */
-	if (!strncmp(p[0], "DIS", 3)) {
+	if (!memcmp(p[0], "DIS", 3)) {
 		char *rp = &f->resolution;
 		int i;
 
@@ -792,7 +792,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* DR - Receive Phase C data command, initiates document reception */
-	if (!strncmp(p[0], "DR", 2)) {
+	if (!memcmp(p[0], "DR", 2)) {
 		p[0] += 2;
 		if ((info->faxonline & 16) &&	/* incoming connection */
 		    ((f->phase == ISDN_FAX_PHASE_B) || (f->phase == ISDN_FAX_PHASE_D))) {
@@ -828,7 +828,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 1;
 	}
 	/* DT=df,vr,wd,ln - TX phase C data command (release DCE to proceed with negotiation) */
-	if (!strncmp(p[0], "DT", 2)) {
+	if (!memcmp(p[0], "DT", 2)) {
 		int i, val[] =
 		{4, 0, 2, 3};
 		char *rp = &f->resolution;
@@ -869,7 +869,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 1;
 	}
 	/* ECM=n - Error mode control 0=disabled, 2=enabled, handled by DCE alone incl. buff of partial pages */
-	if (!strncmp(p[0], "ECM", 3)) {
+	if (!memcmp(p[0], "ECM", 3)) {
 		p[0] += 3;
 		switch (*p[0]) {
 			case '?':
@@ -899,7 +899,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* ET=n - End of page or document */
-	if (!strncmp(p[0], "ET=", 3)) {
+	if (!memcmp(p[0], "ET=", 3)) {
 		p[0] += 3;
 		if (*p[0] == '?') {
 			p[0]++;
@@ -926,7 +926,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* K - terminate */
-	if (!strncmp(p[0], "K", 1)) {
+	if (!memcmp(p[0], "K", 1)) {
 		p[0] += 1;
 		if ((f->phase == ISDN_FAX_PHASE_IDLE) || (f->phase == ISDN_FAX_PHASE_E))
 			PARSE_ERROR1;
@@ -934,7 +934,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 1;
 	}
 	/* LID=string - local fax ID */
-	if (!strncmp(p[0], "LID", 3)) {
+	if (!memcmp(p[0], "LID", 3)) {
 		int i, r;
 		p[0] += 3;
 		switch (*p[0]) {
@@ -973,7 +973,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 	}
 
 	/* MDL? - DCE Model       */
-	if (!strncmp(p[0], "MDL?", 4)) {
+	if (!memcmp(p[0], "MDL?", 4)) {
 		p[0] += 4;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
 		printk(KERN_DEBUG "isdn_tty: FMDL?\n");
@@ -982,7 +982,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* MFR? - DCE Manufacturer */
-	if (!strncmp(p[0], "MFR?", 4)) {
+	if (!memcmp(p[0], "MFR?", 4)) {
 		p[0] += 4;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
 		printk(KERN_DEBUG "isdn_tty: FMFR?\n");
@@ -991,7 +991,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* MINSP=n - Minimum Speed for Phase C */
-	if (!strncmp(p[0], "MINSP", 5)) {
+	if (!memcmp(p[0], "MINSP", 5)) {
 		p[0] += 5;
 		switch (*p[0]) {
 			case '?':
@@ -1021,7 +1021,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* PHCTO=value - DTE phase C timeout */
-	if (!strncmp(p[0], "PHCTO", 5)) {
+	if (!memcmp(p[0], "PHCTO", 5)) {
 		p[0] += 5;
 		switch (*p[0]) {
 			case '?':
@@ -1052,7 +1052,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 	}
 
 	/* REL=n - Phase C received EOL alignment */
-	if (!strncmp(p[0], "REL", 3)) {
+	if (!memcmp(p[0], "REL", 3)) {
 		p[0] += 3;
 		switch (*p[0]) {
 			case '?':
@@ -1082,7 +1082,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 		return 0;
 	}
 	/* REV? - DCE Revision */
-	if (!strncmp(p[0], "REV?", 4)) {
+	if (!memcmp(p[0], "REV?", 4)) {
 		p[0] += 4;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
 		printk(KERN_DEBUG "isdn_tty: FREV?\n");
@@ -1094,7 +1094,7 @@ isdn_tty_cmd_FCLASS2(char **p, modem_info * info)
 	}
 
 	/* Phase C Transmit Data Block Size */
-	if (!strncmp(p[0], "TBC=", 4)) {	/* dummy, not used */
+	if (!memcmp(p[0], "TBC=", 4)) {	/* dummy, not used */
 		p[0] += 4;
 #ifdef ISDN_TTY_FAX_STAT_DEBUG
 		printk(KERN_DEBUG "isdn_tty: Fax FTBC=%c\n", *p[0]);
diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
index 2e847a9..103a864 100644
--- a/drivers/isdn/icn/icn.c
+++ b/drivers/isdn/icn/icn.c
@@ -453,7 +453,7 @@ icn_parse_status(u_char * status, int channel, icn_card * card)
 	isdn_ctrl cmd;
 
 	while (s->statstr) {
-		if (!strncmp(status, s->statstr, strlen(s->statstr))) {
+		if (!memcmp(status, s->statstr, strlen(s->statstr))) {
 			cmd.command = s->command;
 			action = s->action;
 			break;
@@ -630,18 +630,18 @@ icn_polldchan(unsigned long data)
 					icn_parse_status(p, ch, card);
 				} else {
 					p = card->imsg;
-					if (!strncmp(p, "DRV1.", 5)) {
+					if (!memcmp(p, "DRV1.", 5)) {
 						u_char vstr[10];
 						u_char *q = vstr;
 
 						printk(KERN_INFO "icn: (%s) %s\n", CID, p);
-						if (!strncmp(p + 7, "TC", 2)) {
+						if (!memcmp(p + 7, "TC", 2)) {
 							card->ptype = ISDN_PTYPE_1TR6;
 							card->interface.features |= ISDN_FEATURE_P_1TR6;
 							printk(KERN_INFO
 							       "icn: (%s) 1TR6-Protocol loaded and running\n", CID);
 						}
-						if (!strncmp(p + 7, "EC", 2)) {
+						if (!memcmp(p + 7, "EC", 2)) {
 							card->ptype = ISDN_PTYPE_EURO;
 							card->interface.features |= ISDN_FEATURE_P_EURO;
 							printk(KERN_INFO
diff --git a/drivers/isdn/isdnloop/isdnloop.c b/drivers/isdn/isdnloop/isdnloop.c
index b8a1098..51189c0 100644
--- a/drivers/isdn/isdnloop/isdnloop.c
+++ b/drivers/isdn/isdnloop/isdnloop.c
@@ -190,7 +190,7 @@ isdnloop_parse_status(u_char * status, int channel, isdnloop_card * card)
 	isdn_ctrl cmd;
 
 	while (s->statstr) {
-		if (!strncmp(status, s->statstr, strlen(s->statstr))) {
+		if (!memcmp(status, s->statstr, strlen(s->statstr))) {
 			cmd.command = s->command;
 			action = s->action;
 			break;
@@ -341,15 +341,15 @@ isdnloop_polldchan(unsigned long data)
 				isdnloop_parse_status(p, ch, card);
 			} else {
 				p = card->imsg;
-				if (!strncmp(p, "DRV1.", 5)) {
+				if (!memcmp(p, "DRV1.", 5)) {
 					printk(KERN_INFO "isdnloop: (%s) %s\n", CID, p);
-					if (!strncmp(p + 7, "TC", 2)) {
+					if (!memcmp(p + 7, "TC", 2)) {
 						card->ptype = ISDN_PTYPE_1TR6;
 						card->interface.features |= ISDN_FEATURE_P_1TR6;
 						printk(KERN_INFO
 						       "isdnloop: (%s) 1TR6-Protocol loaded and running\n", CID);
 					}
-					if (!strncmp(p + 7, "EC", 2)) {
+					if (!memcmp(p + 7, "EC", 2)) {
 						card->ptype = ISDN_PTYPE_EURO;
 						card->interface.features |= ISDN_FEATURE_P_EURO;
 						printk(KERN_INFO
@@ -800,7 +800,7 @@ isdnloop_parse_cmd(isdnloop_card * card)
 	}
 	p += 3;
 	while (s->statstr) {
-		if (!strncmp(p, s->statstr, strlen(s->statstr))) {
+		if (!memcmp(p, s->statstr, strlen(s->statstr))) {
 			action = s->action;
 			if (s->command && (ch != 0)) {
 				isdnloop_fake_err(card);
diff --git a/drivers/isdn/sc/init.c b/drivers/isdn/sc/init.c
index ca710ab..307a0d8 100644
--- a/drivers/isdn/sc/init.c
+++ b/drivers/isdn/sc/init.c
@@ -540,9 +540,9 @@ static int identify_board(unsigned long rambase, unsigned int iobase)
 		 hwci.st_u_sense ? "S/T" : "U", hwci.ram_size,
 		 hwci.serial_no, hwci.part_no, hwci.rev_no);
 
-	if(!strncmp(PRI_PARTNO, hwci.part_no, 6))
+	if(!memcmp(PRI_PARTNO, hwci.part_no, 6))
 		return PRI_BOARD;
-	if(!strncmp(BRI_PARTNO, hwci.part_no, 6))
+	if(!memcmp(BRI_PARTNO, hwci.part_no, 6))
 		return BRI_BOARD;
 		
 	return -1;
diff --git a/drivers/leds/leds-88pm860x.c b/drivers/leds/leds-88pm860x.c
index e672b44..17d81b9 100644
--- a/drivers/leds/leds-88pm860x.c
+++ b/drivers/leds/leds-88pm860x.c
@@ -162,7 +162,7 @@ static int __check_device(struct pm860x_led_pdata *pdata, char *name)
 		if ((p->id != PM8606_ID_LED) || (p->flags < 0))
 			break;
 
-		if (!strncmp(name, pm860x_led_name[p->flags],
+		if (!memcmp(name, pm860x_led_name[p->flags],
 			MFD_NAME_SIZE)) {
 			ret = (int)p->flags;
 			break;
diff --git a/drivers/leds/leds-bd2802.c b/drivers/leds/leds-bd2802.c
index 19dc4b6..e12454c 100644
--- a/drivers/leds/leds-bd2802.c
+++ b/drivers/leds/leds-bd2802.c
@@ -469,9 +469,9 @@ static ssize_t bd2802_store_adv_conf(struct device *dev,
 		return -EINVAL;
 
 	down_write(&led->rwsem);
-	if (!led->adf_on && !strncmp(buf, "on", 2))
+	if (!led->adf_on && !memcmp(buf, "on", 2))
 		bd2802_enable_adv_conf(led);
-	else if (led->adf_on && !strncmp(buf, "off", 3))
+	else if (led->adf_on && !memcmp(buf, "off", 3))
 		bd2802_disable_adv_conf(led);
 	up_write(&led->rwsem);
 
diff --git a/drivers/leds/leds-lp5521.c b/drivers/leds/leds-lp5521.c
index 33facd0..b85eefd 100644
--- a/drivers/leds/leds-lp5521.c
+++ b/drivers/leds/leds-lp5521.c
@@ -459,11 +459,11 @@ static ssize_t store_engine_mode(struct device *dev,
 	struct lp5521_engine *engine = &chip->engines[nr - 1];
 	mutex_lock(&chip->lock);
 
-	if (!strncmp(buf, "run", 3))
+	if (!memcmp(buf, "run", 3))
 		lp5521_set_mode(engine, LP5521_CMD_RUN);
-	else if (!strncmp(buf, "load", 4))
+	else if (!memcmp(buf, "load", 4))
 		lp5521_set_mode(engine, LP5521_CMD_LOAD);
-	else if (!strncmp(buf, "disabled", 8))
+	else if (!memcmp(buf, "disabled", 8))
 		lp5521_set_mode(engine, LP5521_CMD_DISABLED);
 
 	mutex_unlock(&chip->lock);
diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c
index 0cc4ead..109b7f1 100644
--- a/drivers/leds/leds-lp5523.c
+++ b/drivers/leds/leds-lp5523.c
@@ -628,11 +628,11 @@ static ssize_t store_engine_mode(struct device *dev,
 	struct lp5523_engine *engine = &chip->engines[nr - 1];
 	mutex_lock(&chip->lock);
 
-	if (!strncmp(buf, "run", 3))
+	if (!memcmp(buf, "run", 3))
 		lp5523_set_mode(engine, LP5523_CMD_RUN);
-	else if (!strncmp(buf, "load", 4))
+	else if (!memcmp(buf, "load", 4))
 		lp5523_set_mode(engine, LP5523_CMD_LOAD);
-	else if (!strncmp(buf, "disabled", 8))
+	else if (!memcmp(buf, "disabled", 8))
 		lp5523_set_mode(engine, LP5523_CMD_DISABLED);
 
 	mutex_unlock(&chip->lock);
diff --git a/drivers/leds/leds-net5501.c b/drivers/leds/leds-net5501.c
index 1739557..91144fb 100644
--- a/drivers/leds/leds-net5501.c
+++ b/drivers/leds/leds-net5501.c
@@ -71,13 +71,13 @@ static int __init soekris_init(void)
 
 	bios = rombase + 0x20;	/* null terminated */
 
-	if (strncmp(bios, "comBIOS", 7))
+	if (memcmp(bios, "comBIOS", 7))
 		goto unmap;
 
 	for (i = 0; i < ARRAY_SIZE(boards); i++) {
 		unsigned char *model = rombase + boards[i].offset;
 
-		if (strncmp(model, boards[i].sig, boards[i].len) == 0) {
+		if (memcmp(model, boards[i].sig, boards[i].len) == 0) {
 			printk(KERN_INFO "Soekris %s: %s\n", model, bios);
 
 			if (boards[i].init)
diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
index b6e7ddc..49fe363 100644
--- a/drivers/macintosh/macio_asic.c
+++ b/drivers/macintosh/macio_asic.c
@@ -434,9 +434,9 @@ static struct macio_dev * macio_add_one_device(struct macio_chip *chip,
 
 static int macio_skip_device(struct device_node *np)
 {
-	if (strncmp(np->name, "battery", 7) == 0)
+	if (memcmp(np->name, "battery", 7) == 0)
 		return 1;
-	if (strncmp(np->name, "escc-legacy", 11) == 0)
+	if (memcmp(np->name, "escc-legacy", 11) == 0)
 		return 1;
 	return 0;
 }
@@ -485,9 +485,9 @@ static void macio_pci_add_devices(struct macio_chip *chip)
 					    root_res);
 		if (mdev == NULL)
 			of_node_put(np);
-		else if (strncmp(np->name, "media-bay", 9) == 0)
+		else if (memcmp(np->name, "media-bay", 9) == 0)
 			mbdev = mdev;
-		else if (strncmp(np->name, "escc", 4) == 0)
+		else if (memcmp(np->name, "escc", 4) == 0)
 			sdev = mdev;
 	}
 
diff --git a/drivers/macintosh/therm_adt746x.c b/drivers/macintosh/therm_adt746x.c
index 9e3e2c5..14cf0d2 100644
--- a/drivers/macintosh/therm_adt746x.c
+++ b/drivers/macintosh/therm_adt746x.c
@@ -136,7 +136,7 @@ attach_thermostat(struct i2c_adapter *adapter)
 	struct i2c_board_info info;
 	struct i2c_client *client;
 
-	if (strncmp(adapter->name, "uni-n", 5))
+	if (memcmp(adapter->name, "uni-n", 5))
 		return -ENODEV;
 	bus_no = simple_strtoul(adapter->name + 6, NULL, 10);
 	if (bus_no != therm_bus)
diff --git a/drivers/macintosh/therm_windtunnel.c b/drivers/macintosh/therm_windtunnel.c
index c89f396..7270bd3 100644
--- a/drivers/macintosh/therm_windtunnel.c
+++ b/drivers/macintosh/therm_windtunnel.c
@@ -314,7 +314,7 @@ do_attach( struct i2c_adapter *adapter )
 		I2C_CLIENT_END
 	};
 
-	if( strncmp(adapter->name, "uni-n", 5) )
+	if( memcmp(adapter->name, "uni-n", 5) )
 		return 0;
 
 	if( !x.running ) {
diff --git a/drivers/macintosh/via-pmu-led.c b/drivers/macintosh/via-pmu-led.c
index 19c3718..dbbf852 100644
--- a/drivers/macintosh/via-pmu-led.c
+++ b/drivers/macintosh/via-pmu-led.c
@@ -96,8 +96,8 @@ static int __init via_pmu_led_init(void)
 		of_node_put(dt);
 		return -ENODEV;
 	}
-	if (strncmp(model, "PowerBook", strlen("PowerBook")) != 0 &&
-	    strncmp(model, "iBook", strlen("iBook")) != 0 &&
+	if (memcmp(model, "PowerBook", strlen("PowerBook")) != 0 &&
+	    memcmp(model, "iBook", strlen("iBook")) != 0 &&
 	    strcmp(model, "PowerMac7,2") != 0 &&
 	    strcmp(model, "PowerMac7,3") != 0) {
 		of_node_put(dt);
diff --git a/drivers/macintosh/windfarm_pm112.c b/drivers/macintosh/windfarm_pm112.c
index e0ee807..f3a46be 100644
--- a/drivers/macintosh/windfarm_pm112.c
+++ b/drivers/macintosh/windfarm_pm112.c
@@ -598,13 +598,13 @@ static void pm112_new_sensor(struct wf_sensor *sr)
 {
 	unsigned int i;
 
-	if (!strncmp(sr->name, "cpu-temp-", 9)) {
+	if (!memcmp(sr->name, "cpu-temp-", 9)) {
 		i = sr->name[9] - '0';
 		if (sr->name[10] == 0 && i < NR_CORES &&
 		    sens_cpu_temp[i] == NULL && wf_get_sensor(sr) == 0)
 			sens_cpu_temp[i] = sr;
 
-	} else if (!strncmp(sr->name, "cpu-power-", 10)) {
+	} else if (!memcmp(sr->name, "cpu-power-", 10)) {
 		i = sr->name[10] - '0';
 		if (sr->name[11] == 0 && i < NR_CORES &&
 		    sens_cpu_power[i] == NULL && wf_get_sensor(sr) == 0)
diff --git a/drivers/macintosh/windfarm_smu_sat.c b/drivers/macintosh/windfarm_smu_sat.c
index 65a8ff3..49c6428 100644
--- a/drivers/macintosh/windfarm_smu_sat.c
+++ b/drivers/macintosh/windfarm_smu_sat.c
@@ -267,7 +267,7 @@ static int wf_sat_probe(struct i2c_client *client,
 		index = *reg - 0x30;
 
 		/* expect location to be CPU [AB][01] ... */
-		if (strncmp(loc, "CPU ", 4) != 0)
+		if (memcmp(loc, "CPU ", 4) != 0)
 			continue;
 		chip = loc[4] - 'A';
 		core = loc[5] - '0';
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 5a1ffe3..7b125f7 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -1857,7 +1857,7 @@ location_store(mddev_t *mddev, const char *buf, size_t len)
 	if (mddev->bitmap || mddev->bitmap_info.file ||
 	    mddev->bitmap_info.offset) {
 		/* bitmap already configured.  Only option is to clear it */
-		if (strncmp(buf, "none", 4) != 0)
+		if (memcmp(buf, "none", 4) != 0)
 			return -EBUSY;
 		if (mddev->pers) {
 			mddev->pers->quiesce(mddev, 1);
@@ -1874,9 +1874,9 @@ location_store(mddev_t *mddev, const char *buf, size_t len)
 	} else {
 		/* No bitmap, OK to set a location */
 		long long offset;
-		if (strncmp(buf, "none", 4) == 0)
+		if (memcmp(buf, "none", 4) == 0)
 			/* nothing to be done */;
-		else if (strncmp(buf, "file:", 5) == 0) {
+		else if (memcmp(buf, "file:", 5) == 0) {
 			/* Not supported yet */
 			return -EINVAL;
 		} else {
@@ -2031,9 +2031,9 @@ static ssize_t metadata_store(mddev_t *mddev, const char *buf, size_t len)
 	    mddev->bitmap_info.file ||
 	    mddev->bitmap_info.offset)
 		return -EBUSY;
-	if (strncmp(buf, "external", 8) == 0)
+	if (memcmp(buf, "external", 8) == 0)
 		mddev->bitmap_info.external = 1;
-	else if (strncmp(buf, "internal", 8) == 0)
+	else if (memcmp(buf, "internal", 8) == 0)
 		mddev->bitmap_info.external = 0;
 	else
 		return -EINVAL;
@@ -2058,9 +2058,9 @@ static ssize_t can_clear_store(mddev_t *mddev, const char *buf, size_t len)
 {
 	if (mddev->bitmap == NULL)
 		return -ENOENT;
-	if (strncmp(buf, "false", 5) == 0)
+	if (memcmp(buf, "false", 5) == 0)
 		mddev->bitmap->need_sync = 1;
-	else if (strncmp(buf, "true", 4) == 0) {
+	else if (memcmp(buf, "true", 4) == 0) {
 		if (mddev->degraded)
 			return -EBUSY;
 		mddev->bitmap->need_sync = 0;
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 84c46a1..d9234c3 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2432,7 +2432,7 @@ slot_store(mdk_rdev_t *rdev, const char *buf, size_t len)
 	int err;
 	char nm[20];
 	int slot = simple_strtoul(buf, &e, 10);
-	if (strncmp(buf, "none", 4)==0)
+	if (memcmp(buf, "none", 4)==0)
 		slot = -1;
 	else if (e==buf || (*e && *e!= '\n'))
 		return -EINVAL;
@@ -3677,7 +3677,7 @@ metadata_store(mddev_t *mddev, const char *buf, size_t len)
 	 * always permitted.  Otherwise there must be
 	 * no devices attached to the array.
 	 */
-	if (mddev->external && strncmp(buf, "external:", 9) == 0)
+	if (mddev->external && memcmp(buf, "external:", 9) == 0)
 		;
 	else if (!list_empty(&mddev->disks))
 		return -EBUSY;
@@ -3689,7 +3689,7 @@ metadata_store(mddev_t *mddev, const char *buf, size_t len)
 		mddev->minor_version = 90;
 		return len;
 	}
-	if (strncmp(buf, "external:", 9) == 0) {
+	if (memcmp(buf, "external:", 9) == 0) {
 		size_t namelen = len-9;
 		if (namelen >= sizeof(mddev->metadata_type))
 			namelen = sizeof(mddev->metadata_type)-1;
@@ -3818,7 +3818,7 @@ sync_min_store(mddev_t *mddev, const char *buf, size_t len)
 {
 	int min;
 	char *e;
-	if (strncmp(buf, "system", 6)==0) {
+	if (memcmp(buf, "system", 6)==0) {
 		mddev->sync_speed_min = 0;
 		return len;
 	}
@@ -3844,7 +3844,7 @@ sync_max_store(mddev_t *mddev, const char *buf, size_t len)
 {
 	int max;
 	char *e;
-	if (strncmp(buf, "system", 6)==0) {
+	if (memcmp(buf, "system", 6)==0) {
 		mddev->sync_speed_max = 0;
 		return len;
 	}
@@ -3972,7 +3972,7 @@ max_sync_show(mddev_t *mddev, char *page)
 static ssize_t
 max_sync_store(mddev_t *mddev, const char *buf, size_t len)
 {
-	if (strncmp(buf, "max", 3) == 0)
+	if (memcmp(buf, "max", 3) == 0)
 		mddev->resync_max = MaxSector;
 	else {
 		unsigned long long max;
@@ -4104,7 +4104,7 @@ array_size_store(mddev_t *mddev, const char *buf, size_t len)
 {
 	sector_t sectors;
 
-	if (strncmp(buf, "default", 7) == 0) {
+	if (memcmp(buf, "default", 7) == 0) {
 		if (mddev->pers)
 			sectors = mddev->pers->size(mddev, 0, 0);
 		else
@@ -4370,7 +4370,7 @@ static int add_named_array(const char *val, struct kernel_param *kp)
 	if (len >= DISK_NAME_LEN)
 		return -E2BIG;
 	strlcpy(buf, val, len+1);
-	if (strncmp(buf, "md_", 3) != 0)
+	if (memcmp(buf, "md_", 3) != 0)
 		return -EINVAL;
 	return md_alloc(0, buf);
 }
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
index caa4e18..8239b40 100644
--- a/drivers/media/dvb/bt8xx/dst.c
+++ b/drivers/media/dvb/bt8xx/dst.c
@@ -486,11 +486,11 @@ static int dst_set_symbolrate(struct dst_state *state, u32 srate)
 		}
 	} else if (state->dst_type == DST_TYPE_IS_CABLE) {
 		dprintk(verbose, DST_DEBUG, 1, "%s", state->fw_name);
-		if (!strncmp(state->fw_name, "DCTNEW", 6)) {
+		if (!memcmp(state->fw_name, "DCTNEW", 6)) {
 			state->tx_tuna[5] = (u8) (srate >> 8);
 			state->tx_tuna[6] = (u8) srate;
 			state->tx_tuna[7] = 0x00;
-		} else if (!strncmp(state->fw_name, "DCT-CI", 6)) {
+		} else if (!memcmp(state->fw_name, "DCT-CI", 6)) {
 			state->tx_tuna[5] = 0x00;
 			state->tx_tuna[6] = (u8) (srate >> 8);
 			state->tx_tuna[7] = (u8) srate;
@@ -519,9 +519,9 @@ static int dst_set_modulation(struct dst_state *state, fe_modulation_t modulatio
 		state->tx_tuna[8] = 0x80;
 		break;
 	case QAM_256:
-		if (!strncmp(state->fw_name, "DCTNEW", 6))
+		if (!memcmp(state->fw_name, "DCTNEW", 6))
 			state->tx_tuna[8] = 0xff;
-		else if (!strncmp(state->fw_name, "DCT-CI", 6))
+		else if (!memcmp(state->fw_name, "DCT-CI", 6))
 			state->tx_tuna[8] = 0x00;
 		break;
 	case QPSK:
@@ -1070,7 +1070,7 @@ static int dst_get_tuner_info(struct dst_state *state)
 
 	return 0;
 force:
-	if (!strncmp(state->fw_name, "DCT-CI", 6)) {
+	if (!memcmp(state->fw_name, "DCT-CI", 6)) {
 		state->type_flags |= DST_TYPE_HAS_TS204;
 		dprintk(verbose, DST_ERROR, 1, "Forcing [%s] to TS188", state->fw_name);
 	}
@@ -1117,7 +1117,7 @@ static int dst_get_device_id(struct dst_state *state)
 	state->rxbuffer[7] = '\0';
 
 	for (i = 0, p_dst_type = dst_tlist; i < ARRAY_SIZE(dst_tlist); i++, p_dst_type++) {
-		if (!strncmp (&state->rxbuffer[p_dst_type->offset], p_dst_type->device_id, strlen (p_dst_type->device_id))) {
+		if (!memcmp (&state->rxbuffer[p_dst_type->offset], p_dst_type->device_id, strlen (p_dst_type->device_id))) {
 			use_type_flags = p_dst_type->type_flags;
 			use_dst_type = p_dst_type->dst_type;
 
@@ -1145,7 +1145,7 @@ static int dst_get_device_id(struct dst_state *state)
 				state->tuner_type = p_dst_type->tuner_type;
 			}
 			for (j = 0, p_tuner_list = tuner_list; j < ARRAY_SIZE(tuner_list); j++, p_tuner_list++) {
-				if (!(strncmp(p_dst_type->device_id, p_tuner_list->fw_name, 7)) &&
+				if (!(memcmp(p_dst_type->device_id, p_tuner_list->fw_name, 7)) &&
 					p_tuner_list->tuner_type == state->tuner_type) {
 					dprintk(verbose, DST_ERROR, 1, "[%s] has a [%s]",
 						p_dst_type->device_id, p_tuner_list->tuner_name);
diff --git a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
index 7ea517b..475012d 100644
--- a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
+++ b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
@@ -180,7 +180,7 @@ static char *findstr(char * haystack, int hlen, char * needle, int nlen)
 		return NULL;
 
 	for (i = 0; i <= hlen - nlen; i++) {
-		if (!strncmp(haystack + i, needle, nlen))
+		if (!memcmp(haystack + i, needle, nlen))
 			return haystack + i;
 	}
 
@@ -486,7 +486,7 @@ static int dvb_ca_en50221_parse_attributes(struct dvb_ca_private *ca, int slot)
 		return -EINVAL;
 
 	/* is it a version we support? */
-	if (strncmp(dvb_str + 8, "1.00", 4)) {
+	if (memcmp(dvb_str + 8, "1.00", 4)) {
 		printk("dvb_ca adapter %d: Unsupported DVB CAM module version %c%c%c%c\n",
 		       ca->dvbdev->adapter->num, dvb_str[8], dvb_str[9], dvb_str[10], dvb_str[11]);
 		return -EINVAL;
diff --git a/drivers/media/dvb/firewire/firedtv-dvb.c b/drivers/media/dvb/firewire/firedtv-dvb.c
index 079e8c5..3f06a1f 100644
--- a/drivers/media/dvb/firewire/firedtv-dvb.c
+++ b/drivers/media/dvb/firewire/firedtv-dvb.c
@@ -282,7 +282,7 @@ struct firedtv *fdtv_alloc(struct device *dev,
 
 	for (i = ARRAY_SIZE(fdtv_model_names); --i; )
 		if (strlen(fdtv_model_names[i]) <= name_len &&
-		    strncmp(name, fdtv_model_names[i], name_len) == 0)
+		    memcmp(name, fdtv_model_names[i], name_len) == 0)
 			break;
 	fdtv->type = i;
 
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index 87d8b00..a618433 100644
--- a/drivers/media/video/bt8xx/bttv-cards.c
+++ b/drivers/media/video/bt8xx/bttv-cards.c
@@ -3007,9 +3007,9 @@ static void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256])
 {
 	int type = -1;
 
-	if (0 == strncmp(eeprom_data,"GET MM20xPCTV",13))
+	if (0 == memcmp(eeprom_data,"GET MM20xPCTV",13))
 		type = BTTV_BOARD_MODTEC_205;
-	else if (0 == strncmp(eeprom_data+20,"Picolo",7))
+	else if (0 == memcmp(eeprom_data+20,"Picolo",7))
 		type = BTTV_BOARD_EURESYS_PICOLO;
 	else if (eeprom_data[0] == 0x84 && eeprom_data[2]== 0)
 		type = BTTV_BOARD_HAUPPAUGE; /* old bt848 */
@@ -3679,15 +3679,15 @@ void __devinit bttv_init_tuner(struct bttv *btv)
 
 static void modtec_eeprom(struct bttv *btv)
 {
-	if( strncmp(&(eeprom_data[0x1e]),"Temic 4066 FY5",14) ==0) {
+	if( memcmp(&(eeprom_data[0x1e]),"Temic 4066 FY5",14) ==0) {
 		btv->tuner_type=TUNER_TEMIC_4066FY5_PAL_I;
 		printk("bttv%d: Modtec: Tuner autodetected by eeprom: %s\n",
 		       btv->c.nr,&eeprom_data[0x1e]);
-	} else if (strncmp(&(eeprom_data[0x1e]),"Alps TSBB5",10) ==0) {
+	} else if (memcmp(&(eeprom_data[0x1e]),"Alps TSBB5",10) ==0) {
 		btv->tuner_type=TUNER_ALPS_TSBB5_PAL_I;
 		printk("bttv%d: Modtec: Tuner autodetected by eeprom: %s\n",
 		       btv->c.nr,&eeprom_data[0x1e]);
-	} else if (strncmp(&(eeprom_data[0x1e]),"Philips FM1246",14) ==0) {
+	} else if (memcmp(&(eeprom_data[0x1e]),"Philips FM1246",14) ==0) {
 		btv->tuner_type=TUNER_PHILIPS_NTSC;
 		printk("bttv%d: Modtec: Tuner autodetected by eeprom: %s\n",
 		       btv->c.nr,&eeprom_data[0x1e]);
@@ -3836,7 +3836,7 @@ static void __devinit osprey_eeprom(struct bttv *btv, const u8 ee[256])
 	/* This code will nevery actually get called in this case.... */
 	if (btv->c.type == BTTV_BOARD_UNKNOWN) {
 		/* this might be an antique... check for MMAC label in eeprom */
-		if (!strncmp(ee, "MMAC", 4)) {
+		if (!memcmp(ee, "MMAC", 4)) {
 			u8 checksum = 0;
 			for (i = 0; i < 21; i++)
 				checksum += ee[i];
diff --git a/drivers/media/video/bt8xx/bttv-gpio.c b/drivers/media/video/bt8xx/bttv-gpio.c
index fd604d3..a74b284 100644
--- a/drivers/media/video/bt8xx/bttv-gpio.c
+++ b/drivers/media/video/bt8xx/bttv-gpio.c
@@ -43,7 +43,7 @@ static int bttv_sub_bus_match(struct device *dev, struct device_driver *drv)
 	struct bttv_sub_driver *sub = to_bttv_sub_drv(drv);
 	int len = strlen(sub->wanted);
 
-	if (0 == strncmp(dev_name(dev), sub->wanted, len))
+	if (0 == memcmp(dev_name(dev), sub->wanted, len))
 		return 1;
 	return 0;
 }
diff --git a/drivers/media/video/bw-qcam.c b/drivers/media/video/bw-qcam.c
index 935e0c9..b58915c 100644
--- a/drivers/media/video/bw-qcam.c
+++ b/drivers/media/video/bw-qcam.c
@@ -1021,7 +1021,7 @@ static int accept_bwqcam(struct parport *port)
 #ifdef MODULE
 	int n;
 
-	if (parport[0] && strncmp(parport[0], "auto", 4) != 0) {
+	if (parport[0] && memcmp(parport[0], "auto", 4) != 0) {
 		/* user gave parport parameters */
 		for (n = 0; n < MAX_CAMS && parport[n]; n++) {
 			char *ep;
diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index f3dc89d..e39367c 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -1021,7 +1021,7 @@ static ssize_t store_pan_tilt(struct device *class_dev,
 	int pan, tilt;
 	int ret = -EINVAL;
 
-	if (strncmp(buf, "reset", 5) == 0)
+	if (memcmp(buf, "reset", 5) == 0)
 		ret = pwc_mpt_reset(pdev, 0x3);
 
 	else if (sscanf(buf, "%d %d", &pan, &tilt) > 0)
diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c
index b5afe5f..c531e10 100644
--- a/drivers/media/video/stk-webcam.c
+++ b/drivers/media/video/stk-webcam.c
@@ -280,9 +280,9 @@ static ssize_t store_hflip(struct device *class,
 	struct video_device *vdev = to_video_device(class);
 	struct stk_camera *dev = vdev_to_camera(vdev);
 
-	if (strncmp(buf, "1", 1) == 0)
+	if (memcmp(buf, "1", 1) == 0)
 		dev->vsettings.hflip = 1;
-	else if (strncmp(buf, "0", 1) == 0)
+	else if (memcmp(buf, "0", 1) == 0)
 		dev->vsettings.hflip = 0;
 	else
 		return -EINVAL;
@@ -305,9 +305,9 @@ static ssize_t store_vflip(struct device *class,
 	struct video_device *vdev = to_video_device(class);
 	struct stk_camera *dev = vdev_to_camera(vdev);
 
-	if (strncmp(buf, "1", 1) == 0)
+	if (memcmp(buf, "1", 1) == 0)
 		dev->vsettings.vflip = 1;
-	else if (strncmp(buf, "0", 1) == 0)
+	else if (memcmp(buf, "0", 1) == 0)
 		dev->vsettings.vflip = 0;
 	else
 		return -EINVAL;
diff --git a/drivers/media/video/tlg2300/pd-dvb.c b/drivers/media/video/tlg2300/pd-dvb.c
index edd78f8..30014ec 100644
--- a/drivers/media/video/tlg2300/pd-dvb.c
+++ b/drivers/media/video/tlg2300/pd-dvb.c
@@ -390,7 +390,7 @@ static void dvb_urb_irq(struct urb *urb)
 		 * last packet contains 456 bytes tsp data
 		 */
 		for (offset = 456; offset < len; offset += 512) {
-			if (!strncmp(buf + offset, "DVHS", 4)) {
+			if (!memcmp(buf + offset, "DVHS", 4)) {
 				dvb_dmx_swfilter(demux, buf, offset);
 				if (len > offset + 52 + 4) {
 					/*16 bytes trailer + 36 bytes padding */
diff --git a/drivers/media/video/tlg2300/pd-video.c b/drivers/media/video/tlg2300/pd-video.c
index a1ffe18..7fb418c 100644
--- a/drivers/media/video/tlg2300/pd-video.c
+++ b/drivers/media/video/tlg2300/pd-video.c
@@ -281,7 +281,7 @@ static void check_trailer(struct video_data *video, char *src, int count)
 	buf = src + offset;
 
 	/* trailer : (VFHS) + U32 + U32 + field_num */
-	if (!strncmp(buf, "VFHS", 4)) {
+	if (!memcmp(buf, "VFHS", 4)) {
 		int field_num = *((u32 *)(buf + 12));
 
 		if ((field_num & 1) ^ video->field_count) {
diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
index 9294282..23f4145 100644
--- a/drivers/media/video/v4l2-common.c
+++ b/drivers/media/video/v4l2-common.c
@@ -316,7 +316,7 @@ int v4l2_chip_match_i2c_client(struct i2c_client *c, const struct v4l2_dbg_match
 		/* legacy drivers have a ' suffix, don't try to match that */
 		if (len && c->driver->driver.name[len - 1] == '\'')
 			len--;
-		return len && !strncmp(c->driver->driver.name, match->name, len);
+		return len && !memcmp(c->driver->driver.name, match->name, len);
 	case V4L2_CHIP_MATCH_I2C_ADDR:
 		return c->addr == match->addr;
 	default:
diff --git a/drivers/media/video/v4l2-int-device.c b/drivers/media/video/v4l2-int-device.c
index a935bae..7ca1cd7 100644
--- a/drivers/media/video/v4l2-int-device.c
+++ b/drivers/media/video/v4l2-int-device.c
@@ -50,7 +50,7 @@ void v4l2_int_device_try_attach_all(void)
 
 			/* Slave wants to attach to master? */
 			if (s->u.slave->attach_to[0] != 0
-			    && strncmp(m->name, s->u.slave->attach_to,
+			    && memcmp(m->name, s->u.slave->attach_to,
 				       V4L2NAMESIZE))
 				continue;
 
diff --git a/drivers/media/video/zoran/zoran_procfs.c b/drivers/media/video/zoran/zoran_procfs.c
index f1423b7..ec7ea39 100644
--- a/drivers/media/video/zoran/zoran_procfs.c
+++ b/drivers/media/video/zoran/zoran_procfs.c
@@ -95,7 +95,7 @@ setparam (struct zoran *zr,
 	int i = 0, reg0, reg, val;
 
 	while (zr67[i].name != NULL) {
-		if (!strncmp(name, zr67[i].name, strlen(zr67[i].name))) {
+		if (!memcmp(name, zr67[i].name, strlen(zr67[i].name))) {
 			reg = reg0 = btread(zr67[i].reg);
 			reg &= ~(zr67[i].mask << zr67[i].bit);
 			if (!isdigit(sval[0]))
diff --git a/drivers/misc/ad525x_dpot.c b/drivers/misc/ad525x_dpot.c
index 7cb9110..d90a715 100644
--- a/drivers/misc/ad525x_dpot.c
+++ b/drivers/misc/ad525x_dpot.c
@@ -460,7 +460,7 @@ static ssize_t sysfs_set_reg(struct device *dev,
 	int err;
 
 	if (reg & DPOT_ADDR_OTP_EN) {
-		if (!strncmp(buf, "enabled", sizeof("enabled")))
+		if (!memcmp(buf, "enabled", sizeof("enabled")))
 			set_bit(DPOT_RDAC_MASK & reg, data->otp_en_mask);
 		else
 			clear_bit(DPOT_RDAC_MASK & reg, data->otp_en_mask);
diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c
index 00e5fca..9293aea 100644
--- a/drivers/misc/enclosure.c
+++ b/drivers/misc/enclosure.c
@@ -447,7 +447,7 @@ static ssize_t set_component_status(struct device *cdev,
 	int i;
 
 	for (i = 0; enclosure_status[i]; i++) {
-		if (strncmp(buf, enclosure_status[i],
+		if (memcmp(buf, enclosure_status[i],
 			    strlen(enclosure_status[i])) == 0 &&
 		    (buf[strlen(enclosure_status[i])] == '\n' ||
 		     buf[strlen(enclosure_status[i])] == '\0'))
diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
index 59c118c..d996e66 100644
--- a/drivers/misc/kgdbts.c
+++ b/drivers/misc/kgdbts.c
@@ -360,8 +360,8 @@ static void skip_back_repeat_test(char *arg)
 static int got_break(char *put_str, char *arg)
 {
 	test_complete = 1;
-	if (!strncmp(put_str+1, arg, 2)) {
-		if (!strncmp(arg, "T0", 2))
+	if (!memcmp(put_str+1, arg, 2)) {
+		if (!memcmp(arg, "T0", 2))
 			test_complete = 2;
 		return 0;
 	}
@@ -401,7 +401,7 @@ static void emul_sstep_get(char *arg)
 static int emul_sstep_put(char *put_str, char *arg)
 {
 	if (!arch_needs_sstep_emulation) {
-		if (!strncmp(put_str+1, arg, 2))
+		if (!memcmp(put_str+1, arg, 2))
 			return 0;
 		return 1;
 	}
@@ -418,19 +418,19 @@ static int emul_sstep_put(char *put_str, char *arg)
 			BREAK_INSTR_SIZE;
 		break;
 	case 2:
-		if (strncmp(put_str, "$OK", 3)) {
+		if (memcmp(put_str, "$OK", 3)) {
 			eprintk("kgdbts: failed sstep break set\n");
 			return 1;
 		}
 		break;
 	case 3:
-		if (strncmp(put_str, "$T0", 3)) {
+		if (memcmp(put_str, "$T0", 3)) {
 			eprintk("kgdbts: failed continue sstep\n");
 			return 1;
 		}
 		break;
 	case 4:
-		if (strncmp(put_str, "$OK", 3)) {
+		if (memcmp(put_str, "$OK", 3)) {
 			eprintk("kgdbts: failed sstep break unset\n");
 			return 1;
 		}
@@ -448,7 +448,7 @@ static int emul_sstep_put(char *put_str, char *arg)
 
 static int final_ack_set(char *put_str, char *arg)
 {
-	if (strncmp(put_str+1, arg, 2))
+	if (memcmp(put_str+1, arg, 2))
 		return 1;
 	final_ack = 1;
 	return 0;
diff --git a/drivers/mtd/ar7part.c b/drivers/mtd/ar7part.c
index 6697a1e..96a2e2f 100644
--- a/drivers/mtd/ar7part.c
+++ b/drivers/mtd/ar7part.c
@@ -74,7 +74,7 @@ static int create_mtd_partitions(struct mtd_info *master,
 		offset = pre_size;
 		master->read(master, offset,
 			     sizeof(header), &len, (uint8_t *)&header);
-		if (!strncmp((char *)&header, "TIENV0.8", 8))
+		if (!memcmp((char *)&header, "TIENV0.8", 8))
 			ar7_parts[1].offset = pre_size;
 		if (header.checksum == LOADER_MAGIC1)
 			break;
diff --git a/drivers/mtd/cmdlinepart.c b/drivers/mtd/cmdlinepart.c
index e790f38..cecf88f 100644
--- a/drivers/mtd/cmdlinepart.c
+++ b/drivers/mtd/cmdlinepart.c
@@ -152,14 +152,14 @@ static struct mtd_partition * newpart(char *s,
 	extra_mem_size += name_len + 1;
 
         /* test for options */
-        if (strncmp(s, "ro", 2) == 0)
+        if (memcmp(s, "ro", 2) == 0)
 	{
 		mask_flags |= MTD_WRITEABLE;
 		s += 2;
         }
 
         /* if lk is found do NOT unlock the MTD partition*/
-        if (strncmp(s, "lk", 2) == 0)
+        if (memcmp(s, "lk", 2) == 0)
 	{
 		mask_flags |= MTD_POWERUP_LOCK;
 		s += 2;
diff --git a/drivers/mtd/maps/bcm963xx-flash.c b/drivers/mtd/maps/bcm963xx-flash.c
index d175c12..fdcb8ba 100644
--- a/drivers/mtd/maps/bcm963xx-flash.c
+++ b/drivers/mtd/maps/bcm963xx-flash.c
@@ -164,7 +164,7 @@ static int bcm963xx_detect_cfe(struct mtd_info *master)
 	buf[retlen] = 0;
 	printk(KERN_INFO PFX "Read Signature value of %s\n", buf);
 
-	return strncmp(idstring, buf, 8);
+	return memcmp(idstring, buf, 8);
 }
 
 static int bcm963xx_probe(struct platform_device *pdev)
diff --git a/drivers/mtd/ubi/vmt.c b/drivers/mtd/ubi/vmt.c
index c47620d..150bbaf 100644
--- a/drivers/mtd/ubi/vmt.c
+++ b/drivers/mtd/ubi/vmt.c
@@ -848,7 +848,7 @@ static int paranoid_check_volume(struct ubi_device *ubi, int vol_id)
 
 	if (alignment != vol->alignment || data_pad != vol->data_pad ||
 	    upd_marker != vol->upd_marker || vol_type != vol->vol_type ||
-	    name_len != vol->name_len || strncmp(name, vol->name, name_len)) {
+	    name_len != vol->name_len || memcmp(name, vol->name, name_len)) {
 		ubi_err("volume info is different");
 		goto fail;
 	}
diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c
index fcdb7f6..a0b429d 100644
--- a/drivers/mtd/ubi/vtbl.c
+++ b/drivers/mtd/ubi/vtbl.c
@@ -274,7 +274,7 @@ static int vtbl_check(const struct ubi_device *ubi,
 			int len2 = be16_to_cpu(vtbl[n].name_len);
 
 			if (len1 > 0 && len1 == len2 &&
-			    !strncmp(vtbl[i].name, vtbl[n].name, len1)) {
+			    !memcmp(vtbl[i].name, vtbl[n].name, len1)) {
 				ubi_err("volumes %d and %d have the same name"
 					" \"%s\"", i, n, vtbl[i].name);
 				ubi_dbg_dump_vtbl_record(&vtbl[i], i);
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index e69eead..541d2fc 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -1201,7 +1201,7 @@ static int __init ltpc_setup(char *str)
 	str = get_options(str, ARRAY_SIZE(ints), ints);
 
 	if (ints[0] == 0) {
-		if (str && !strncmp(str, "auto", 4)) {
+		if (str && !memcmp(str, "auto", 4)) {
 			/* do nothing :-) */
 		}
 		else {
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 9709b85..60662e8 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -8321,8 +8321,8 @@ static void __devinit bnx2x_read_fwinfo(struct bnx2x *bp)
 	/* vendor specific info */
 	snprintf(str_id_reg, VENDOR_ID_LEN + 1, "%04x", PCI_VENDOR_ID_DELL);
 	snprintf(str_id_cap, VENDOR_ID_LEN + 1, "%04X", PCI_VENDOR_ID_DELL);
-	if (!strncmp(str_id_reg, &vpd_data[rodi], VENDOR_ID_LEN) ||
-	    !strncmp(str_id_cap, &vpd_data[rodi], VENDOR_ID_LEN)) {
+	if (!memcmp(str_id_reg, &vpd_data[rodi], VENDOR_ID_LEN) ||
+	    !memcmp(str_id_cap, &vpd_data[rodi], VENDOR_ID_LEN)) {
 
 		rodi = pci_vpd_find_info_keyword(vpd_data, i, block_end,
 						PCI_VPD_RO_KEYWORD_VENDOR0);
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index 8fd0174..4caf449 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -85,7 +85,7 @@ static struct net_device *bond_get_by_name(struct net *net, const char *ifname)
 	struct bonding *bond;
 
 	list_for_each_entry(bond, &bn->dev_list, bond_list) {
-		if (strncmp(bond->dev->name, ifname, IFNAMSIZ) == 0)
+		if (memcmp(bond->dev->name, ifname, IFNAMSIZ) == 0)
 			return bond->dev;
 	}
 	return NULL;
diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c
index 20da199..88a7380 100644
--- a/drivers/net/caif/caif_spi.c
+++ b/drivers/net/caif/caif_spi.c
@@ -649,7 +649,7 @@ int cfspi_spi_probe(struct platform_device *pdev)
 	cfspi->qd_high_mark = HIGH_WATER_MARK;
 
 	/* Set slave info. */
-	if (!strncmp(cfspi_spi_driver.driver.name, "cfspi_sspi", 10)) {
+	if (!memcmp(cfspi_spi_driver.driver.name, "cfspi_sspi", 10)) {
 		cfspi->slave = true;
 		cfspi->slave_talked = false;
 	} else {
diff --git a/drivers/net/enic/vnic_dev.c b/drivers/net/enic/vnic_dev.c
index fb35d8b..3ec3548 100644
--- a/drivers/net/enic/vnic_dev.c
+++ b/drivers/net/enic/vnic_dev.c
@@ -428,9 +428,9 @@ int vnic_dev_hw_version(struct vnic_dev *vdev, enum vnic_dev_hw_version *hw_ver)
 	if (err)
 		return err;
 
-	if (strncmp(fw_info->hw_version, "A1", sizeof("A1")) == 0)
+	if (memcmp(fw_info->hw_version, "A1", sizeof("A1")) == 0)
 		*hw_ver = VNIC_DEV_HW_VER_A1;
-	else if (strncmp(fw_info->hw_version, "A2", sizeof("A2")) == 0)
+	else if (memcmp(fw_info->hw_version, "A2", sizeof("A2")) == 0)
 		*hw_ver = VNIC_DEV_HW_VER_A2;
 	else
 		*hw_ver = VNIC_DEV_HW_VER_UNKNOWN;
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c
index fb717be..b28cec3 100644
--- a/drivers/net/eth16i.c
+++ b/drivers/net/eth16i.c
@@ -1382,13 +1382,13 @@ static ushort eth16i_parse_mediatype(const char* s)
 	if(!s)
 		return E_PORT_FROM_EPROM;
 
-        if (!strncmp(s, "bnc", 3))
+        if (!memcmp(s, "bnc", 3))
 		return E_PORT_BNC;
-        else if (!strncmp(s, "tp", 2))
+        else if (!memcmp(s, "tp", 2))
                 return E_PORT_TP;
-        else if (!strncmp(s, "dix", 3))
+        else if (!memcmp(s, "dix", 3))
                 return E_PORT_DIX;
-        else if (!strncmp(s, "auto", 4))
+        else if (!memcmp(s, "auto", 4))
 		return E_PORT_AUTO;
 	else
 		return E_PORT_FROM_EPROM;
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index 380d061..77d20bb 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -1361,7 +1361,7 @@ static void __init EthwrkSignature(char *name, char *eeprom_image)
 	char *signatures[] = EWRK3_SIGNATURE;
 
 	for (i=0; *signatures[i] != '\0'; i++)
-		if( !strncmp(eeprom_image+EEPROM_PNAME7, signatures[i], strlen(signatures[i])) )
+		if( !memcmp(eeprom_image+EEPROM_PNAME7, signatures[i], strlen(signatures[i])) )
 			break;
 
 	if (*signatures[i] != '\0') {
diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c
index 8d3a2cc..896c29a 100644
--- a/drivers/net/fsl_pq_mdio.c
+++ b/drivers/net/fsl_pq_mdio.c
@@ -375,7 +375,7 @@ static int fsl_pq_mdio_probe(struct platform_device *ofdev,
 	}
 
 	for_each_child_of_node(np, tbi) {
-		if (!strncmp(tbi->type, "tbi-phy", 8))
+		if (!memcmp(tbi->type, "tbi-phy", 8))
 			break;
 	}
 
diff --git a/drivers/net/gianfar_sysfs.c b/drivers/net/gianfar_sysfs.c
index 64f4094..0fbcf62 100644
--- a/drivers/net/gianfar_sysfs.c
+++ b/drivers/net/gianfar_sysfs.c
@@ -59,10 +59,10 @@ static ssize_t gfar_set_bd_stash(struct device *dev,
 
 
 	/* Find out the new setting */
-	if (!strncmp("on", buf, count - 1) || !strncmp("1", buf, count - 1))
+	if (!memcmp("on", buf, count - 1) || !strncmp("1", buf, count - 1))
 		new_setting = 1;
-	else if (!strncmp("off", buf, count - 1) ||
-		 !strncmp("0", buf, count - 1))
+	else if (!memcmp("off", buf, count - 1) ||
+		 !memcmp("0", buf, count - 1))
 		new_setting = 0;
 	else
 		return count;
diff --git a/drivers/net/hamradio/baycom_par.c b/drivers/net/hamradio/baycom_par.c
index 5f5af9a..9739745 100644
--- a/drivers/net/hamradio/baycom_par.c
+++ b/drivers/net/hamradio/baycom_par.c
@@ -399,9 +399,9 @@ static struct hdlcdrv_ops par96_ops = {
 
 static int baycom_setmode(struct baycom_state *bc, const char *modestr)
 {
-	if (!strncmp(modestr, "picpar", 6))
+	if (!memcmp(modestr, "picpar", 6))
 		bc->options = 0;
-	else if (!strncmp(modestr, "par96", 5))
+	else if (!memcmp(modestr, "par96", 5))
 		bc->options = BAYCOM_OPTIONS_SOFTDCD;
 	else
 		bc->options = !!strchr(modestr, '*');
diff --git a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c
index 3e25f10..b92ec33 100644
--- a/drivers/net/hamradio/baycom_ser_fdx.c
+++ b/drivers/net/hamradio/baycom_ser_fdx.c
@@ -519,7 +519,7 @@ static int baycom_setmode(struct baycom_state *bc, const char *modestr)
 {
 	unsigned int baud;
 
-	if (!strncmp(modestr, "ser", 3)) {
+	if (!memcmp(modestr, "ser", 3)) {
 		baud = simple_strtoul(modestr+3, NULL, 10);
 		if (baud >= 3 && baud <= 48)
 			bc->baud = baud*100;
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
index ac1d323..7c83f73 100644
--- a/drivers/net/hamradio/bpqether.c
+++ b/drivers/net/hamradio/bpqether.c
@@ -168,7 +168,7 @@ static inline struct net_device *bpq_get_ax25_dev(struct net_device *dev)
 
 static inline int dev_is_ethdev(struct net_device *dev)
 {
-	return dev->type == ARPHRD_ETHER && strncmp(dev->name, "dummy", 5);
+	return dev->type == ARPHRD_ETHER && memcmp(dev->name, "dummy", 5);
 }
 
 /* ------------------------------------------------------------------------ */
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index 2fd3963..fe557f9 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -680,10 +680,10 @@ static ssize_t natsemi_set_dspcfg_workaround(struct device *dev,
 	unsigned long flags;
 
         /* Find out the new setting */
-        if (!strncmp("on", buf, count - 1) || !strncmp("1", buf, count - 1))
+        if (!memcmp("on", buf, count - 1) || !strncmp("1", buf, count - 1))
                 new_setting = 1;
-        else if (!strncmp("off", buf, count - 1) ||
-                 !strncmp("0", buf, count - 1))
+        else if (!memcmp("off", buf, count - 1) ||
+                 !memcmp("0", buf, count - 1))
 		new_setting = 0;
 	else
                  return count;
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c
index 95fe552..81d8779 100644
--- a/drivers/net/netxen/netxen_nic_init.c
+++ b/drivers/net/netxen/netxen_nic_init.c
@@ -867,7 +867,7 @@ nx_get_fw_version(struct netxen_adapter *adapter)
 				cpu_to_le32(fw_data_desc->size) - 17;
 
 		for (i = 0; i < 12; i++) {
-			if (!strncmp(&ver_str[i], "REV=", 4)) {
+			if (!memcmp(&ver_str[i], "REV=", 4)) {
 				ret = sscanf(&ver_str[i+4], "%u.%u.%u ",
 							&major, &minor, &sub);
 				break;
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index 781e368..b8982f4 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -8068,7 +8068,7 @@ static void __devinit niu_vpd_parse_version(struct niu *np)
 	int i;
 
 	for (i = 0; i < len - 5; i++) {
-		if (!strncmp(s + i, "FCode ", 6))
+		if (!memcmp(s + i, "FCode ", 6))
 			break;
 	}
 	if (i >= len - 5)
diff --git a/drivers/net/plip.c b/drivers/net/plip.c
index ca4df7f..5d4261a 100644
--- a/drivers/net/plip.c
+++ b/drivers/net/plip.c
@@ -1355,7 +1355,7 @@ static int __init plip_setup(char *str)
 	str = get_options(str, ARRAY_SIZE(ints), ints);
 
 	/* Ugh. */
-	if (!strncmp(str, "parport", 7)) {
+	if (!memcmp(str, "parport", 7)) {
 		int n = simple_strtoul(str+7, NULL, 10);
 		if (parport_ptr < PLIP_MAX)
 			parport[parport_ptr++] = n;
diff --git a/drivers/net/ps3_gelic_wireless.c b/drivers/net/ps3_gelic_wireless.c
index 4a624a2..2f27e01 100644
--- a/drivers/net/ps3_gelic_wireless.c
+++ b/drivers/net/ps3_gelic_wireless.c
@@ -1732,7 +1732,7 @@ struct gelic_wl_scan_info *gelic_wl_find_best_bss(struct gelic_wl_info *wl)
 		/* If ESSID is set, check it */
 		if (test_bit(GELIC_WL_STAT_ESSID_SET, &wl->stat)) {
 			if ((scan_info->essid_len == wl->essid_len) &&
-			    !strncmp(wl->essid,
+			    !memcmp(wl->essid,
 				     scan_info->hwinfo->essid,
 				     scan_info->essid_len))
 				update_best(&best_bss, scan_info,
diff --git a/drivers/net/qlcnic/qlcnic_init.c b/drivers/net/qlcnic/qlcnic_init.c
index 0d180c6..58b9c2d 100644
--- a/drivers/net/qlcnic/qlcnic_init.c
+++ b/drivers/net/qlcnic/qlcnic_init.c
@@ -955,7 +955,7 @@ qlcnic_get_fw_version(struct qlcnic_adapter *adapter)
 		cpu_to_le32(fw_data_desc->size) - 17;
 
 	for (i = 0; i < 12; i++) {
-		if (!strncmp(&ver_str[i], "REV=", 4)) {
+		if (!memcmp(&ver_str[i], "REV=", 4)) {
 			ret = sscanf(&ver_str[i+4], "%u.%u.%u ",
 					&major, &minor, &sub);
 			if (ret != 3)
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 528eaef..0c59d0a 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -734,7 +734,7 @@ static int ql_validate_flash(struct ql_adapter *qdev, u32 size, const char *str)
 	u16 csum = 0;
 	__le16 *flash = (__le16 *)&qdev->flash;
 
-	status = strncmp((char *)&qdev->flash, str, 4);
+	status = memcmp((char *)&qdev->flash, str, 4);
 	if (status) {
 		netif_err(qdev, ifup, qdev->ndev, "Invalid flash signature.\n");
 		return	status;
diff --git a/drivers/net/stmmac/stmmac_main.c b/drivers/net/stmmac/stmmac_main.c
index 06bc603..b7ac7b2 100644
--- a/drivers/net/stmmac/stmmac_main.c
+++ b/drivers/net/stmmac/stmmac_main.c
@@ -1934,29 +1934,29 @@ static int __init stmmac_cmdline_opt(char *str)
 	if (!str || !*str)
 		return -EINVAL;
 	while ((opt = strsep(&str, ",")) != NULL) {
-		if (!strncmp(opt, "debug:", 6))
+		if (!memcmp(opt, "debug:", 6))
 			strict_strtoul(opt + 6, 0, (unsigned long *)&debug);
-		else if (!strncmp(opt, "phyaddr:", 8))
+		else if (!memcmp(opt, "phyaddr:", 8))
 			strict_strtoul(opt + 8, 0, (unsigned long *)&phyaddr);
-		else if (!strncmp(opt, "dma_txsize:", 11))
+		else if (!memcmp(opt, "dma_txsize:", 11))
 			strict_strtoul(opt + 11, 0,
 				       (unsigned long *)&dma_txsize);
-		else if (!strncmp(opt, "dma_rxsize:", 11))
+		else if (!memcmp(opt, "dma_rxsize:", 11))
 			strict_strtoul(opt + 11, 0,
 				       (unsigned long *)&dma_rxsize);
-		else if (!strncmp(opt, "buf_sz:", 7))
+		else if (!memcmp(opt, "buf_sz:", 7))
 			strict_strtoul(opt + 7, 0, (unsigned long *)&buf_sz);
-		else if (!strncmp(opt, "tc:", 3))
+		else if (!memcmp(opt, "tc:", 3))
 			strict_strtoul(opt + 3, 0, (unsigned long *)&tc);
-		else if (!strncmp(opt, "watchdog:", 9))
+		else if (!memcmp(opt, "watchdog:", 9))
 			strict_strtoul(opt + 9, 0, (unsigned long *)&watchdog);
-		else if (!strncmp(opt, "flow_ctrl:", 10))
+		else if (!memcmp(opt, "flow_ctrl:", 10))
 			strict_strtoul(opt + 10, 0,
 				       (unsigned long *)&flow_ctrl);
-		else if (!strncmp(opt, "pause:", 6))
+		else if (!memcmp(opt, "pause:", 6))
 			strict_strtoul(opt + 6, 0, (unsigned long *)&pause);
 #ifdef CONFIG_STMMAC_TIMER
-		else if (!strncmp(opt, "tmrate:", 7))
+		else if (!memcmp(opt, "tmrate:", 7))
 			strict_strtoul(opt + 7, 0, (unsigned long *)&tmrate);
 #endif
 	}
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 5e28c41..552e164 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -3144,7 +3144,7 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev,
 		struct pci_dev *qpdev = qp->quattro_dev;
 
 		prom_name[0] = 0;
-		if (!strncmp(dev->name, "eth", 3)) {
+		if (!memcmp(dev->name, "eth", 3)) {
 			int i = simple_strtoul(dev->name + 3, NULL, 10);
 			sprintf(prom_name, "-%d", i + 3);
 		}
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
index 10bafd5..5e1d560 100644
--- a/drivers/net/wan/cosa.c
+++ b/drivers/net/wan/cosa.c
@@ -485,9 +485,9 @@ static int cosa_probe(int base, int irq, int dma)
 	}
 
 	/* Test the validity of identification string */
-	if (!strncmp(cosa->id_string, "SRP", 3))
+	if (!memcmp(cosa->id_string, "SRP", 3))
 		cosa->type = "srp";
-	else if (!strncmp(cosa->id_string, "COSA", 4))
+	else if (!memcmp(cosa->id_string, "COSA", 4))
 		cosa->type = is_8bit(cosa)? "cosa8": "cosa16";
 	else {
 /* Print a warning only if we are not autoprobing */
diff --git a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c
index 7f5bb91..1b3ee41 100644
--- a/drivers/net/wan/lapbether.c
+++ b/drivers/net/wan/lapbether.c
@@ -78,7 +78,7 @@ static struct lapbethdev *lapbeth_get_x25_dev(struct net_device *dev)
 
 static __inline__ int dev_is_ethdev(struct net_device *dev)
 {
-	return dev->type == ARPHRD_ETHER && strncmp(dev->name, "dummy", 5);
+	return dev->type == ARPHRD_ETHER && memcmp(dev->name, "dummy", 5);
 }
 
 /* ------------------------------------------------------------------------ */
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index a36e787..ce28219 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -4834,7 +4834,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 	line = data->wbuffer;
 	while( line[0] ) {
 /*** Mode processing */
-		if ( !strncmp( line, "Mode: ", 6 ) ) {
+		if ( !memcmp( line, "Mode: ", 6 ) ) {
 			line += 6;
 			if (sniffing_mode(ai))
 				set_bit (FLAG_RESET, &ai->flags);
@@ -4861,16 +4861,16 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 		}
 
 /*** Radio status */
-		else if (!strncmp(line,"Radio: ", 7)) {
+		else if (!memcmp(line,"Radio: ", 7)) {
 			line += 7;
-			if (!strncmp(line,"off",3)) {
+			if (!memcmp(line,"off",3)) {
 				set_bit (FLAG_RADIO_OFF, &ai->flags);
 			} else {
 				clear_bit (FLAG_RADIO_OFF, &ai->flags);
 			}
 		}
 /*** NodeName processing */
-		else if ( !strncmp( line, "NodeName: ", 10 ) ) {
+		else if ( !memcmp( line, "NodeName: ", 10 ) ) {
 			int j;
 
 			line += 10;
@@ -4883,19 +4883,19 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 		}
 
 /*** PowerMode processing */
-		else if ( !strncmp( line, "PowerMode: ", 11 ) ) {
+		else if ( !memcmp( line, "PowerMode: ", 11 ) ) {
 			line += 11;
-			if ( !strncmp( line, "PSPCAM", 6 ) ) {
+			if ( !memcmp( line, "PSPCAM", 6 ) ) {
 				ai->config.powerSaveMode = POWERSAVE_PSPCAM;
 				set_bit (FLAG_COMMIT, &ai->flags);
-			} else if ( !strncmp( line, "PSP", 3 ) ) {
+			} else if ( !memcmp( line, "PSP", 3 ) ) {
 				ai->config.powerSaveMode = POWERSAVE_PSP;
 				set_bit (FLAG_COMMIT, &ai->flags);
 			} else {
 				ai->config.powerSaveMode = POWERSAVE_CAM;
 				set_bit (FLAG_COMMIT, &ai->flags);
 			}
-		} else if ( !strncmp( line, "DataRates: ", 11 ) ) {
+		} else if ( !memcmp( line, "DataRates: ", 11 ) ) {
 			int v, i = 0, k = 0; /* i is index into line,
 						k is index to rates */
 
@@ -4906,7 +4906,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 				i = 0;
 			}
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "Channel: ", 9 ) ) {
+		} else if ( !memcmp( line, "Channel: ", 9 ) ) {
 			int v, i = 0;
 			line += 9;
 			v = get_dec_u16(line, &i, i+3);
@@ -4914,7 +4914,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 				ai->config.channelSet = cpu_to_le16(v);
 				set_bit (FLAG_COMMIT, &ai->flags);
 			}
-		} else if ( !strncmp( line, "XmitPower: ", 11 ) ) {
+		} else if ( !memcmp( line, "XmitPower: ", 11 ) ) {
 			int v, i = 0;
 			line += 11;
 			v = get_dec_u16(line, &i, i+3);
@@ -4922,7 +4922,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 				ai->config.txPower = cpu_to_le16(v);
 				set_bit (FLAG_COMMIT, &ai->flags);
 			}
-		} else if ( !strncmp( line, "WEP: ", 5 ) ) {
+		} else if ( !memcmp( line, "WEP: ", 5 ) ) {
 			line += 5;
 			switch( line[0] ) {
 			case 's':
@@ -4936,7 +4936,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 				break;
 			}
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "LongRetryLimit: ", 16 ) ) {
+		} else if ( !memcmp( line, "LongRetryLimit: ", 16 ) ) {
 			int v, i = 0;
 
 			line += 16;
@@ -4944,7 +4944,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 			v = (v<0) ? 0 : ((v>255) ? 255 : v);
 			ai->config.longRetryLimit = cpu_to_le16(v);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "ShortRetryLimit: ", 17 ) ) {
+		} else if ( !memcmp( line, "ShortRetryLimit: ", 17 ) ) {
 			int v, i = 0;
 
 			line += 17;
@@ -4952,7 +4952,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 			v = (v<0) ? 0 : ((v>255) ? 255 : v);
 			ai->config.shortRetryLimit = cpu_to_le16(v);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "RTSThreshold: ", 14 ) ) {
+		} else if ( !memcmp( line, "RTSThreshold: ", 14 ) ) {
 			int v, i = 0;
 
 			line += 14;
@@ -4960,7 +4960,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 			v = (v<0) ? 0 : ((v>AIRO_DEF_MTU) ? AIRO_DEF_MTU : v);
 			ai->config.rtsThres = cpu_to_le16(v);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "TXMSDULifetime: ", 16 ) ) {
+		} else if ( !memcmp( line, "TXMSDULifetime: ", 16 ) ) {
 			int v, i = 0;
 
 			line += 16;
@@ -4968,7 +4968,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 			v = (v<0) ? 0 : v;
 			ai->config.txLifetime = cpu_to_le16(v);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "RXMSDULifetime: ", 16 ) ) {
+		} else if ( !memcmp( line, "RXMSDULifetime: ", 16 ) ) {
 			int v, i = 0;
 
 			line += 16;
@@ -4976,17 +4976,17 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 			v = (v<0) ? 0 : v;
 			ai->config.rxLifetime = cpu_to_le16(v);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "TXDiversity: ", 13 ) ) {
+		} else if ( !memcmp( line, "TXDiversity: ", 13 ) ) {
 			ai->config.txDiversity =
 				(line[13]=='l') ? 1 :
 				((line[13]=='r')? 2: 3);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "RXDiversity: ", 13 ) ) {
+		} else if ( !memcmp( line, "RXDiversity: ", 13 ) ) {
 			ai->config.rxDiversity =
 				(line[13]=='l') ? 1 :
 				((line[13]=='r')? 2: 3);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if ( !strncmp( line, "FragThreshold: ", 15 ) ) {
+		} else if ( !memcmp( line, "FragThreshold: ", 15 ) ) {
 			int v, i = 0;
 
 			line += 15;
@@ -4995,7 +4995,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 			v = v & 0xfffe; /* Make sure its even */
 			ai->config.fragThresh = cpu_to_le16(v);
 			set_bit (FLAG_COMMIT, &ai->flags);
-		} else if (!strncmp(line, "Modulation: ", 12)) {
+		} else if (!memcmp(line, "Modulation: ", 12)) {
 			line += 12;
 			switch(*line) {
 			case 'd':  ai->config.modulation=MOD_DEFAULT; set_bit(FLAG_COMMIT, &ai->flags); break;
@@ -5003,7 +5003,7 @@ static void proc_config_on_close(struct inode *inode, struct file *file)
 			case 'm':  ai->config.modulation=MOD_MOK; set_bit(FLAG_COMMIT, &ai->flags); break;
 			default: airo_print_warn(ai->dev->name, "Unknown modulation");
 			}
-		} else if (!strncmp(line, "Preamble: ", 10)) {
+		} else if (!memcmp(line, "Preamble: ", 10)) {
 			line += 10;
 			switch(*line) {
 			case 'a': ai->config.preamble=PREAMBLE_AUTO; set_bit(FLAG_COMMIT, &ai->flags); break;
diff --git a/drivers/net/wireless/ath/ath5k/debug.c b/drivers/net/wireless/ath/ath5k/debug.c
index acda56e..0ac4d04 100644
--- a/drivers/net/wireless/ath/ath5k/debug.c
+++ b/drivers/net/wireless/ath/ath5k/debug.c
@@ -255,10 +255,10 @@ static ssize_t write_file_beacon(struct file *file,
 	if (copy_from_user(buf, userbuf, min(count, sizeof(buf))))
 		return -EFAULT;
 
-	if (strncmp(buf, "disable", 7) == 0) {
+	if (memcmp(buf, "disable", 7) == 0) {
 		AR5K_REG_DISABLE_BITS(ah, AR5K_BEACON, AR5K_BEACON_ENABLE);
 		printk(KERN_INFO "debugfs disable beacons\n");
-	} else if (strncmp(buf, "enable", 6) == 0) {
+	} else if (memcmp(buf, "enable", 6) == 0) {
 		AR5K_REG_ENABLE_BITS(ah, AR5K_BEACON, AR5K_BEACON_ENABLE);
 		printk(KERN_INFO "debugfs enable beacons\n");
 	}
@@ -357,7 +357,7 @@ static ssize_t write_file_debug(struct file *file,
 		return -EFAULT;
 
 	for (i = 0; i < ARRAY_SIZE(dbg_info); i++) {
-		if (strncmp(buf, dbg_info[i].name,
+		if (memcmp(buf, dbg_info[i].name,
 					strlen(dbg_info[i].name)) == 0) {
 			sc->debug.level ^= dbg_info[i].level; /* toggle bit */
 			break;
@@ -459,16 +459,16 @@ static ssize_t write_file_antenna(struct file *file,
 	if (copy_from_user(buf, userbuf, min(count, sizeof(buf))))
 		return -EFAULT;
 
-	if (strncmp(buf, "diversity", 9) == 0) {
+	if (memcmp(buf, "diversity", 9) == 0) {
 		ath5k_hw_set_antenna_mode(sc->ah, AR5K_ANTMODE_DEFAULT);
 		printk(KERN_INFO "ath5k debug: enable diversity\n");
-	} else if (strncmp(buf, "fixed-a", 7) == 0) {
+	} else if (memcmp(buf, "fixed-a", 7) == 0) {
 		ath5k_hw_set_antenna_mode(sc->ah, AR5K_ANTMODE_FIXED_A);
 		printk(KERN_INFO "ath5k debugfs: fixed antenna A\n");
-	} else if (strncmp(buf, "fixed-b", 7) == 0) {
+	} else if (memcmp(buf, "fixed-b", 7) == 0) {
 		ath5k_hw_set_antenna_mode(sc->ah, AR5K_ANTMODE_FIXED_B);
 		printk(KERN_INFO "ath5k debug: fixed antenna B\n");
-	} else if (strncmp(buf, "clear", 5) == 0) {
+	} else if (memcmp(buf, "clear", 5) == 0) {
 		for (i = 0; i < ARRAY_SIZE(sc->stats.antenna_rx); i++) {
 			sc->stats.antenna_rx[i] = 0;
 			sc->stats.antenna_tx[i] = 0;
@@ -630,7 +630,7 @@ static ssize_t write_file_frameerrors(struct file *file,
 	if (copy_from_user(buf, userbuf, min(count, sizeof(buf))))
 		return -EFAULT;
 
-	if (strncmp(buf, "clear", 5) == 0) {
+	if (memcmp(buf, "clear", 5) == 0) {
 		st->rxerr_crc = 0;
 		st->rxerr_phy = 0;
 		st->rxerr_fifo = 0;
@@ -773,35 +773,35 @@ static ssize_t write_file_ani(struct file *file,
 	if (copy_from_user(buf, userbuf, min(count, sizeof(buf))))
 		return -EFAULT;
 
-	if (strncmp(buf, "sens-low", 8) == 0) {
+	if (memcmp(buf, "sens-low", 8) == 0) {
 		ath5k_ani_init(sc->ah, ATH5K_ANI_MODE_MANUAL_HIGH);
-	} else if (strncmp(buf, "sens-high", 9) == 0) {
+	} else if (memcmp(buf, "sens-high", 9) == 0) {
 		ath5k_ani_init(sc->ah, ATH5K_ANI_MODE_MANUAL_LOW);
-	} else if (strncmp(buf, "ani-off", 7) == 0) {
+	} else if (memcmp(buf, "ani-off", 7) == 0) {
 		ath5k_ani_init(sc->ah, ATH5K_ANI_MODE_OFF);
-	} else if (strncmp(buf, "ani-on", 6) == 0) {
+	} else if (memcmp(buf, "ani-on", 6) == 0) {
 		ath5k_ani_init(sc->ah, ATH5K_ANI_MODE_AUTO);
-	} else if (strncmp(buf, "noise-low", 9) == 0) {
+	} else if (memcmp(buf, "noise-low", 9) == 0) {
 		ath5k_ani_set_noise_immunity_level(sc->ah, 0);
-	} else if (strncmp(buf, "noise-high", 10) == 0) {
+	} else if (memcmp(buf, "noise-high", 10) == 0) {
 		ath5k_ani_set_noise_immunity_level(sc->ah,
 						   ATH5K_ANI_MAX_NOISE_IMM_LVL);
-	} else if (strncmp(buf, "spur-low", 8) == 0) {
+	} else if (memcmp(buf, "spur-low", 8) == 0) {
 		ath5k_ani_set_spur_immunity_level(sc->ah, 0);
-	} else if (strncmp(buf, "spur-high", 9) == 0) {
+	} else if (memcmp(buf, "spur-high", 9) == 0) {
 		ath5k_ani_set_spur_immunity_level(sc->ah,
 						  sc->ani_state.max_spur_level);
-	} else if (strncmp(buf, "fir-low", 7) == 0) {
+	} else if (memcmp(buf, "fir-low", 7) == 0) {
 		ath5k_ani_set_firstep_level(sc->ah, 0);
-	} else if (strncmp(buf, "fir-high", 8) == 0) {
+	} else if (memcmp(buf, "fir-high", 8) == 0) {
 		ath5k_ani_set_firstep_level(sc->ah, ATH5K_ANI_MAX_FIRSTEP_LVL);
-	} else if (strncmp(buf, "ofdm-off", 8) == 0) {
+	} else if (memcmp(buf, "ofdm-off", 8) == 0) {
 		ath5k_ani_set_ofdm_weak_signal_detection(sc->ah, false);
-	} else if (strncmp(buf, "ofdm-on", 7) == 0) {
+	} else if (memcmp(buf, "ofdm-on", 7) == 0) {
 		ath5k_ani_set_ofdm_weak_signal_detection(sc->ah, true);
-	} else if (strncmp(buf, "cck-off", 7) == 0) {
+	} else if (memcmp(buf, "cck-off", 7) == 0) {
 		ath5k_ani_set_cck_weak_signal_detection(sc->ah, false);
-	} else if (strncmp(buf, "cck-on", 6) == 0) {
+	} else if (memcmp(buf, "cck-on", 6) == 0) {
 		ath5k_ani_set_cck_weak_signal_detection(sc->ah, true);
 	}
 	return count;
@@ -869,9 +869,9 @@ static ssize_t write_file_queue(struct file *file,
 	if (copy_from_user(buf, userbuf, min(count, sizeof(buf))))
 		return -EFAULT;
 
-	if (strncmp(buf, "start", 5) == 0)
+	if (memcmp(buf, "start", 5) == 0)
 		ieee80211_wake_queues(sc->hw);
-	else if (strncmp(buf, "stop", 4) == 0)
+	else if (memcmp(buf, "stop", 4) == 0)
 		ieee80211_stop_queues(sc->hw);
 
 	return count;
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 43e71a9..9b08c31 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -543,27 +543,27 @@ static ssize_t write_file_wiphy(struct file *file, const char __user *user_buf,
 	if (len > 0 && buf[len - 1] == '\n')
 		buf[len - 1] = '\0';
 
-	if (strncmp(buf, "add", 3) == 0) {
+	if (memcmp(buf, "add", 3) == 0) {
 		int res = ath9k_wiphy_add(sc);
 		if (res < 0)
 			return res;
-	} else if (strncmp(buf, "del=", 4) == 0) {
+	} else if (memcmp(buf, "del=", 4) == 0) {
 		int res = del_wiphy(sc, buf + 4);
 		if (res < 0)
 			return res;
-	} else if (strncmp(buf, "pause=", 6) == 0) {
+	} else if (memcmp(buf, "pause=", 6) == 0) {
 		int res = pause_wiphy(sc, buf + 6);
 		if (res < 0)
 			return res;
-	} else if (strncmp(buf, "unpause=", 8) == 0) {
+	} else if (memcmp(buf, "unpause=", 8) == 0) {
 		int res = unpause_wiphy(sc, buf + 8);
 		if (res < 0)
 			return res;
-	} else if (strncmp(buf, "select=", 7) == 0) {
+	} else if (memcmp(buf, "select=", 7) == 0) {
 		int res = select_wiphy(sc, buf + 7);
 		if (res < 0)
 			return res;
-	} else if (strncmp(buf, "schedule=", 9) == 0) {
+	} else if (memcmp(buf, "schedule=", 9) == 0) {
 		int res = schedule_wiphy(sc, buf + 9);
 		if (res < 0)
 			return res;
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
index 7c8a38d..a528b7c 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -694,7 +694,7 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv,
 	ath9k_init_channels_rates(priv);
 	ath9k_init_misc(priv);
 
-	if (product && strncmp(product, ATH_HTC_BTCOEX_PRODUCT_ID, 5) == 0) {
+	if (product && memcmp(product, ATH_HTC_BTCOEX_PRODUCT_ID, 5) == 0) {
 		ah->btcoex_hw.scheme = ATH_BTCOEX_CFG_3WIRE;
 		ath9k_init_btcoex(priv);
 	}
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index c3a3292..6732ff8 100644
--- a/drivers/net/znet.c
+++ b/drivers/net/znet.c
@@ -378,7 +378,7 @@ static int __init znet_probe (void)
 
 	/* This code scans the region 0xf0000 to 0xfffff for a "NETIDBLK". */
 	for(p = (char *)phys_to_virt(0xf0000); p < (char *)phys_to_virt(0x100000); p++)
-		if (*p == 'N'  &&  strncmp(p, "NETIDBLK", 8) == 0)
+		if (*p == 'N'  &&  memcmp(p, "NETIDBLK", 8) == 0)
 			break;
 
 	if (p >= (char *)phys_to_virt(0x100000)) {
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index 8d62fb7..def9849 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -3405,11 +3405,11 @@ static int __init parport_parse_param(const char *s, int *val,
 {
 	if (!s)
 		return 0;
-	if (!strncmp(s, "auto", 4))
+	if (!memcmp(s, "auto", 4))
 		*val = automatic;
-	else if (!strncmp(s, "none", 4))
+	else if (!memcmp(s, "none", 4))
 		*val = none;
-	else if (nofifo && !strncmp(s, "nofifo", 6))
+	else if (nofifo && !memcmp(s, "nofifo", 6))
 		*val = nofifo;
 	else {
 		char *ep;
@@ -3554,7 +3554,7 @@ static int __init parport_setup(char *str)
 		return 1;
 	}
 
-	if (!strncmp(str, "auto", 4)) {
+	if (!memcmp(str, "auto", 4)) {
 		irqval[0] = PARPORT_IRQ_AUTO;
 		dmaval[0] = PARPORT_DMA_AUTO;
 		return 1;
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 4789f8e..4fc297d 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -398,21 +398,21 @@ static int __init intel_iommu_setup(char *str)
 	if (!str)
 		return -EINVAL;
 	while (*str) {
-		if (!strncmp(str, "on", 2)) {
+		if (!memcmp(str, "on", 2)) {
 			dmar_disabled = 0;
 			printk(KERN_INFO "Intel-IOMMU: enabled\n");
-		} else if (!strncmp(str, "off", 3)) {
+		} else if (!memcmp(str, "off", 3)) {
 			dmar_disabled = 1;
 			printk(KERN_INFO "Intel-IOMMU: disabled\n");
-		} else if (!strncmp(str, "igfx_off", 8)) {
+		} else if (!memcmp(str, "igfx_off", 8)) {
 			dmar_map_gfx = 0;
 			printk(KERN_INFO
 				"Intel-IOMMU: disable GFX device mapping\n");
-		} else if (!strncmp(str, "forcedac", 8)) {
+		} else if (!memcmp(str, "forcedac", 8)) {
 			printk(KERN_INFO
 				"Intel-IOMMU: Forcing DAC for PCI devices\n");
 			dmar_forcedac = 1;
-		} else if (!strncmp(str, "strict", 6)) {
+		} else if (!memcmp(str, "strict", 6)) {
 			printk(KERN_INFO
 				"Intel-IOMMU: disable batched IOTLB flush\n");
 			intel_iommu_strict = 1;
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c
index ec87cd6..261da59 100644
--- a/drivers/pci/intr_remapping.c
+++ b/drivers/pci/intr_remapping.c
@@ -35,11 +35,11 @@ static __init int setup_intremap(char *str)
 	if (!str)
 		return -EINVAL;
 
-	if (!strncmp(str, "on", 2))
+	if (!memcmp(str, "on", 2))
 		disable_intremap = 0;
-	else if (!strncmp(str, "off", 3))
+	else if (!memcmp(str, "off", 3))
 		disable_intremap = 1;
-	else if (!strncmp(str, "nosid", 5))
+	else if (!memcmp(str, "nosid", 5))
 		disable_sourceid_checking = 1;
 
 	return 0;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 710c8a2..61f5bc8 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3086,18 +3086,18 @@ static int __init pci_setup(char *str)
 				pci_no_aer();
 			} else if (!strcmp(str, "nodomains")) {
 				pci_no_domains();
-			} else if (!strncmp(str, "cbiosize=", 9)) {
+			} else if (!memcmp(str, "cbiosize=", 9)) {
 				pci_cardbus_io_size = memparse(str + 9, &str);
-			} else if (!strncmp(str, "cbmemsize=", 10)) {
+			} else if (!memcmp(str, "cbmemsize=", 10)) {
 				pci_cardbus_mem_size = memparse(str + 10, &str);
-			} else if (!strncmp(str, "resource_alignment=", 19)) {
+			} else if (!memcmp(str, "resource_alignment=", 19)) {
 				pci_set_resource_alignment_param(str + 19,
 							strlen(str + 19));
-			} else if (!strncmp(str, "ecrc=", 5)) {
+			} else if (!memcmp(str, "ecrc=", 5)) {
 				pcie_ecrc_get_policy(str + 5);
-			} else if (!strncmp(str, "hpiosize=", 9)) {
+			} else if (!memcmp(str, "hpiosize=", 9)) {
 				pci_hotplug_io_size = memparse(str + 9, &str);
-			} else if (!strncmp(str, "hpmemsize=", 10)) {
+			} else if (!memcmp(str, "hpmemsize=", 10)) {
 				pci_hotplug_mem_size = memparse(str + 10, &str);
 			} else {
 				printk(KERN_ERR "PCI: Unknown option `%s'\n",
diff --git a/drivers/pci/pcie/aer/ecrc.c b/drivers/pci/pcie/aer/ecrc.c
index a2747a6..1121c27 100644
--- a/drivers/pci/pcie/aer/ecrc.c
+++ b/drivers/pci/pcie/aer/ecrc.c
@@ -121,7 +121,7 @@ void pcie_ecrc_get_policy(char *str)
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(ecrc_policy_str); i++)
-		if (!strncmp(str, ecrc_policy_str[i],
+		if (!memcmp(str, ecrc_policy_str[i],
 			     strlen(ecrc_policy_str[i])))
 			break;
 	if (i >= ARRAY_SIZE(ecrc_policy_str))
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 7122281..7b729f9 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -741,7 +741,7 @@ static int pcie_aspm_set_policy(const char *val, struct kernel_param *kp)
 	struct pcie_link_state *link;
 
 	for (i = 0; i < ARRAY_SIZE(policy_str); i++)
-		if (!strncmp(val, policy_str[i], strlen(policy_str[i])))
+		if (!memcmp(val, policy_str[i], strlen(policy_str[i])))
 			break;
 	if (i >= ARRAY_SIZE(policy_str))
 		return -EINVAL;
diff --git a/drivers/pci/pcie/pme.c b/drivers/pci/pcie/pme.c
index 2f3c904..d909f45 100644
--- a/drivers/pci/pcie/pme.c
+++ b/drivers/pci/pcie/pme.c
@@ -39,7 +39,7 @@ bool pcie_pme_msi_disabled;
 
 static int __init pcie_pme_setup(char *str)
 {
-	if (!strncmp(str, "nomsi", 5))
+	if (!memcmp(str, "nomsi", 5))
 		pcie_pme_msi_disabled = true;
 
 	return 1;
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
index f9033e1..30ff67b 100644
--- a/drivers/pci/pcie/portdrv_pci.c
+++ b/drivers/pci/pcie/portdrv_pci.c
@@ -41,12 +41,12 @@ bool pcie_ports_auto = true;
 
 static int __init pcie_port_setup(char *str)
 {
-	if (!strncmp(str, "compat", 6)) {
+	if (!memcmp(str, "compat", 6)) {
 		pcie_ports_disabled = true;
-	} else if (!strncmp(str, "native", 6)) {
+	} else if (!memcmp(str, "native", 6)) {
 		pcie_ports_disabled = false;
 		pcie_ports_auto = false;
-	} else if (!strncmp(str, "auto", 4)) {
+	} else if (!memcmp(str, "auto", 4)) {
 		pcie_ports_disabled = false;
 		pcie_ports_auto = true;
 	}
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index 884a984..e9a9cc8 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -502,7 +502,7 @@ static int follow_link(struct pcmcia_socket *s, tuple_t *tuple)
 		if (ret)
 			return -1;
 		if ((link[0] == CISTPL_LINKTARGET) && (link[1] >= 3) &&
-			(strncmp(link+2, "CIS", 3) == 0))
+			(memcmp(link+2, "CIS", 3) == 0))
 			return ofs;
 		remove_cis_cache(s, SPACE(tuple->Flags), ofs, 5);
 		/* Then, we try the wrong spot... */
@@ -512,7 +512,7 @@ static int follow_link(struct pcmcia_socket *s, tuple_t *tuple)
 	if (ret)
 		return -1;
 	if ((link[0] == CISTPL_LINKTARGET) && (link[1] >= 3) &&
-		(strncmp(link+2, "CIS", 3) == 0))
+		(memcmp(link+2, "CIS", 3) == 0))
 		return ofs;
 	remove_cis_cache(s, SPACE(tuple->Flags), ofs, 5);
 	return -1;
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 100c441..79d4d04 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -1050,9 +1050,9 @@ static ssize_t pcmcia_store_pm_state(struct device *dev, struct device_attribute
 	if (!count)
 		return -EINVAL;
 
-	if ((!p_dev->suspended) && !strncmp(buf, "off", 3))
+	if ((!p_dev->suspended) && !memcmp(buf, "off", 3))
 		ret = runtime_suspend(dev);
-	else if (p_dev->suspended && !strncmp(buf, "on", 2))
+	else if (p_dev->suspended && !memcmp(buf, "on", 2))
 		ret = runtime_resume(dev);
 
 	return ret ? ret : count;
diff --git a/drivers/pcmcia/socket_sysfs.c b/drivers/pcmcia/socket_sysfs.c
index 71aeed9..05931ba 100644
--- a/drivers/pcmcia/socket_sysfs.c
+++ b/drivers/pcmcia/socket_sysfs.c
@@ -115,10 +115,10 @@ static ssize_t pccard_store_card_pm_state(struct device *dev,
 	if (!count)
 		return -EINVAL;
 
-	if (!strncmp(buf, "off", 3))
+	if (!memcmp(buf, "off", 3))
 		pcmcia_parse_uevents(s, PCMCIA_UEVENT_SUSPEND);
 	else {
-		if (!strncmp(buf, "on", 2))
+		if (!memcmp(buf, "on", 2))
 			pcmcia_parse_uevents(s, PCMCIA_UEVENT_RESUME);
 		else
 			ret = -EINVAL;
diff --git a/drivers/pcmcia/vrc4171_card.c b/drivers/pcmcia/vrc4171_card.c
index 86e4a1a..d597cba 100644
--- a/drivers/pcmcia/vrc4171_card.c
+++ b/drivers/pcmcia/vrc4171_card.c
@@ -636,7 +636,7 @@ static int __devinit vrc4171_card_setup(char *options)
 	if (options == NULL || *options == '\0')
 		return 1;
 
-	if (strncmp(options, "irq:", 4) == 0) {
+	if (memcmp(options, "irq:", 4) == 0) {
 		int irq;
 		options += 4;
 		irq = simple_strtoul(options, &options, 0);
@@ -648,16 +648,16 @@ static int __devinit vrc4171_card_setup(char *options)
 		options++;
 	}
 
-	if (strncmp(options, "slota:", 6) == 0) {
+	if (memcmp(options, "slota:", 6) == 0) {
 		options += 6;
 		if (*options != '\0') {
-			if (strncmp(options, "memnoprobe", 10) == 0) {
+			if (memcmp(options, "memnoprobe", 10) == 0) {
 				vrc4171_sockets[CARD_SLOTA].slot = SLOT_NOPROBE_MEM;
 				options += 10;
-			} else if (strncmp(options, "ionoprobe", 9) == 0) {
+			} else if (memcmp(options, "ionoprobe", 9) == 0) {
 				vrc4171_sockets[CARD_SLOTA].slot = SLOT_NOPROBE_IO;
 				options += 9;
-			} else if ( strncmp(options, "noprobe", 7) == 0) {
+			} else if ( memcmp(options, "noprobe", 7) == 0) {
 				vrc4171_sockets[CARD_SLOTA].slot = SLOT_NOPROBE_ALL;
 				options += 7;
 			}
@@ -670,19 +670,19 @@ static int __devinit vrc4171_card_setup(char *options)
 
 	}
 
-	if (strncmp(options, "slotb:", 6) == 0) {
+	if (memcmp(options, "slotb:", 6) == 0) {
 		options += 6;
 		if (*options != '\0') {
-			if (strncmp(options, "pccard", 6) == 0) {
+			if (memcmp(options, "pccard", 6) == 0) {
 				vrc4171_slotb = SLOTB_IS_PCCARD;
 				options += 6;
-			} else if (strncmp(options, "cf", 2) == 0) {
+			} else if (memcmp(options, "cf", 2) == 0) {
 				vrc4171_slotb = SLOTB_IS_CF;
 				options += 2;
-			} else if (strncmp(options, "flashrom", 8) == 0) {
+			} else if (memcmp(options, "flashrom", 8) == 0) {
 				vrc4171_slotb = SLOTB_IS_FLASHROM;
 				options += 8;
-			} else if (strncmp(options, "none", 4) == 0) {
+			} else if (memcmp(options, "none", 4) == 0) {
 				vrc4171_slotb = SLOTB_IS_NONE;
 				options += 4;
 			}
@@ -691,11 +691,11 @@ static int __devinit vrc4171_card_setup(char *options)
 				return 1;
 			options++;
 
-			if (strncmp(options, "memnoprobe", 10) == 0)
+			if (memcmp(options, "memnoprobe", 10) == 0)
 				vrc4171_sockets[CARD_SLOTB].slot = SLOT_NOPROBE_MEM;
-			if (strncmp(options, "ionoprobe", 9) == 0)
+			if (memcmp(options, "ionoprobe", 9) == 0)
 				vrc4171_sockets[CARD_SLOTB].slot = SLOT_NOPROBE_IO;
-			if (strncmp(options, "noprobe", 7) == 0)
+			if (memcmp(options, "noprobe", 7) == 0)
 				vrc4171_sockets[CARD_SLOTB].slot = SLOT_NOPROBE_ALL;
 		}
 	}
diff --git a/drivers/pcmcia/vrc4173_cardu.c b/drivers/pcmcia/vrc4173_cardu.c
index c6d36b3..156789a 100644
--- a/drivers/pcmcia/vrc4173_cardu.c
+++ b/drivers/pcmcia/vrc4173_cardu.c
@@ -538,10 +538,10 @@ static int __devinit vrc4173_cardu_setup(char *options)
 	if (options == NULL || *options == '\0')
 		return 1;
 
-	if (strncmp(options, "cardu1:", 7) == 0) {
+	if (memcmp(options, "cardu1:", 7) == 0) {
 		options += 7;
 		if (*options != '\0') {
-			if (strncmp(options, "noprobe", 7) == 0) {
+			if (memcmp(options, "noprobe", 7) == 0) {
 				cardu_sockets[CARDU1].noprobe = 1;
 				options += 7;
 			}
@@ -552,9 +552,9 @@ static int __devinit vrc4173_cardu_setup(char *options)
 			return 1;
 	}
 
-	if (strncmp(options, "cardu2:", 7) == 0) {
+	if (memcmp(options, "cardu2:", 7) == 0) {
 		options += 7;
-		if ((*options != '\0') && (strncmp(options, "noprobe", 7) == 0))
+		if ((*options != '\0') && (memcmp(options, "noprobe", 7) == 0))
 			cardu_sockets[CARDU2].noprobe = 1;
 	}
 
diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
index 60f9cfc..e23a0fd 100644
--- a/drivers/platform/x86/acerhdf.c
+++ b/drivers/platform/x86/acerhdf.c
@@ -533,7 +533,7 @@ static int str_starts_with(const char *str, const char *start)
 	start_len = strlen(start);
 
 	if (str_len >= start_len &&
-			!strncmp(str, start, start_len))
+			!memcmp(str, start, start_len))
 		return 1;
 
 	return 0;
diff --git a/drivers/platform/x86/asus_acpi.c b/drivers/platform/x86/asus_acpi.c
index ca05aef..80b25ac 100644
--- a/drivers/platform/x86/asus_acpi.c
+++ b/drivers/platform/x86/asus_acpi.c
@@ -1210,58 +1210,58 @@ static int asus_model_match(char *model)
 	if (model == NULL)
 		return END_MODEL;
 
-	if (strncmp(model, "L3D", 3) == 0)
+	if (memcmp(model, "L3D", 3) == 0)
 		return L3D;
-	else if (strncmp(model, "L2E", 3) == 0 ||
-		 strncmp(model, "L3H", 3) == 0 || strncmp(model, "L5D", 3) == 0)
+	else if (memcmp(model, "L2E", 3) == 0 ||
+		 memcmp(model, "L3H", 3) == 0 || strncmp(model, "L5D", 3) == 0)
 		return L3H;
-	else if (strncmp(model, "L3", 2) == 0 || strncmp(model, "L2B", 3) == 0)
+	else if (memcmp(model, "L3", 2) == 0 || strncmp(model, "L2B", 3) == 0)
 		return L3C;
-	else if (strncmp(model, "L8L", 3) == 0)
+	else if (memcmp(model, "L8L", 3) == 0)
 		return L8L;
-	else if (strncmp(model, "L4R", 3) == 0)
+	else if (memcmp(model, "L4R", 3) == 0)
 		return L4R;
-	else if (strncmp(model, "M6N", 3) == 0 || strncmp(model, "W3N", 3) == 0)
+	else if (memcmp(model, "M6N", 3) == 0 || strncmp(model, "W3N", 3) == 0)
 		return M6N;
-	else if (strncmp(model, "M6R", 3) == 0 || strncmp(model, "A3G", 3) == 0)
+	else if (memcmp(model, "M6R", 3) == 0 || strncmp(model, "A3G", 3) == 0)
 		return M6R;
-	else if (strncmp(model, "M2N", 3) == 0 ||
-		 strncmp(model, "M3N", 3) == 0 ||
-		 strncmp(model, "M5N", 3) == 0 ||
-		 strncmp(model, "S1N", 3) == 0 ||
-		 strncmp(model, "S5N", 3) == 0)
+	else if (memcmp(model, "M2N", 3) == 0 ||
+		 memcmp(model, "M3N", 3) == 0 ||
+		 memcmp(model, "M5N", 3) == 0 ||
+		 memcmp(model, "S1N", 3) == 0 ||
+		 memcmp(model, "S5N", 3) == 0)
 		return xxN;
-	else if (strncmp(model, "M1", 2) == 0)
+	else if (memcmp(model, "M1", 2) == 0)
 		return M1A;
-	else if (strncmp(model, "M2", 2) == 0 || strncmp(model, "L4E", 3) == 0)
+	else if (memcmp(model, "M2", 2) == 0 || strncmp(model, "L4E", 3) == 0)
 		return M2E;
-	else if (strncmp(model, "L2", 2) == 0)
+	else if (memcmp(model, "L2", 2) == 0)
 		return L2D;
-	else if (strncmp(model, "L8", 2) == 0)
+	else if (memcmp(model, "L8", 2) == 0)
 		return S1x;
-	else if (strncmp(model, "D1", 2) == 0)
+	else if (memcmp(model, "D1", 2) == 0)
 		return D1x;
-	else if (strncmp(model, "A1", 2) == 0)
+	else if (memcmp(model, "A1", 2) == 0)
 		return A1x;
-	else if (strncmp(model, "A2", 2) == 0)
+	else if (memcmp(model, "A2", 2) == 0)
 		return A2x;
-	else if (strncmp(model, "J1", 2) == 0)
+	else if (memcmp(model, "J1", 2) == 0)
 		return S2x;
-	else if (strncmp(model, "L5", 2) == 0)
+	else if (memcmp(model, "L5", 2) == 0)
 		return L5x;
-	else if (strncmp(model, "A4G", 3) == 0)
+	else if (memcmp(model, "A4G", 3) == 0)
 		return A4G;
-	else if (strncmp(model, "W1N", 3) == 0)
+	else if (memcmp(model, "W1N", 3) == 0)
 		return W1N;
-	else if (strncmp(model, "W3V", 3) == 0)
+	else if (memcmp(model, "W3V", 3) == 0)
 		return W3V;
-	else if (strncmp(model, "W5A", 3) == 0)
+	else if (memcmp(model, "W5A", 3) == 0)
 		return W5A;
-	else if (strncmp(model, "R1F", 3) == 0)
+	else if (memcmp(model, "R1F", 3) == 0)
 		return R1F;
-	else if (strncmp(model, "A4S", 3) == 0)
+	else if (memcmp(model, "A4S", 3) == 0)
 		return A4S;
-	else if (strncmp(model, "F3Sa", 4) == 0)
+	else if (memcmp(model, "F3Sa", 4) == 0)
 		return F3Sa;
 	else
 		return END_MODEL;
@@ -1328,7 +1328,7 @@ static int asus_hotk_get_info(void)
 	hotk->model = asus_model_match(string);
 	if (hotk->model == END_MODEL) {	/* match failed */
 		if (asus_info &&
-		    strncmp(asus_info->oem_table_id, "ODEM", 4) == 0) {
+		    memcmp(asus_info->oem_table_id, "ODEM", 4) == 0) {
 			hotk->model = P30;
 			printk(KERN_NOTICE
 			       "  Samsung P30 detected, supported\n");
@@ -1349,28 +1349,28 @@ static int asus_hotk_get_info(void)
 	printk(KERN_NOTICE "  %s model detected, supported\n", string);
 
 	/* Sort of per-model blacklist */
-	if (strncmp(string, "L2B", 3) == 0)
+	if (memcmp(string, "L2B", 3) == 0)
 		hotk->methods->lcd_status = NULL;
 	/* L2B is similar enough to L3C to use its settings, with this only
 	   exception */
-	else if (strncmp(string, "A3G", 3) == 0)
+	else if (memcmp(string, "A3G", 3) == 0)
 		hotk->methods->lcd_status = "\\BLFG";
 	/* A3G is like M6R */
-	else if (strncmp(string, "S5N", 3) == 0 ||
-		 strncmp(string, "M5N", 3) == 0 ||
-		 strncmp(string, "W3N", 3) == 0)
+	else if (memcmp(string, "S5N", 3) == 0 ||
+		 memcmp(string, "M5N", 3) == 0 ||
+		 memcmp(string, "W3N", 3) == 0)
 		hotk->methods->mt_mled = NULL;
 	/* S5N, M5N and W3N have no MLED */
-	else if (strncmp(string, "L5D", 3) == 0)
+	else if (memcmp(string, "L5D", 3) == 0)
 		hotk->methods->mt_wled = NULL;
 	/* L5D's WLED is not controlled by ACPI */
-	else if (strncmp(string, "M2N", 3) == 0 ||
-		 strncmp(string, "W3V", 3) == 0 ||
-		 strncmp(string, "S1N", 3) == 0)
+	else if (memcmp(string, "M2N", 3) == 0 ||
+		 memcmp(string, "W3V", 3) == 0 ||
+		 memcmp(string, "S1N", 3) == 0)
 		hotk->methods->mt_wled = "WLED";
 	/* M2N, S1N and W3V have a usable WLED */
 	else if (asus_info) {
-		if (strncmp(asus_info->oem_table_id, "L1", 2) == 0)
+		if (memcmp(asus_info->oem_table_id, "L1", 2) == 0)
 			hotk->methods->mled_status = NULL;
 		/* S1300A reports L84F, but L1400B too, account for that */
 	}
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 2d61186..64054bb 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -247,7 +247,7 @@ enum tpacpi_hkey_event_t {
 
 #define onoff(status, bit) ((status) & (1 << (bit)) ? "on" : "off")
 #define enabled(status, bit) ((status) & (1 << (bit)) ? "enabled" : "disabled")
-#define strlencmp(a, b) (strncmp((a), (b), strlen(b)))
+#define strlencmp(a, b) (memcmp((a), (b), strlen(b)))
 
 
 /****************************************************************************
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 104b77c..aecd9a9 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -755,7 +755,7 @@ static bool guid_already_parsed(const char *guid_string)
 	struct wmi_block *wblock;
 
 	list_for_each_entry(wblock, &wmi_block_list, list)
-		if (strncmp(wblock->gblock.guid, guid_string, 16) == 0)
+		if (memcmp(wblock->gblock.guid, guid_string, 16) == 0)
 			return true;
 
 	return false;
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
index 2d73dfc..60d20fe 100644
--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -332,7 +332,7 @@ static int __init pnpacpi_setup(char *str)
 {
 	if (str == NULL)
 		return 1;
-	if (!strncmp(str, "off", 3))
+	if (!memcmp(str, "off", 3))
 		pnpacpi_disabled = 1;
 	return 1;
 }
diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
index cfe8685..a9727bf 100644
--- a/drivers/pnp/pnpbios/core.c
+++ b/drivers/pnp/pnpbios/core.c
@@ -410,14 +410,14 @@ static int __init pnpbios_setup(char *str)
 	int invert;
 
 	while ((str != NULL) && (*str != '\0')) {
-		if (strncmp(str, "off", 3) == 0)
+		if (memcmp(str, "off", 3) == 0)
 			pnpbios_disabled = 1;
-		if (strncmp(str, "on", 2) == 0)
+		if (memcmp(str, "on", 2) == 0)
 			pnpbios_disabled = 0;
-		invert = (strncmp(str, "no-", 3) == 0);
+		invert = (memcmp(str, "no-", 3) == 0);
 		if (invert)
 			str += 3;
-		if (strncmp(str, "curr", 4) == 0)
+		if (memcmp(str, "curr", 4) == 0)
 			pnpbios_dont_use_current_config = invert;
 		str = strchr(str, ',');
 		if (str != NULL)
diff --git a/drivers/ps3/ps3av.c b/drivers/ps3/ps3av.c
index a409fa0..f7430da 100644
--- a/drivers/ps3/ps3av.c
+++ b/drivers/ps3/ps3av.c
@@ -749,7 +749,7 @@ static void ps3av_fixup_monitor_info(struct ps3av_info_monitor *info)
 
 	for (i = 0; i < ARRAY_SIZE(ps3av_monitor_quirks); i++) {
 		quirk = &ps3av_monitor_quirks[i];
-		if (!strncmp(info->monitor_name, quirk->monitor_name,
+		if (!memcmp(info->monitor_name, quirk->monitor_name,
 			     sizeof(info->monitor_name))) {
 			pr_info("%s: Applying quirk for %s\n", __func__,
 				quirk->monitor_name);
diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
index 51725f7..bdbcb17 100644
--- a/drivers/rtc/rtc-test.c
+++ b/drivers/rtc/rtc-test.c
@@ -93,11 +93,11 @@ static ssize_t test_irq_store(struct device *dev,
 	struct rtc_device *rtc = platform_get_drvdata(plat_dev);
 
 	retval = count;
-	if (strncmp(buf, "tick", 4) == 0)
+	if (memcmp(buf, "tick", 4) == 0)
 		rtc_update_irq(rtc, 1, RTC_PF | RTC_IRQF);
-	else if (strncmp(buf, "alarm", 5) == 0)
+	else if (memcmp(buf, "alarm", 5) == 0)
 		rtc_update_irq(rtc, 1, RTC_AF | RTC_IRQF);
-	else if (strncmp(buf, "update", 6) == 0)
+	else if (memcmp(buf, "update", 6) == 0)
 		rtc_update_irq(rtc, 1, RTC_UF | RTC_IRQF);
 	else
 		retval = -EINVAL;
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index fb613d7..af50f54 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -820,7 +820,7 @@ static inline int dasd_check_cqr(struct dasd_ccw_req *cqr)
 	if (cqr == NULL)
 		return -EINVAL;
 	device = cqr->startdev;
-	if (strncmp((char *) &cqr->magic, device->discipline->ebcname, 4)) {
+	if (memcmp((char *) &cqr->magic, device->discipline->ebcname, 4)) {
 		DBF_DEV_EVENT(DBF_WARNING, device,
 			    " dasd_ccw_req 0x%08x magic doesn't match"
 			    " discipline 0x%08x",
@@ -1038,7 +1038,7 @@ static void dasd_handle_killed_request(struct ccw_device *cdev,
 
 	if (!cqr->startdev ||
 	    device != cqr->startdev ||
-	    strncmp(cqr->startdev->discipline->ebcname,
+	    memcmp(cqr->startdev->discipline->ebcname,
 		    (char *) &cqr->magic, 4)) {
 		DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s",
 				"invalid device in request");
@@ -1128,7 +1128,7 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm,
 
 	device = (struct dasd_device *) cqr->startdev;
 	if (!device ||
-	    strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) {
+	    memcmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) {
 		DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s",
 				"invalid device in request");
 		return;
diff --git a/drivers/s390/block/dasd_alias.c b/drivers/s390/block/dasd_alias.c
index 4155805..48fada9 100644
--- a/drivers/s390/block/dasd_alias.c
+++ b/drivers/s390/block/dasd_alias.c
@@ -53,9 +53,9 @@ static struct alias_server *_find_server(struct dasd_uid *uid)
 {
 	struct alias_server *pos;
 	list_for_each_entry(pos, &aliastree.serverlist, server) {
-		if (!strncmp(pos->uid.vendor, uid->vendor,
+		if (!memcmp(pos->uid.vendor, uid->vendor,
 			     sizeof(uid->vendor))
-		    && !strncmp(pos->uid.serial, uid->serial,
+		    && !memcmp(pos->uid.serial, uid->serial,
 				sizeof(uid->serial)))
 			return pos;
 	};
@@ -95,7 +95,7 @@ static struct alias_pav_group *_find_group(struct alias_lcu *lcu,
 		search_unit_addr = uid->base_unit_addr;
 	list_for_each_entry(pos, &lcu->grouplist, group) {
 		if (pos->uid.base_unit_addr == search_unit_addr &&
-		    !strncmp(pos->uid.vduit, uid->vduit, sizeof(uid->vduit)))
+		    !memcmp(pos->uid.vduit, uid->vduit, sizeof(uid->vduit)))
 			return pos;
 	};
 	return NULL;
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c
index 8d41f3e..9e01d58 100644
--- a/drivers/s390/block/dasd_devmap.c
+++ b/drivers/s390/block/dasd_devmap.c
@@ -135,7 +135,7 @@ dasd_busid(char **str, int *id0, int *id1, int *devno)
 	int val, old_style;
 
 	/* Interpret ipldev busid */
-	if (strncmp(DASD_IPLDEV, *str, strlen(DASD_IPLDEV)) == 0) {
+	if (memcmp(DASD_IPLDEV, *str, strlen(DASD_IPLDEV)) == 0) {
 		if (ipl_info.type != IPL_TYPE_CCW) {
 			pr_err("The IPL device is not a CCW device\n");
 			return -EINVAL;
@@ -204,13 +204,13 @@ dasd_feature_list(char *str, char **endp)
 	while (1) {
 		for (len = 0;
 		     str[len] && str[len] != ':' && str[len] != ')'; len++);
-		if (len == 2 && !strncmp(str, "ro", 2))
+		if (len == 2 && !memcmp(str, "ro", 2))
 			features |= DASD_FEATURE_READONLY;
-		else if (len == 4 && !strncmp(str, "diag", 4))
+		else if (len == 4 && !memcmp(str, "diag", 4))
 			features |= DASD_FEATURE_USEDIAG;
-		else if (len == 6 && !strncmp(str, "erplog", 6))
+		else if (len == 6 && !memcmp(str, "erplog", 6))
 			features |= DASD_FEATURE_ERPLOG;
-		else if (len == 8 && !strncmp(str, "failfast", 8))
+		else if (len == 8 && !memcmp(str, "failfast", 8))
 			features |= DASD_FEATURE_FAILFAST;
 		else {
 			pr_warning("%*s is not a supported device option\n",
@@ -254,17 +254,17 @@ dasd_parse_keyword( char *parsestring ) {
 		length = strlen(parsestring);
 		residual_str = parsestring + length;
         }
-	if (strncmp("autodetect", parsestring, length) == 0) {
+	if (memcmp("autodetect", parsestring, length) == 0) {
 		dasd_autodetect = 1;
 		pr_info("The autodetection mode has been activated\n");
                 return residual_str;
         }
-	if (strncmp("probeonly", parsestring, length) == 0) {
+	if (memcmp("probeonly", parsestring, length) == 0) {
 		dasd_probeonly = 1;
 		pr_info("The probeonly mode has been activated\n");
                 return residual_str;
         }
-	if (strncmp("nopav", parsestring, length) == 0) {
+	if (memcmp("nopav", parsestring, length) == 0) {
 		if (MACHINE_IS_VM)
 			pr_info("'nopav' is not supported on z/VM\n");
 		else {
@@ -273,13 +273,13 @@ dasd_parse_keyword( char *parsestring ) {
 		}
 		return residual_str;
 	}
-	if (strncmp("nofcx", parsestring, length) == 0) {
+	if (memcmp("nofcx", parsestring, length) == 0) {
 		dasd_nofcx = 1;
 		pr_info("High Performance FICON support has been "
 			"deactivated\n");
 		return residual_str;
 	}
-	if (strncmp("fixedbuffers", parsestring, length) == 0) {
+	if (memcmp("fixedbuffers", parsestring, length) == 0) {
 		if (dasd_page_cache)
 			return residual_str;
 		dasd_page_cache =
@@ -417,7 +417,7 @@ dasd_add_busid(const char *bus_id, int features)
 	devmap = NULL;
 	hash = dasd_hash_busid(bus_id);
 	list_for_each_entry(tmp, &dasd_hashlists[hash], list)
-		if (strncmp(tmp->bus_id, bus_id, DASD_BUS_ID_SIZE) == 0) {
+		if (memcmp(tmp->bus_id, bus_id, DASD_BUS_ID_SIZE) == 0) {
 			devmap = tmp;
 			break;
 		}
@@ -449,7 +449,7 @@ dasd_find_busid(const char *bus_id)
 	devmap = ERR_PTR(-ENODEV);
 	hash = dasd_hash_busid(bus_id);
 	list_for_each_entry(tmp, &dasd_hashlists[hash], list) {
-		if (strncmp(tmp->bus_id, bus_id, DASD_BUS_ID_SIZE) == 0) {
+		if (memcmp(tmp->bus_id, bus_id, DASD_BUS_ID_SIZE) == 0) {
 			devmap = tmp;
 			break;
 		}
diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c
index 266b34b..84201c2 100644
--- a/drivers/s390/block/dasd_diag.c
+++ b/drivers/s390/block/dasd_diag.c
@@ -255,7 +255,7 @@ static void dasd_ext_handler(unsigned int ext_int_code,
 	}
 	cqr = (struct dasd_ccw_req *) ip;
 	device = (struct dasd_device *) cqr->startdev;
-	if (strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) {
+	if (memcmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) {
 		DBF_DEV_EVENT(DBF_WARNING, device,
 			    " magic number of dasd_ccw_req 0x%08X doesn't"
 			    " match discipline 0x%08X",
diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c
index c4a6a31..be3b87c 100644
--- a/drivers/s390/block/dasd_proc.c
+++ b/drivers/s390/block/dasd_proc.c
@@ -254,7 +254,7 @@ static ssize_t dasd_stats_proc_write(struct file *file,
 
 	/* check for valid verbs */
 	str = skip_spaces(buffer);
-	if (strncmp(str, "set", 3) == 0 && isspace(str[3])) {
+	if (memcmp(str, "set", 3) == 0 && isspace(str[3])) {
 		/* 'set xxx' was given */
 		str = skip_spaces(str + 4);
 		if (strcmp(str, "on") == 0) {
@@ -271,7 +271,7 @@ static ssize_t dasd_stats_proc_write(struct file *file,
 				"off\n");
 		} else
 			goto out_error;
-	} else if (strncmp(str, "reset", 5) == 0) {
+	} else if (memcmp(str, "reset", 5) == 0) {
 		/* reset the statistics */
 		memset(&dasd_global_profile, 0,
 		       sizeof (struct dasd_profile_info_t));
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index 9b43ae9..4998c8c 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -920,7 +920,7 @@ dcssblk_check_params(void)
 			for (k = 0; (buf[k] != ':') && (buf[k] != '\0'); k++)
 				buf[k] = toupper(buf[k]);
 			buf[k] = '\0';
-			if (!strncmp(&dcssblk_segments[j], "(local)", 7)) {
+			if (!memcmp(&dcssblk_segments[j], "(local)", 7)) {
 				down_read(&dcssblk_devices_sem);
 				dev_info = dcssblk_get_device_by_name(buf);
 				up_read(&dcssblk_devices_sem);
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c
index 59ec073..617cecc 100644
--- a/drivers/s390/char/con3215.c
+++ b/drivers/s390/char/con3215.c
@@ -411,8 +411,8 @@ static void raw3215_irq(struct ccw_device *cdev, unsigned long intparm,
 
 			case CTRLCHAR_NONE:
 				if (count < 2 ||
-				    (strncmp(raw->inbuf+count-2, "\252n", 2) &&
-				     strncmp(raw->inbuf+count-2, "^n", 2)) ) {
+				    (memcmp(raw->inbuf+count-2, "\252n", 2) &&
+				     memcmp(raw->inbuf+count-2, "^n", 2)) ) {
 					/* add the auto \n */
 					raw->inbuf[count] = '\n';
 					count++;
diff --git a/drivers/s390/char/sclp_tty.c b/drivers/s390/char/sclp_tty.c
index 8258d59..fd755cb 100644
--- a/drivers/s390/char/sclp_tty.c
+++ b/drivers/s390/char/sclp_tty.c
@@ -345,8 +345,8 @@ sclp_tty_input(unsigned char* buf, unsigned int count)
 	case CTRLCHAR_NONE:
 		/* send (normal) input to line discipline */
 		if (count < 2 ||
-		    (strncmp((const char *) buf + count - 2, "^n", 2) &&
-		     strncmp((const char *) buf + count - 2, "\252n", 2))) {
+		    (memcmp((const char *) buf + count - 2, "^n", 2) &&
+		     memcmp((const char *) buf + count - 2, "\252n", 2))) {
 			/* add the auto \n */
 			tty_insert_flip_string(sclp_tty, buf, count);
 			tty_insert_flip_char(sclp_tty, '\n', TTY_NORMAL);
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c
index c837d74..d67013a 100644
--- a/drivers/s390/char/vmlogrdr.c
+++ b/drivers/s390/char/vmlogrdr.c
@@ -226,9 +226,9 @@ static int vmlogrdr_get_recording_class_AB(void)
 	if (!tail)
 		return 0;
 	tail++;
-	if (!strncmp("ANY",tail,3))
+	if (!memcmp("ANY",tail,3))
 		return 1;
-	if (!strncmp("NONE",tail,4))
+	if (!memcmp("NONE",tail,4))
 		return 0;
 	/*
 	 * expect comma separated list of classes here, if one of them
@@ -281,7 +281,7 @@ static int vmlogrdr_recording(struct vmlogrdr_priv_t * logptr,
 	 * on success, but when the specific service was never connected
 	 * before then there might be an additional informational message
 	 * 'HCPCRC8072I Recording entry not found' before the
-	 * 'Command complete'. So I use strstr rather then the strncmp.
+	 * 'Command complete'. So I use strstr rather then the memcmp.
 	 */
 	if (strstr(cp_response,"Command complete"))
 		rc = 0;
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index e8391b8..1dda771 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -549,7 +549,7 @@ static ssize_t online_store (struct device *dev, struct device_attribute *attr,
 		atomic_set(&cdev->private->onoff, 0);
 		return -EINVAL;
 	}
-	if (!strncmp(buf, "force\n", count)) {
+	if (!memcmp(buf, "force\n", count)) {
 		force = 1;
 		i = 1;
 		ret = 0;
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c
index 8e4153d..96a01ac 100644
--- a/drivers/s390/net/claw.c
+++ b/drivers/s390/net/claw.c
@@ -505,7 +505,7 @@ claw_open(struct net_device *dev)
 	}
         privptr->system_validate_comp=0;
         privptr->release_pend=0;
-	if(strncmp(privptr->p_env->api_type,WS_APPL_NAME_PACKED,6) == 0) {
+	if(memcmp(privptr->p_env->api_type,WS_APPL_NAME_PACKED,6) == 0) {
 		privptr->p_env->read_size=DEF_PACK_BUFSIZE;
 		privptr->p_env->write_size=DEF_PACK_BUFSIZE;
 		privptr->p_env->packing=PACKING_ASK;
@@ -2154,7 +2154,7 @@ claw_process_control( struct net_device *dev, struct ccwbk * p_ccw)
 			dev->name, p_sysval->read_frame_size,
 			p_sysval->write_frame_size);
 		privptr->system_validate_comp = 1;
-		if (strncmp(p_env->api_type, WS_APPL_NAME_PACKED, 6) == 0)
+		if (memcmp(p_env->api_type, WS_APPL_NAME_PACKED, 6) == 0)
 			p_env->packing = PACKING_ASK;
 		claw_strt_conn_req(dev);
 		break;
@@ -3233,7 +3233,7 @@ claw_apname_write(struct device *dev, struct device_attribute *attr,
 	strncpy(p_env->api_type,buf, count);
 	p_env->api_type[count-1] = 0x20;  /* we get a loose 0x0a */
 	p_env->api_type[MAX_NAME_LEN] = 0x00;
-	if(strncmp(p_env->api_type,WS_APPL_NAME_PACKED,6) == 0) {
+	if(memcmp(p_env->api_type,WS_APPL_NAME_PACKED,6) == 0) {
 		p_env->read_size=DEF_PACK_BUFSIZE;
 		p_env->write_size=DEF_PACK_BUFSIZE;
 		p_env->packing=PACKING_ASK;
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c
index 2c7d2d9..d00a227 100644
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
@@ -255,7 +255,7 @@ static struct channel *channel_get(enum ctcm_channel_types type,
 {
 	struct channel *ch = channels;
 
-	while (ch && (strncmp(ch->id, id, CTCM_ID_SIZE) || (ch->type != type)))
+	while (ch && (memcmp(ch->id, id, CTCM_ID_SIZE) || (ch->type != type)))
 		ch = ch->next;
 	if (!ch) {
 		CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR,
@@ -1468,7 +1468,7 @@ static int add_channel(struct ccw_device *cdev, enum ctcm_channel_types type,
 	while (*c && ctcm_less_than((*c)->id, ch->id))
 		c = &(*c)->next;
 
-	if (*c && (!strncmp((*c)->id, ch->id, CTCM_ID_SIZE))) {
+	if (*c && (!memcmp((*c)->id, ch->id, CTCM_ID_SIZE))) {
 		CTCM_DBF_TEXT_(SETUP, CTC_DBF_INFO,
 				"%s (%s) already in list, using old entry",
 				__func__, (*c)->id);
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c
index 65ebee0..4d3c72d 100644
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
@@ -571,7 +571,7 @@ static int netiucv_callback_connreq(struct iucv_path *path,
 	rc = -EINVAL;
 	read_lock_bh(&iucv_connection_rwlock);
 	list_for_each_entry(conn, &iucv_connection_list, list) {
-		if (strncmp(ipvmid, conn->userid, 8))
+		if (memcmp(ipvmid, conn->userid, 8))
 			continue;
 		/* Found a matching connection for this path. */
 		conn->path = path;
@@ -1499,7 +1499,7 @@ static ssize_t user_write(struct device *dev, struct device_attribute *attr,
 	}
 	read_lock_bh(&iucv_connection_rwlock);
 	list_for_each_entry(cp, &iucv_connection_list, list) {
-		if (!strncmp(username, cp->userid, 9) && cp->netdev != ndev) {
+		if (!memcmp(username, cp->userid, 9) && cp->netdev != ndev) {
 			read_unlock_bh(&iucv_connection_rwlock);
 			IUCV_DBF_TEXT_(setup, 2, "user_write: Connection "
 				"to %s already exists\n", username);
@@ -2053,7 +2053,7 @@ static ssize_t conn_write(struct device_driver *drv,
 
 	read_lock_bh(&iucv_connection_rwlock);
 	list_for_each_entry(cp, &iucv_connection_list, list) {
-		if (!strncmp(username, cp->userid, 9)) {
+		if (!memcmp(username, cp->userid, 9)) {
 			read_unlock_bh(&iucv_connection_rwlock);
 			IUCV_DBF_TEXT_(setup, 2, "conn_write: Connection "
 				"to %s already exists\n", username);
@@ -2126,7 +2126,7 @@ static ssize_t remove_write (struct device_driver *drv,
 		ndev = cp->netdev;
 		priv = netdev_priv(ndev);
                 dev = priv->dev;
-		if (strncmp(name, ndev->name, count))
+		if (memcmp(name, ndev->name, count))
 			continue;
 		read_unlock_bh(&iucv_connection_rwlock);
                 if (ndev->flags & (IFF_UP | IFF_RUNNING)) {
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index e6b2df0..234e6f8 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -1983,7 +1983,7 @@ static int qeth_ulp_setup_cb(struct qeth_card *card, struct qeth_reply *reply,
 	memcpy(&card->token.ulp_connection_r,
 	       QETH_ULP_SETUP_RESP_CONNECTION_TOKEN(iob->data),
 	       QETH_MPC_TOKEN_LENGTH);
-	if (!strncmp("00S", QETH_ULP_SETUP_RESP_CONNECTION_TOKEN(iob->data),
+	if (!memcmp("00S", QETH_ULP_SETUP_RESP_CONNECTION_TOKEN(iob->data),
 		     3)) {
 		QETH_DBF_TEXT(SETUP, 2, "olmlimit");
 		dev_err(&card->gdev->dev, "A connection could not be "
diff --git a/drivers/s390/net/smsgiucv.c b/drivers/s390/net/smsgiucv.c
index 65e1cf1..b2cf03a 100644
--- a/drivers/s390/net/smsgiucv.c
+++ b/drivers/s390/net/smsgiucv.c
@@ -60,7 +60,7 @@ static struct iucv_handler smsg_handler = {
 static int smsg_path_pending(struct iucv_path *path, u8 ipvmid[8],
 			     u8 ipuser[16])
 {
-	if (strncmp(ipvmid, "*MSG    ", sizeof(ipvmid)) != 0)
+	if (memcmp(ipvmid, "*MSG    ", sizeof(ipvmid)) != 0)
 		return -EINVAL;
 	/* Path pending from *MSG. */
 	return iucv_path_accept(path, &smsg_handler, "SMSGIUCV        ", NULL);
@@ -93,7 +93,7 @@ static void smsg_message_pending(struct iucv_path *path,
 		}
 		spin_lock(&smsg_list_lock);
 		list_for_each_entry(cb, &smsg_list, list)
-			if (strncmp(buffer + 8, cb->prefix, cb->len) == 0) {
+			if (memcmp(buffer + 8, cb->prefix, cb->len) == 0) {
 				cb->callback(sender, buffer + 8);
 				break;
 			}
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index 2cdd6b2..6922c11 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -95,7 +95,7 @@ static int zfcp_dbf_view_header(debug_info_t *id, struct debug_view *view,
 	struct timespec t;
 	char *p = out_buf;
 
-	if (strncmp(dump->tag, "dump", ZFCP_DBF_TAG_SIZE) != 0) {
+	if (memcmp(dump->tag, "dump", ZFCP_DBF_TAG_SIZE) != 0) {
 		stck_to_timespec(entry->id.stck, &t);
 		zfcp_dbf_out(&p, "timestamp", "%011lu:%06lu",
 			     t.tv_sec, t.tv_nsec);
@@ -412,23 +412,23 @@ static int zfcp_dbf_hba_view_format(debug_info_t *id, struct debug_view *view,
 	struct zfcp_dbf_hba_record *r = (struct zfcp_dbf_hba_record *)in_buf;
 	char *p = out_buf;
 
-	if (strncmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0)
+	if (memcmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0)
 		return 0;
 
 	zfcp_dbf_tag(&p, "tag", r->tag);
 	if (isalpha(r->tag2[0]))
 		zfcp_dbf_tag(&p, "tag2", r->tag2);
 
-	if (strncmp(r->tag, "resp", ZFCP_DBF_TAG_SIZE) == 0)
+	if (memcmp(r->tag, "resp", ZFCP_DBF_TAG_SIZE) == 0)
 		zfcp_dbf_hba_view_response(&p, &r->u.response);
-	else if (strncmp(r->tag, "stat", ZFCP_DBF_TAG_SIZE) == 0)
+	else if (memcmp(r->tag, "stat", ZFCP_DBF_TAG_SIZE) == 0)
 		zfcp_dbf_hba_view_status(&p, &r->u.status);
-	else if (strncmp(r->tag, "qdio", ZFCP_DBF_TAG_SIZE) == 0)
+	else if (memcmp(r->tag, "qdio", ZFCP_DBF_TAG_SIZE) == 0)
 		zfcp_dbf_hba_view_qdio(&p, &r->u.qdio);
-	else if (strncmp(r->tag, "berr", ZFCP_DBF_TAG_SIZE) == 0)
+	else if (memcmp(r->tag, "berr", ZFCP_DBF_TAG_SIZE) == 0)
 		zfcp_dbf_hba_view_berr(&p, &r->u.berr);
 
-	if (strncmp(r->tag, "resp", ZFCP_DBF_TAG_SIZE) != 0)
+	if (memcmp(r->tag, "resp", ZFCP_DBF_TAG_SIZE) != 0)
 		p += sprintf(p, "\n");
 	return p - out_buf;
 }
@@ -815,14 +815,14 @@ static int zfcp_dbf_san_view_format(debug_info_t *id, struct debug_view *view,
 	struct zfcp_dbf_san_record *r = (struct zfcp_dbf_san_record *)in_buf;
 	char *p = out_buf;
 
-	if (strncmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0)
+	if (memcmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0)
 		return 0;
 
 	zfcp_dbf_tag(&p, "tag", r->tag);
 	zfcp_dbf_out(&p, "fsf_reqid", "0x%0Lx", r->fsf_reqid);
 	zfcp_dbf_out(&p, "fsf_seqno", "0x%08x", r->fsf_seqno);
 
-	if (strncmp(r->tag, "octc", ZFCP_DBF_TAG_SIZE) == 0) {
+	if (memcmp(r->tag, "octc", ZFCP_DBF_TAG_SIZE) == 0) {
 		struct zfcp_dbf_san_record_ct_request *ct = &r->u.ct_req;
 		zfcp_dbf_out(&p, "d_id", "0x%06x", ct->d_id);
 		zfcp_dbf_out(&p, "cmd_req_code", "0x%04x", ct->cmd_req_code);
@@ -831,7 +831,7 @@ static int zfcp_dbf_san_view_format(debug_info_t *id, struct debug_view *view,
 		zfcp_dbf_out(&p, "gs_subtype", "0x%02x", ct->gs_subtype);
 		zfcp_dbf_out(&p, "options", "0x%02x", ct->options);
 		zfcp_dbf_out(&p, "max_res_size", "0x%04x", ct->max_res_size);
-	} else if (strncmp(r->tag, "rctc", ZFCP_DBF_TAG_SIZE) == 0) {
+	} else if (memcmp(r->tag, "rctc", ZFCP_DBF_TAG_SIZE) == 0) {
 		struct zfcp_dbf_san_record_ct_response *ct = &r->u.ct_resp;
 		zfcp_dbf_out(&p, "cmd_rsp_code", "0x%04x", ct->cmd_rsp_code);
 		zfcp_dbf_out(&p, "revision", "0x%02x", ct->revision);
@@ -839,9 +839,9 @@ static int zfcp_dbf_san_view_format(debug_info_t *id, struct debug_view *view,
 		zfcp_dbf_out(&p, "reason_code_expl", "0x%02x", ct->expl);
 		zfcp_dbf_out(&p, "vendor_unique", "0x%02x", ct->vendor_unique);
 		zfcp_dbf_out(&p, "max_res_size", "0x%04x", ct->max_res_size);
-	} else if (strncmp(r->tag, "oels", ZFCP_DBF_TAG_SIZE) == 0 ||
-		   strncmp(r->tag, "rels", ZFCP_DBF_TAG_SIZE) == 0 ||
-		   strncmp(r->tag, "iels", ZFCP_DBF_TAG_SIZE) == 0) {
+	} else if (memcmp(r->tag, "oels", ZFCP_DBF_TAG_SIZE) == 0 ||
+		   memcmp(r->tag, "rels", ZFCP_DBF_TAG_SIZE) == 0 ||
+		   memcmp(r->tag, "iels", ZFCP_DBF_TAG_SIZE) == 0) {
 		struct zfcp_dbf_san_record_els *els = &r->u.els;
 		zfcp_dbf_out(&p, "d_id", "0x%06x", els->d_id);
 	}
@@ -938,7 +938,7 @@ static int zfcp_dbf_scsi_view_format(debug_info_t *id, struct debug_view *view,
 	struct timespec t;
 	char *p = out_buf;
 
-	if (strncmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0)
+	if (memcmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0)
 		return 0;
 
 	zfcp_dbf_tag(&p, "tag", r->tag);
@@ -951,14 +951,14 @@ static int zfcp_dbf_scsi_view_format(debug_info_t *id, struct debug_view *view,
 		      0, ZFCP_DBF_SCSI_OPCODE);
 	zfcp_dbf_out(&p, "scsi_retries", "0x%02x", r->scsi_retries);
 	zfcp_dbf_out(&p, "scsi_allowed", "0x%02x", r->scsi_allowed);
-	if (strncmp(r->tag, "abrt", ZFCP_DBF_TAG_SIZE) == 0)
+	if (memcmp(r->tag, "abrt", ZFCP_DBF_TAG_SIZE) == 0)
 		zfcp_dbf_out(&p, "old_fsf_reqid", "0x%0Lx", r->old_fsf_reqid);
 	zfcp_dbf_out(&p, "fsf_reqid", "0x%0Lx", r->fsf_reqid);
 	zfcp_dbf_out(&p, "fsf_seqno", "0x%08x", r->fsf_seqno);
 	stck_to_timespec(r->fsf_issued, &t);
 	zfcp_dbf_out(&p, "fsf_issued", "%011lu:%06lu", t.tv_sec, t.tv_nsec);
 
-	if (strncmp(r->tag, "rslt", ZFCP_DBF_TAG_SIZE) == 0) {
+	if (memcmp(r->tag, "rslt", ZFCP_DBF_TAG_SIZE) == 0) {
 		zfcp_dbf_out(&p, "fcp_rsp_validity", "0x%02x", r->rsp_validity);
 		zfcp_dbf_out(&p, "fcp_rsp_scsi_status", "0x%02x",
 			     r->rsp_scsi_status);
diff --git a/drivers/scsi/NCR_D700.c b/drivers/scsi/NCR_D700.c
index 8647256..fa455b1 100644
--- a/drivers/scsi/NCR_D700.c
+++ b/drivers/scsi/NCR_D700.c
@@ -132,11 +132,11 @@ param_setup(char *string)
 	while(pos != NULL && (next = strchr(pos, ':')) != NULL) {
 		int val = (int)simple_strtoul(++next, NULL, 0);
 
-		if(!strncmp(pos, "slot:", 5))
+		if(!memcmp(pos, "slot:", 5))
 			slot = val;
-		else if(!strncmp(pos, "siop:", 5))
+		else if(!memcmp(pos, "siop:", 5))
 			siop = val;
-		else if(!strncmp(pos, "id:", 3)) {
+		else if(!memcmp(pos, "id:", 3)) {
 			if(slot == -1) {
 				printk(KERN_WARNING "NCR D700: Must specify slot for id parameter\n");
 			} else if(slot > MCA_MAX_SLOT_NR) {
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 081c6de..f2dd866 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -8163,7 +8163,7 @@ static void AscAsyncFix(ASC_DVC_VAR *asc_dvc, struct scsi_device *sdev)
 	if (asc_dvc->init_sdtr & tid_bits)
 		return;
 
-	if ((type == TYPE_ROM) && (strncmp(sdev->vendor, "HP ", 3) == 0))
+	if ((type == TYPE_ROM) && (memcmp(sdev->vendor, "HP ", 3) == 0))
 		asc_dvc->pci_fix_asyn_xfer_always |= tid_bits;
 
 	asc_dvc->pci_fix_asyn_xfer |= tid_bits;
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index c5169f0..b90eaf3 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -3271,11 +3271,11 @@ static int get_ports(struct Scsi_Host *shpnt, char *pos)
 
 static int aha152x_set_info(char *buffer, int length, struct Scsi_Host *shpnt)
 {
-	if(!shpnt || !buffer || length<8 || strncmp("aha152x ", buffer, 8)!=0)
+	if(!shpnt || !buffer || length<8 || memcmp("aha152x ", buffer, 8)!=0)
 		return -EINVAL;
 
 #if defined(AHA152X_DEBUG)
-	if(length>14 && strncmp("debug ", buffer+8, 6)==0) {
+	if(length>14 && memcmp("debug ", buffer+8, 6)==0) {
 		int debug = HOSTDATA(shpnt)->debug;
 
 		HOSTDATA(shpnt)->debug = simple_strtoul(buffer+14, NULL, 0);
@@ -3284,7 +3284,7 @@ static int aha152x_set_info(char *buffer, int length, struct Scsi_Host *shpnt)
 	} else
 #endif
 #if defined(AHA152X_STAT)
-	if(length>13 && strncmp("reset", buffer+8, 5)==0) {
+	if(length>13 && memcmp("reset", buffer+8, 5)==0) {
 		int i;
 
 		HOSTDATA(shpnt)->total_commands=0;
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index 25d0666..58e3dbd 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -1181,32 +1181,32 @@ aic79xx_setup(char *s)
 		for (i = 0; i < ARRAY_SIZE(options); i++) {
 
 			n = strlen(options[i].name);
-			if (strncmp(options[i].name, p, n) == 0)
+			if (memcmp(options[i].name, p, n) == 0)
 				break;
 		}
 		if (i == ARRAY_SIZE(options))
 			continue;
 
-		if (strncmp(p, "global_tag_depth", n) == 0) {
+		if (memcmp(p, "global_tag_depth", n) == 0) {
 			ahd_linux_setup_tag_info_global(p + n);
-		} else if (strncmp(p, "tag_info", n) == 0) {
+		} else if (memcmp(p, "tag_info", n) == 0) {
 			s = ahd_parse_brace_option("tag_info", p + n, end,
 			    2, ahd_linux_setup_tag_info, 0);
-		} else if (strncmp(p, "slewrate", n) == 0) {
+		} else if (memcmp(p, "slewrate", n) == 0) {
 			s = ahd_parse_brace_option("slewrate",
 			    p + n, end, 1, ahd_linux_setup_iocell_info,
 			    AIC79XX_SLEWRATE_INDEX);
-		} else if (strncmp(p, "precomp", n) == 0) {
+		} else if (memcmp(p, "precomp", n) == 0) {
 			s = ahd_parse_brace_option("precomp",
 			    p + n, end, 1, ahd_linux_setup_iocell_info,
 			    AIC79XX_PRECOMP_INDEX);
-		} else if (strncmp(p, "amplitude", n) == 0) {
+		} else if (memcmp(p, "amplitude", n) == 0) {
 			s = ahd_parse_brace_option("amplitude",
 			    p + n, end, 1, ahd_linux_setup_iocell_info,
 			    AIC79XX_AMPLITUDE_INDEX);
 		} else if (p[n] == ':') {
 			*(options[i].flag) = simple_strtoul(p + n + 1, NULL, 0);
-		} else if (!strncmp(p, "verbose", n)) {
+		} else if (!memcmp(p, "verbose", n)) {
 			*(options[i].flag) = 1;
 		} else {
 			*(options[i].flag) ^= 0xFFFFFFFF;
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
index 4a359bb..93fbd65 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
@@ -1067,20 +1067,20 @@ aic7xxx_setup(char *s)
 		for (i = 0; i < ARRAY_SIZE(options); i++) {
 
 			n = strlen(options[i].name);
-			if (strncmp(options[i].name, p, n) == 0)
+			if (memcmp(options[i].name, p, n) == 0)
 				break;
 		}
 		if (i == ARRAY_SIZE(options))
 			continue;
 
-		if (strncmp(p, "global_tag_depth", n) == 0) {
+		if (memcmp(p, "global_tag_depth", n) == 0) {
 			ahc_linux_setup_tag_info_global(p + n);
-		} else if (strncmp(p, "tag_info", n) == 0) {
+		} else if (memcmp(p, "tag_info", n) == 0) {
 			s = ahc_parse_brace_option("tag_info", p + n, end,
 			    2, ahc_linux_setup_tag_info, 0);
 		} else if (p[n] == ':') {
 			*(options[i].flag) = simple_strtoul(p + n + 1, NULL, 0);
-		} else if (strncmp(p, "verbose", n) == 0) {
+		} else if (memcmp(p, "verbose", n) == 0) {
 			*(options[i].flag) = 1;
 		} else {
 			*(options[i].flag) ^= 0xFFFFFFFF;
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
index 4ff60a0..0121b9d 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -1372,9 +1372,9 @@ aic7xxx_setup(char *s)
     for (i = 0; i < ARRAY_SIZE(options); i++)
     {
       n = strlen(options[i].name);
-      if (!strncmp(options[i].name, p, n))
+      if (!memcmp(options[i].name, p, n))
       {
-        if (!strncmp(p, "tag_info", n))
+        if (!memcmp(p, "tag_info", n))
         {
           if (p[n] == ':')
           {
@@ -1455,19 +1455,19 @@ aic7xxx_setup(char *s)
         else if (p[n] == ':')
         {
           *(options[i].flag) = simple_strtoul(p + n + 1, NULL, 0);
-          if(!strncmp(p, "seltime", n))
+          if(!memcmp(p, "seltime", n))
           {
             *(options[i].flag) = (*(options[i].flag) % 4) << 3;
           }
         }
-        else if (!strncmp(p, "verbose", n))
+        else if (!memcmp(p, "verbose", n))
         {
           *(options[i].flag) = 0xff29;
         }
         else
         {
           *(options[i].flag) = ~(*(options[i].flag));
-          if(!strncmp(p, "seltime", n))
+          if(!memcmp(p, "seltime", n))
           {
             *(options[i].flag) = (*(options[i].flag) % 4) << 3;
           }
diff --git a/drivers/scsi/aic94xx/aic94xx_sds.c b/drivers/scsi/aic94xx/aic94xx_sds.c
index edb43fd..885aace 100644
--- a/drivers/scsi/aic94xx/aic94xx_sds.c
+++ b/drivers/scsi/aic94xx/aic94xx_sds.c
@@ -236,8 +236,8 @@ static int asd_get_bios_chim(struct asd_ha_struct *asd_ha,
 		ASD_DPRINTK("couldn't read ocm segment\n");
 		goto out2;
 	}
-	if (strncmp(bc_struct->sig, "SOIB", 4)
-	    && strncmp(bc_struct->sig, "IPSA", 4)) {
+	if (memcmp(bc_struct->sig, "SOIB", 4)
+	    && memcmp(bc_struct->sig, "IPSA", 4)) {
 		ASD_DPRINTK("BIOS_CHIM entry has no valid sig(%c%c%c%c)\n",
 			    bc_struct->sig[0], bc_struct->sig[1],
 			    bc_struct->sig[2], bc_struct->sig[3]);
diff --git a/drivers/scsi/arm/cumana_2.c b/drivers/scsi/arm/cumana_2.c
index c9902b5..d2e3f09 100644
--- a/drivers/scsi/arm/cumana_2.c
+++ b/drivers/scsi/arm/cumana_2.c
@@ -318,11 +318,11 @@ cumanascsi_2_set_proc_info(struct Scsi_Host *host, char *buffer, int length)
 {
 	int ret = length;
 
-	if (length >= 11 && strncmp(buffer, "CUMANASCSI2", 11) == 0) {
+	if (length >= 11 && memcmp(buffer, "CUMANASCSI2", 11) == 0) {
 		buffer += 11;
 		length -= 11;
 
-		if (length >= 5 && strncmp(buffer, "term=", 5) == 0) {
+		if (length >= 5 && memcmp(buffer, "term=", 5) == 0) {
 			if (buffer[5] == '1')
 				cumanascsi_2_terminator_ctl(host, 1);
 			else if (buffer[5] == '0')
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c
index d843513..885738c 100644
--- a/drivers/scsi/arm/eesox.c
+++ b/drivers/scsi/arm/eesox.c
@@ -403,11 +403,11 @@ eesoxscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length)
 {
 	int ret = length;
 
-	if (length >= 9 && strncmp(buffer, "EESOXSCSI", 9) == 0) {
+	if (length >= 9 && memcmp(buffer, "EESOXSCSI", 9) == 0) {
 		buffer += 9;
 		length -= 9;
 
-		if (length >= 5 && strncmp(buffer, "term=", 5) == 0) {
+		if (length >= 5 && memcmp(buffer, "term=", 5) == 0) {
 			if (buffer[5] == '1')
 				eesoxscsi_terminator_ctl(host, 1);
 			else if (buffer[5] == '0')
diff --git a/drivers/scsi/arm/fas216.c b/drivers/scsi/arm/fas216.c
index 2b2ce21..d26841c 100644
--- a/drivers/scsi/arm/fas216.c
+++ b/drivers/scsi/arm/fas216.c
@@ -111,9 +111,9 @@ static int __init fas216_log_setup(char *str)
 				level_mask |= -1;
 			break;
 		case 'b':
-			if (strncmp(s, "bus", 3) == 0)
+			if (memcmp(s, "bus", 3) == 0)
 				level_mask |= LOG_BUSSERVICE;
-			if (strncmp(s, "buf", 3) == 0)
+			if (memcmp(s, "buf", 3) == 0)
 				level_mask |= LOG_BUFFER;
 			break;
 		case 'c':
diff --git a/drivers/scsi/arm/powertec.c b/drivers/scsi/arm/powertec.c
index e2297b4..0640177 100644
--- a/drivers/scsi/arm/powertec.c
+++ b/drivers/scsi/arm/powertec.c
@@ -206,11 +206,11 @@ powertecscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length)
 {
 	int ret = length;
 
-	if (length >= 12 && strncmp(buffer, "POWERTECSCSI", 12) == 0) {
+	if (length >= 12 && memcmp(buffer, "POWERTECSCSI", 12) == 0) {
 		buffer += 12;
 		length -= 12;
 
-		if (length >= 5 && strncmp(buffer, "term=", 5) == 0) {
+		if (length >= 5 && memcmp(buffer, "term=", 5) == 0) {
 			if (buffer[5] == '1')
 				powertecscsi_terminator_ctl(host, 1);
 			else if (buffer[5] == '0')
diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
index 377cbff..9c5f956 100644
--- a/drivers/scsi/bfa/bfa_fcs_lport.c
+++ b/drivers/scsi/bfa/bfa_fcs_lport.c
@@ -2616,7 +2616,7 @@ bfa_fcs_lport_ms_gmal_response(void *fcsarg, struct bfa_fcxp_s *fcxp,
 
 		gmal_entry = (struct fcgs_gmal_entry_s *)gmal_resp->ms_ma;
 		while (num_entries > 0) {
-			if (strncmp(gmal_entry->prefix,
+			if (memcmp(gmal_entry->prefix,
 				CT_GMAL_RESP_PREFIX_HTTP,
 				sizeof(gmal_entry->prefix)) == 0) {
 
diff --git a/drivers/scsi/device_handler/scsi_dh.c b/drivers/scsi/device_handler/scsi_dh.c
index 6fae3d2..ca57b5f 100644
--- a/drivers/scsi/device_handler/scsi_dh.c
+++ b/drivers/scsi/device_handler/scsi_dh.c
@@ -42,7 +42,7 @@ static struct scsi_device_handler *get_device_handler(const char *name)
 
 	spin_lock(&list_lock);
 	list_for_each_entry(tmp, &scsi_dh_list, list) {
-		if (!strncmp(tmp->name, name, strlen(tmp->name))) {
+		if (!memcmp(tmp->name, name, strlen(tmp->name))) {
 			found = tmp;
 			break;
 		}
@@ -60,8 +60,8 @@ scsi_dh_cache_lookup(struct scsi_device *sdev)
 
 	spin_lock(&list_lock);
 	list_for_each_entry(tmp, &scsi_dh_dev_list, node) {
-		if (!strncmp(sdev->vendor, tmp->vendor, strlen(tmp->vendor)) &&
-		    !strncmp(sdev->model, tmp->model, strlen(tmp->model))) {
+		if (!memcmp(sdev->vendor, tmp->vendor, strlen(tmp->vendor)) &&
+		    !memcmp(sdev->model, tmp->model, strlen(tmp->model))) {
 			found_dh = tmp->handler;
 			break;
 		}
@@ -77,9 +77,9 @@ static int scsi_dh_handler_lookup(struct scsi_device_handler *scsi_dh,
 	int i, found = 0;
 
 	for(i = 0; scsi_dh->devlist[i].vendor; i++) {
-		if (!strncmp(sdev->vendor, scsi_dh->devlist[i].vendor,
+		if (!memcmp(sdev->vendor, scsi_dh->devlist[i].vendor,
 			     strlen(scsi_dh->devlist[i].vendor)) &&
-		    !strncmp(sdev->model, scsi_dh->devlist[i].model,
+		    !memcmp(sdev->model, scsi_dh->devlist[i].model,
 			     strlen(scsi_dh->devlist[i].model))) {
 			found = 1;
 			break;
@@ -216,13 +216,13 @@ store_dh_state(struct device *dev, struct device_attribute *attr,
 		err = scsi_dh_handler_attach(sdev, scsi_dh);
 	} else {
 		scsi_dh = sdev->scsi_dh_data->scsi_dh;
-		if (!strncmp(buf, "detach", 6)) {
+		if (!memcmp(buf, "detach", 6)) {
 			/*
 			 * Detach from a device handler
 			 */
 			scsi_dh_handler_detach(sdev, scsi_dh);
 			err = 0;
-		} else if (!strncmp(buf, "activate", 8)) {
+		} else if (!memcmp(buf, "activate", 8)) {
 			/*
 			 * Activate a device handler
 			 */
diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c
index 6faf472..c15206a 100644
--- a/drivers/scsi/device_handler/scsi_dh_emc.c
+++ b/drivers/scsi/device_handler/scsi_dh_emc.c
@@ -224,7 +224,7 @@ static char * parse_sp_model(struct scsi_device *sdev, unsigned char *buffer)
 			    "%s: Invalid information section length %d\n",
 			    CLARIION_NAME, len);
 		/* Check for old FC arrays */
-		if (!strncmp(buffer + 8, "DGC", 3)) {
+		if (!memcmp(buffer + 8, "DGC", 3)) {
 			/* Old FC array, not supporting extended information */
 			sp_model = emc_default_str;
 		}
@@ -489,7 +489,7 @@ static int clariion_std_inquiry(struct scsi_device *sdev,
 	/*
 	 * FC Series arrays do not support long trespass
 	 */
-	if (!strlen(sp_model) || !strncmp(sp_model, "FC",2))
+	if (!strlen(sp_model) || !memcmp(sp_model, "FC",2))
 		csdev->flags |= CLARIION_SHORT_TRESPASS;
 
 	sdev_printk(KERN_INFO, sdev,
diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
index 53925ac..dbedd6a 100644
--- a/drivers/scsi/eata.c
+++ b/drivers/scsi/eata.c
@@ -1475,25 +1475,25 @@ static void internal_setup(char *str, int *ints)
 		else
 			val = (int)simple_strtoul(pc, NULL, 0);
 
-		if (!strncmp(cur, "lc:", 3))
+		if (!memcmp(cur, "lc:", 3))
 			linked_comm = val;
-		else if (!strncmp(cur, "tm:", 3))
+		else if (!memcmp(cur, "tm:", 3))
 			tag_mode = val;
-		else if (!strncmp(cur, "tc:", 3))
+		else if (!memcmp(cur, "tc:", 3))
 			tag_mode = val;
-		else if (!strncmp(cur, "mq:", 3))
+		else if (!memcmp(cur, "mq:", 3))
 			max_queue_depth = val;
-		else if (!strncmp(cur, "ls:", 3))
+		else if (!memcmp(cur, "ls:", 3))
 			link_statistics = val;
-		else if (!strncmp(cur, "et:", 3))
+		else if (!memcmp(cur, "et:", 3))
 			ext_tran = val;
-		else if (!strncmp(cur, "rs:", 3))
+		else if (!memcmp(cur, "rs:", 3))
 			rev_scan = val;
-		else if (!strncmp(cur, "ip:", 3))
+		else if (!memcmp(cur, "ip:", 3))
 			isa_probe = val;
-		else if (!strncmp(cur, "ep:", 3))
+		else if (!memcmp(cur, "ep:", 3))
 			eisa_probe = val;
-		else if (!strncmp(cur, "pp:", 3))
+		else if (!memcmp(cur, "pp:", 3))
 			pci_probe = val;
 
 		if ((cur = strchr(cur, ',')))
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index 7636570..a802e0f 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -3796,23 +3796,23 @@ static void __init internal_setup(char *str,int *ints)
         else
             val = (int)simple_strtoul(cur_str, NULL, 0);
 
-        if (!strncmp(argv, "disable:", 8))
+        if (!memcmp(argv, "disable:", 8))
             disable = val;
-        else if (!strncmp(argv, "reserve_mode:", 13))
+        else if (!memcmp(argv, "reserve_mode:", 13))
             reserve_mode = val;
-        else if (!strncmp(argv, "reverse_scan:", 13))
+        else if (!memcmp(argv, "reverse_scan:", 13))
             reverse_scan = val;
-        else if (!strncmp(argv, "hdr_channel:", 12))
+        else if (!memcmp(argv, "hdr_channel:", 12))
             hdr_channel = val;
-        else if (!strncmp(argv, "max_ids:", 8))
+        else if (!memcmp(argv, "max_ids:", 8))
             max_ids = val;
-        else if (!strncmp(argv, "rescan:", 7))
+        else if (!memcmp(argv, "rescan:", 7))
             rescan = val;
-        else if (!strncmp(argv, "shared_access:", 14))
+        else if (!memcmp(argv, "shared_access:", 14))
             shared_access = val;
-        else if (!strncmp(argv, "probe_eisa_isa:", 15))
+        else if (!memcmp(argv, "probe_eisa_isa:", 15))
             probe_eisa_isa = val;
-        else if (!strncmp(argv, "reserve_list:", 13)) {
+        else if (!memcmp(argv, "reserve_list:", 13)) {
             reserve_list[0] = val;
             for (i = 1; i < MAX_RES_ARGS; i++) {
                 cur_str = strchr(cur_str, ',');
diff --git a/drivers/scsi/gdth_proc.c b/drivers/scsi/gdth_proc.c
index 0572b9b..e0df4ba 100644
--- a/drivers/scsi/gdth_proc.c
+++ b/drivers/scsi/gdth_proc.c
@@ -27,7 +27,7 @@ static int gdth_set_info(char *buffer,int length,struct Scsi_Host *host,
     TRACE2(("gdth_set_info() ha %d\n",ha->hanum,));
 
     if (length >= 4) {
-        if (strncmp(buffer,"gdth",4) == 0) {
+        if (memcmp(buffer,"gdth",4) == 0) {
             buffer += 5;
             length -= 5;
             ret_val = gdth_set_asc_info(host, buffer, length, ha);
@@ -56,7 +56,7 @@ static int gdth_set_asc_info(struct Scsi_Host *host, char *buffer,
     wb_mode = 0;
     found = FALSE;
 
-    if (length >= 5 && strncmp(buffer,"flush",5)==0) {
+    if (length >= 5 && memcmp(buffer,"flush",5)==0) {
         buffer += 6;
         length -= 6;
         if (length && *buffer>='0' && *buffer<='9') {
@@ -95,17 +95,17 @@ static int gdth_set_asc_info(struct Scsi_Host *host, char *buffer,
         return(orig_length);
     }
 
-    if (length >= 7 && strncmp(buffer,"wbp_off",7)==0) {
+    if (length >= 7 && memcmp(buffer,"wbp_off",7)==0) {
         buffer += 8;
         length -= 8;
         printk("GDT: Disabling write back permanently .. ");
         wb_mode = 1;
-    } else if (length >= 6 && strncmp(buffer,"wbp_on",6)==0) {
+    } else if (length >= 6 && memcmp(buffer,"wbp_on",6)==0) {
         buffer += 7;
         length -= 7;
         printk("GDT: Enabling write back permanently .. ");
         wb_mode = 2;
-    } else if (length >= 6 && strncmp(buffer,"wb_off",6)==0) {
+    } else if (length >= 6 && memcmp(buffer,"wb_off",6)==0) {
         buffer += 7;
         length -= 7;
         printk("GDT: Disabling write back commands .. ");
@@ -116,7 +116,7 @@ static int gdth_set_asc_info(struct Scsi_Host *host, char *buffer,
             printk("Not supported !\n");
         }
         return(orig_length);
-    } else if (length >= 5 && strncmp(buffer,"wb_on",5)==0) {
+    } else if (length >= 5 && memcmp(buffer,"wb_on",5)==0) {
         buffer += 6;
         length -= 6;
         printk("GDT: Enabling write back commands .. ");
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index b2fb2b2..cefddc4 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -1517,7 +1517,7 @@ static int is_msa2xxx(struct ctlr_info *h, struct hpsa_scsi_dev_t *device)
 	int i;
 
 	for (i = 0; msa2xxx_model[i]; i++)
-		if (strncmp(device->model, msa2xxx_model[i],
+		if (memcmp(device->model, msa2xxx_model[i],
 			strlen(msa2xxx_model[i])) == 0)
 			return 1;
 	return 0;
@@ -1822,7 +1822,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h, int hostno)
 #define OBDR_TAPE_SIG "$DR-10"
 				strncpy(obdr_sig, &inq_buff[43], 6);
 				obdr_sig[6] = '\0';
-				if (strncmp(obdr_sig, OBDR_TAPE_SIG, 6) != 0)
+				if (memcmp(obdr_sig, OBDR_TAPE_SIG, 6) != 0)
 					/* Not OBDR device, ignore it. */
 					break;
 			}
diff --git a/drivers/scsi/imm.c b/drivers/scsi/imm.c
index 99aa0e5..1fac5ef 100644
--- a/drivers/scsi/imm.c
+++ b/drivers/scsi/imm.c
@@ -125,7 +125,7 @@ static inline int imm_proc_write(imm_struct *dev, char *buffer, int length)
 {
 	unsigned long x;
 
-	if ((length > 5) && (strncmp(buffer, "mode=", 5) == 0)) {
+	if ((length > 5) && (memcmp(buffer, "mode=", 5) == 0)) {
 		x = simple_strtoul(buffer + 5, NULL, 0);
 		dev->mode = x;
 		return length;
diff --git a/drivers/scsi/in2000.c b/drivers/scsi/in2000.c
index 6568aab..82b6856 100644
--- a/drivers/scsi/in2000.c
+++ b/drivers/scsi/in2000.c
@@ -1855,7 +1855,7 @@ static int __init check_setup_args(char *key, int *val, char *buf)
 	for (x = 0; x < MAX_SETUP_ARGS; x++) {
 		if (setup_used[x])
 			continue;
-		if (!strncmp(setup_args[x], key, strlen(key)))
+		if (!memcmp(setup_args[x], key, strlen(key)))
 			break;
 	}
 	if (x == MAX_SETUP_ARGS)
@@ -2195,29 +2195,29 @@ static int in2000_proc_info(struct Scsi_Host *instance, char *buf, char **start,
 	if (in) {
 		buf[len] = '\0';
 		bp = buf;
-		if (!strncmp(bp, "debug:", 6)) {
+		if (!memcmp(bp, "debug:", 6)) {
 			bp += 6;
 			hd->args = simple_strtoul(bp, NULL, 0) & DB_MASK;
-		} else if (!strncmp(bp, "disconnect:", 11)) {
+		} else if (!memcmp(bp, "disconnect:", 11)) {
 			bp += 11;
 			x = simple_strtoul(bp, NULL, 0);
 			if (x < DIS_NEVER || x > DIS_ALWAYS)
 				x = DIS_ADAPTIVE;
 			hd->disconnect = x;
-		} else if (!strncmp(bp, "period:", 7)) {
+		} else if (!memcmp(bp, "period:", 7)) {
 			bp += 7;
 			x = simple_strtoul(bp, NULL, 0);
 			hd->default_sx_per = sx_table[round_period((unsigned int) x)].period_ns;
-		} else if (!strncmp(bp, "resync:", 7)) {
+		} else if (!memcmp(bp, "resync:", 7)) {
 			bp += 7;
 			x = simple_strtoul(bp, NULL, 0);
 			for (i = 0; i < 7; i++)
 				if (x & (1 << i))
 					hd->sync_stat[i] = SS_UNSET;
-		} else if (!strncmp(bp, "proc:", 5)) {
+		} else if (!memcmp(bp, "proc:", 5)) {
 			bp += 5;
 			hd->proc = simple_strtoul(bp, NULL, 0);
-		} else if (!strncmp(bp, "level2:", 7)) {
+		} else if (!memcmp(bp, "level2:", 7)) {
 			bp += 7;
 			hd->level2 = simple_strtoul(bp, NULL, 0);
 		}
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 5bbaee5..ea5008e 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -3366,7 +3366,7 @@ static ssize_t ipr_store_adapter_state(struct device *dev,
 		return -EACCES;
 
 	spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags);
-	if (ioa_cfg->ioa_is_dead && !strncmp(buf, "online", 6)) {
+	if (ioa_cfg->ioa_is_dead && !memcmp(buf, "online", 6)) {
 		ioa_cfg->ioa_is_dead = 0;
 		ioa_cfg->reset_retries = 0;
 		ioa_cfg->in_ioa_bringdown = 0;
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index c1cbec0..7628800 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -505,10 +505,10 @@ lpfc_link_state_store(struct device *dev, struct device_attribute *attr,
 
 	int status = -EINVAL;
 
-	if ((strncmp(buf, "up", sizeof("up") - 1) == 0) &&
+	if ((memcmp(buf, "up", sizeof("up") - 1) == 0) &&
 			(phba->link_state == LPFC_LINK_DOWN))
 		status = phba->lpfc_hba_init_link(phba, MBX_NOWAIT);
-	else if ((strncmp(buf, "down", sizeof("down") - 1) == 0) &&
+	else if ((memcmp(buf, "down", sizeof("down") - 1) == 0) &&
 			(phba->link_state >= LPFC_LINK_UP))
 		status = phba->lpfc_hba_down_link(phba, MBX_NOWAIT);
 
@@ -737,7 +737,7 @@ lpfc_issue_reset(struct device *dev, struct device_attribute *attr,
 
 	int status = -EINVAL;
 
-	if (strncmp(buf, "selective", sizeof("selective") - 1) == 0)
+	if (memcmp(buf, "selective", sizeof("selective") - 1) == 0)
 		status = lpfc_selective_reset(phba);
 
 	if (status == 0)
@@ -821,18 +821,18 @@ lpfc_board_mode_store(struct device *dev, struct device_attribute *attr,
 		return -EACCES;
 	init_completion(&online_compl);
 
-	if(strncmp(buf, "online", sizeof("online") - 1) == 0) {
+	if(memcmp(buf, "online", sizeof("online") - 1) == 0) {
 		lpfc_workq_post_event(phba, &status, &online_compl,
 				      LPFC_EVT_ONLINE);
 		wait_for_completion(&online_compl);
-	} else if (strncmp(buf, "offline", sizeof("offline") - 1) == 0)
+	} else if (memcmp(buf, "offline", sizeof("offline") - 1) == 0)
 		status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
-	else if (strncmp(buf, "warm", sizeof("warm") - 1) == 0)
+	else if (memcmp(buf, "warm", sizeof("warm") - 1) == 0)
 		if (phba->sli_rev == LPFC_SLI_REV4)
 			return -EINVAL;
 		else
 			status = lpfc_do_offline(phba, LPFC_EVT_WARM_START);
-	else if (strncmp(buf, "error", sizeof("error") - 1) == 0)
+	else if (memcmp(buf, "error", sizeof("error") - 1) == 0)
 		if (phba->sli_rev == LPFC_SLI_REV4)
 			return -EINVAL;
 		else
@@ -1764,7 +1764,7 @@ lpfc_soft_wwn_enable_store(struct device *dev, struct device_attribute *attr,
 		cnt--;
 
 	if ((cnt != strlen(lpfc_soft_wwn_key)) ||
-	    (strncmp(buf, lpfc_soft_wwn_key, strlen(lpfc_soft_wwn_key)) != 0))
+	    (memcmp(buf, lpfc_soft_wwn_key, strlen(lpfc_soft_wwn_key)) != 0))
 		return -EINVAL;
 
 	phba->soft_wwn_enable = 1;
@@ -2440,7 +2440,7 @@ lpfc_topology_store(struct device *dev, struct device_attribute *attr,
 	int err;
 	uint32_t prev_val;
 
-	if (!strncmp(buf, "nolip ", strlen("nolip "))) {
+	if (!memcmp(buf, "nolip ", strlen("nolip "))) {
 		nolip = 1;
 		val_buf = &buf[strlen("nolip ")];
 	}
@@ -2543,7 +2543,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
 	char *bucket_type_str, *base_str, *step_str;
 	unsigned long base, step, bucket_type;
 
-	if (!strncmp(buf, "setbucket", strlen("setbucket"))) {
+	if (!memcmp(buf, "setbucket", strlen("setbucket"))) {
 		if (strlen(buf) > (LPFC_MAX_DATA_CTRL_LEN - 1))
 			return -EINVAL;
 
@@ -2558,9 +2558,9 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
 		if (!bucket_type_str)
 			return -EINVAL;
 
-		if (!strncmp(bucket_type_str, "linear", strlen("linear")))
+		if (!memcmp(bucket_type_str, "linear", strlen("linear")))
 			bucket_type = LPFC_LINEAR_BUCKET;
-		else if (!strncmp(bucket_type_str, "power2", strlen("power2")))
+		else if (!memcmp(bucket_type_str, "power2", strlen("power2")))
 			bucket_type = LPFC_POWER2_BUCKET;
 		else
 			return -EINVAL;
@@ -2609,7 +2609,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
 		return strlen(buf);
 	}
 
-	if (!strncmp(buf, "destroybucket", strlen("destroybucket"))) {
+	if (!memcmp(buf, "destroybucket", strlen("destroybucket"))) {
 		vports = lpfc_create_vport_work_array(phba);
 		if (vports == NULL)
 			return -ENOMEM;
@@ -2630,7 +2630,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
 		return strlen(buf);
 	}
 
-	if (!strncmp(buf, "start", strlen("start"))) {
+	if (!memcmp(buf, "start", strlen("start"))) {
 		/* If no buckets configured return error */
 		if (phba->bucket_type == LPFC_NO_BUCKET)
 			return -EINVAL;
@@ -2645,7 +2645,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
 		return strlen(buf);
 	}
 
-	if (!strncmp(buf, "stop", strlen("stop"))) {
+	if (!memcmp(buf, "stop", strlen("stop"))) {
 		spin_lock_irq(shost->host_lock);
 		if (vport->stat_data_enabled == 0) {
 			spin_unlock_irq(shost->host_lock);
@@ -2657,7 +2657,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
 		return strlen(buf);
 	}
 
-	if (!strncmp(buf, "reset", strlen("reset"))) {
+	if (!memcmp(buf, "reset", strlen("reset"))) {
 		if ((phba->bucket_type == LPFC_NO_BUCKET)
 			|| !vport->stat_data_enabled)
 			return strlen(buf);
@@ -2875,7 +2875,7 @@ lpfc_link_speed_store(struct device *dev, struct device_attribute *attr,
 	int err;
 	uint32_t prev_val;
 
-	if (!strncmp(buf, "nolip ", strlen("nolip "))) {
+	if (!memcmp(buf, "nolip ", strlen("nolip "))) {
 		nolip = 1;
 		val_buf = &buf[strlen("nolip ")];
 	}
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c
index 46cc382..70a893f 100644
--- a/drivers/scsi/ncr53c8xx.c
+++ b/drivers/scsi/ncr53c8xx.c
@@ -655,7 +655,7 @@ static int __init get_setup_token(char *p)
 	while (cur != NULL && (pc = strchr(cur, ':')) != NULL) {
 		++pc;
 		++i;
-		if (!strncmp(p, cur, pc - cur))
+		if (!memcmp(p, cur, pc - cur))
 			return i;
 		cur = pc;
 	}
diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c
index 54de1d1..1a53ab7 100644
--- a/drivers/scsi/osst.c
+++ b/drivers/scsi/osst.c
@@ -2419,8 +2419,8 @@ static int __osst_analyze_headers(struct osst_tape * STp, struct osst_request **
 #endif
 		return 0;
 	}
-	if (strncmp(header->ident_str, "ADR_SEQ", 7) != 0 &&
-	    strncmp(header->ident_str, "ADR-SEQ", 7) != 0) {
+	if (memcmp(header->ident_str, "ADR_SEQ", 7) != 0 &&
+	    memcmp(header->ident_str, "ADR-SEQ", 7) != 0) {
 		strlcpy(id_string, header->ident_str, 8);
 #if DEBUG
 		printk(OSST_DEB_MSG "%s:D: Invalid header identification string %s\n", name, id_string);
@@ -5593,7 +5593,7 @@ static int __init osst_setup (char *str)
 	while (stp != NULL) {
 		for (i = 0; i < ARRAY_SIZE(parms); i++) {
 			int len = strlen(parms[i].name);
-			if (!strncmp(stp, parms[i].name, len) &&
+			if (!memcmp(stp, parms[i].name, len) &&
 			    (*(stp + len) == ':' || *(stp + len) == '=')) {
 				*parms[i].val =
 					simple_strtoul(stp + len + 1, NULL, 0);
@@ -5651,9 +5651,9 @@ static	struct	osst_support_data support_list[] = {
 	 * 	 	 * emulation layer (ide-scsi, usb-storage, ...) */
 
 	for (rp=&(support_list[0]); rp->vendor != NULL; rp++)
-		if (!strncmp(rp->vendor, SDp->vendor, strlen(rp->vendor)) &&
-		    !strncmp(rp->model, SDp->model, strlen(rp->model)) &&
-		    !strncmp(rp->rev, SDp->rev, strlen(rp->rev))) 
+		if (!memcmp(rp->vendor, SDp->vendor, strlen(rp->vendor)) &&
+		    !memcmp(rp->model, SDp->model, strlen(rp->model)) &&
+		    !memcmp(rp->rev, SDp->rev, strlen(rp->rev))) 
 			return 1;
 	return 0;
 }
@@ -5927,8 +5927,8 @@ static int osst_probe(struct device *dev)
 	tpnt->os_fw_rev = osst_parse_firmware_rev (SDp->rev);
 	tpnt->omit_blklims = 1;
 
-	tpnt->poll = (strncmp(SDp->model, "DI-", 3) == 0) || 
-		     (strncmp(SDp->model, "FW-", 3) == 0) || OSST_FW_NEED_POLL(tpnt->os_fw_rev,SDp);
+	tpnt->poll = (memcmp(SDp->model, "DI-", 3) == 0) || 
+		     (memcmp(SDp->model, "FW-", 3) == 0) || OSST_FW_NEED_POLL(tpnt->os_fw_rev,SDp);
 	tpnt->frame_in_buffer = 0;
 	tpnt->header_ok = 0;
 	tpnt->linux_media = 0;
diff --git a/drivers/scsi/ppa.c b/drivers/scsi/ppa.c
index d164c96..5a6b3df 100644
--- a/drivers/scsi/ppa.c
+++ b/drivers/scsi/ppa.c
@@ -122,12 +122,12 @@ static inline int ppa_proc_write(ppa_struct *dev, char *buffer, int length)
 {
 	unsigned long x;
 
-	if ((length > 5) && (strncmp(buffer, "mode=", 5) == 0)) {
+	if ((length > 5) && (memcmp(buffer, "mode=", 5) == 0)) {
 		x = simple_strtoul(buffer + 5, NULL, 0);
 		dev->mode = x;
 		return length;
 	}
-	if ((length > 10) && (strncmp(buffer, "recon_tmo=", 10) == 0)) {
+	if ((length > 10) && (memcmp(buffer, "recon_tmo=", 10) == 0)) {
 		x = simple_strtoul(buffer + 10, NULL, 0);
 		dev->recon_tmo = x;
 		printk(KERN_INFO "ppa: recon_tmo set to %ld\n", x);
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index 5dec684..67403af 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -4200,7 +4200,7 @@ qla1280_get_token(char *str)
 
 	if (sep) {
 		for (i = 0; i < ARRAY_SIZE(setup_token); i++) {
-			if (!strncmp(setup_token[i].token, str, (sep - str))) {
+			if (!memcmp(setup_token[i].token, str, (sep - str))) {
 				ret =  setup_token[i].val;
 				break;
 			}
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index 76de957..f6f88b4 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -2815,7 +2815,7 @@ qla2xxx_get_vpd_field(scsi_qla_host_t *vha, char *key, char *str, size_t size)
 	while (pos < end && *pos != 0x78) {
 		len = (*pos == 0x82) ? pos[1] : pos[2];
 
-		if (!strncmp(pos, key, strlen(key)))
+		if (!memcmp(pos, key, strlen(key)))
 			break;
 
 		if (*pos != 0x90 && *pos != 0x91)
diff --git a/drivers/scsi/scsi_proc.c b/drivers/scsi/scsi_proc.c
index c99da92..124a086 100644
--- a/drivers/scsi/scsi_proc.c
+++ b/drivers/scsi/scsi_proc.c
@@ -344,7 +344,7 @@ static ssize_t proc_scsi_write(struct file *file, const char __user *buf,
 	 * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
 	 * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
 	 */
-	if (!strncmp("scsi add-single-device", buffer, 22)) {
+	if (!memcmp("scsi add-single-device", buffer, 22)) {
 		p = buffer + 23;
 
 		host = simple_strtoul(p, &p, 0);
@@ -358,7 +358,7 @@ static ssize_t proc_scsi_write(struct file *file, const char __user *buf,
 	 * Usage: echo "scsi remove-single-device 0 1 2 3" >/proc/scsi/scsi
 	 * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
 	 */
-	} else if (!strncmp("scsi remove-single-device", buffer, 25)) {
+	} else if (!memcmp("scsi remove-single-device", buffer, 25)) {
 		p = buffer + 26;
 
 		host = simple_strtoul(p, &p, 0);
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 087821f..51e739a 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1505,7 +1505,7 @@ struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
 	struct device *parent = &shost->shost_gendev;
 	struct scsi_target *starget;
 
-	if (strncmp(scsi_scan_type, "none", 4) == 0)
+	if (memcmp(scsi_scan_type, "none", 4) == 0)
 		return ERR_PTR(-ENODEV);
 
 	starget = scsi_alloc_target(parent, channel, id);
@@ -1630,7 +1630,7 @@ void scsi_scan_target(struct device *parent, unsigned int channel,
 {
 	struct Scsi_Host *shost = dev_to_shost(parent);
 
-	if (strncmp(scsi_scan_type, "none", 4) == 0)
+	if (memcmp(scsi_scan_type, "none", 4) == 0)
 		return;
 
 	mutex_lock(&shost->scan_mutex);
@@ -1732,7 +1732,7 @@ static struct async_scan_data *scsi_prep_async_scan(struct Scsi_Host *shost)
 	struct async_scan_data *data;
 	unsigned long flags;
 
-	if (strncmp(scsi_scan_type, "sync", 4) == 0)
+	if (memcmp(scsi_scan_type, "sync", 4) == 0)
 		return NULL;
 
 	if (shost->async_scan) {
@@ -1855,7 +1855,7 @@ void scsi_scan_host(struct Scsi_Host *shost)
 	struct task_struct *p;
 	struct async_scan_data *data;
 
-	if (strncmp(scsi_scan_type, "none", 4) == 0)
+	if (memcmp(scsi_scan_type, "none", 4) == 0)
 		return;
 	if (scsi_autopm_get_host(shost) < 0)
 		return;
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 76ee2e7..3bda14a 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -83,7 +83,7 @@ static int check_set(unsigned int *val, char *src)
 {
 	char *last;
 
-	if (strncmp(src, "-", 20) == 0) {
+	if (memcmp(src, "-", 20) == 0) {
 		*val = SCAN_WILD_CARD;
 	} else {
 		/*
@@ -170,7 +170,7 @@ store_shost_state(struct device *dev, struct device_attribute *attr,
 
 	for (i = 0; i < ARRAY_SIZE(shost_states); i++) {
 		const int len = strlen(shost_states[i].name);
-		if (strncmp(shost_states[i].name, buf, len) == 0 &&
+		if (memcmp(shost_states[i].name, buf, len) == 0 &&
 		   buf[len] == '\n') {
 			state = shost_states[i].value;
 			break;
@@ -568,7 +568,7 @@ store_state_field(struct device *dev, struct device_attribute *attr,
 
 	for (i = 0; i < ARRAY_SIZE(sdev_states); i++) {
 		const int len = strlen(sdev_states[i].name);
-		if (strncmp(sdev_states[i].name, buf, len) == 0 &&
+		if (memcmp(sdev_states[i].name, buf, len) == 0 &&
 		   buf[len] == '\n') {
 			state = sdev_states[i].value;
 			break;
@@ -783,11 +783,11 @@ sdev_store_queue_type_rw(struct device *dev, struct device_attribute *attr,
 	if (!sdev->tagged_supported || !sht->change_queue_type)
 		return -EINVAL;
 
-	if (strncmp(buf, "ordered", 7) == 0)
+	if (memcmp(buf, "ordered", 7) == 0)
 		tag_type = MSG_ORDERED_TAG;
-	else if (strncmp(buf, "simple", 6) == 0)
+	else if (memcmp(buf, "simple", 6) == 0)
 		tag_type = MSG_SIMPLE_TAG;
-	else if (strncmp(buf, "none", 4) != 0)
+	else if (memcmp(buf, "none", 4) != 0)
 		return -EINVAL;
 
 	if (tag_type == prev_tag_type)
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
index 998c01b..e1b7385 100644
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -101,7 +101,7 @@ static int get_fc_##title##_match(const char *table_key,		\
 	int i;								\
 									\
 	for (i = 0; i < ARRAY_SIZE(table); i++) {			\
-		if (strncmp(table_key, table[i].name,			\
+		if (memcmp(table_key, table[i].name,			\
 				table[i].matchlen) == 0) {		\
 			*value = table[i].value;			\
 			return 0; /* success */				\
@@ -966,7 +966,7 @@ store_fc_rport_fast_io_fail_tmo(struct device *dev,
 	    (rport->port_state == FC_PORTSTATE_DELETED) ||
 	    (rport->port_state == FC_PORTSTATE_NOTPRESENT))
 		return -EBUSY;
-	if (strncmp(buf, "off", 3) == 0)
+	if (memcmp(buf, "off", 3) == 0)
 		rport->fast_io_fail_tmo = -1;
 	else {
 		val = simple_strtoul(buf, &cp, 0);
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 332387a..460be1c 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -1833,7 +1833,7 @@ store_priv_session_##field(struct device *dev,				\
 	if ((session->state == ISCSI_SESSION_FREE) ||			\
 	    (session->state == ISCSI_SESSION_FAILED))			\
 		return -EBUSY;						\
-	if (strncmp(buf, "off", 3) == 0)				\
+	if (memcmp(buf, "off", 3) == 0)				\
 		session->field = -1;					\
 	else {								\
 		val = simple_strtoul(buf, &cp, 0);			\
diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c
index 927e99c..a543995 100644
--- a/drivers/scsi/scsi_transport_sas.c
+++ b/drivers/scsi/scsi_transport_sas.c
@@ -90,7 +90,7 @@ set_sas_##title##_names(u32 *table_key, const char *buf)	\
 								\
 	for (i = 0; i < ARRAY_SIZE(table); i++) {		\
 		len = strlen(table[i].name);			\
-		if (strncmp(buf, table[i].name, len) == 0 &&	\
+		if (memcmp(buf, table[i].name, len) == 0 &&	\
 		    (buf[len] == '\n' || buf[len] == '\0')) {	\
 			*table_key = table[i].value;		\
 			return 0;				\
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c
index 8a172d4..1a3cc45 100644
--- a/drivers/scsi/scsi_transport_spi.c
+++ b/drivers/scsi/scsi_transport_spi.c
@@ -171,7 +171,7 @@ static inline enum spi_signal_type spi_signal_to_value(const char *name)
 
 	for (i = 0; i < ARRAY_SIZE(signal_types); i++) {
 		len =  strlen(signal_types[i].name);
-		if (strncmp(name, signal_types[i].name, len) == 0 &&
+		if (memcmp(name, signal_types[i].name, len) == 0 &&
 		    (name[len] == '\n' || name[len] == '\0'))
 			return signal_types[i].value;
 	}
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 9564961..7ec77b4 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -147,7 +147,7 @@ sd_store_cache_type(struct device *dev, struct device_attribute *attr,
 
 	for (i = 0; i < ARRAY_SIZE(sd_cache_types); i++) {
 		len = strlen(sd_cache_types[i]);
-		if (strncmp(sd_cache_types[i], buf, len) == 0 &&
+		if (memcmp(sd_cache_types[i], buf, len) == 0 &&
 		    buf[len] == '\n') {
 			ct = i;
 			break;
diff --git a/drivers/scsi/sim710.c b/drivers/scsi/sim710.c
index 8ac6ce7..23093bf 100644
--- a/drivers/scsi/sim710.c
+++ b/drivers/scsi/sim710.c
@@ -70,9 +70,9 @@ param_setup(char *str)
 	while(pos != NULL && (next = strchr(pos, ':')) != NULL) {
 		int val = (int)simple_strtoul(++next, NULL, 0);
 
-		if(!strncmp(pos, "slot:", 5))
+		if(!memcmp(pos, "slot:", 5))
 			slot = val;
-		else if(!strncmp(pos, "id:", 3)) {
+		else if(!memcmp(pos, "id:", 3)) {
 			if(slot == -1) {
 				printk(KERN_WARNING "sim710: Must specify slot for id parameter\n");
 			} else if(slot >= MAX_SLOTS) {
diff --git a/drivers/scsi/sr_vendor.c b/drivers/scsi/sr_vendor.c
index 92cc2ef..5be35c5 100644
--- a/drivers/scsi/sr_vendor.c
+++ b/drivers/scsi/sr_vendor.c
@@ -80,22 +80,22 @@ void sr_vendor_init(Scsi_CD *cd)
 	if (cd->device->type == TYPE_WORM) {
 		cd->vendor = VENDOR_WRITER;
 
-	} else if (!strncmp(vendor, "NEC", 3)) {
+	} else if (!memcmp(vendor, "NEC", 3)) {
 		cd->vendor = VENDOR_NEC;
-		if (!strncmp(model, "CD-ROM DRIVE:25", 15) ||
-		    !strncmp(model, "CD-ROM DRIVE:36", 15) ||
-		    !strncmp(model, "CD-ROM DRIVE:83", 15) ||
-		    !strncmp(model, "CD-ROM DRIVE:84 ", 16)
+		if (!memcmp(model, "CD-ROM DRIVE:25", 15) ||
+		    !memcmp(model, "CD-ROM DRIVE:36", 15) ||
+		    !memcmp(model, "CD-ROM DRIVE:83", 15) ||
+		    !memcmp(model, "CD-ROM DRIVE:84 ", 16)
 #if 0
 		/* my NEC 3x returns the read-raw data if a read-raw
 		   is followed by a read for the same sector - aeb */
-		    || !strncmp(model, "CD-ROM DRIVE:500", 16)
+		    || !memcmp(model, "CD-ROM DRIVE:500", 16)
 #endif
 		    )
 			/* these can't handle multisession, may hang */
 			cd->cdi.mask |= CDC_MULTI_SESSION;
 
-	} else if (!strncmp(vendor, "TOSHIBA", 7)) {
+	} else if (!memcmp(vendor, "TOSHIBA", 7)) {
 		cd->vendor = VENDOR_TOSHIBA;
 
 	}
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index 5b7388f..b71c464 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -293,9 +293,9 @@ static char * st_incompatible(struct scsi_device* SDp)
 	struct st_reject_data *rp;
 
 	for (rp=&(reject_list[0]); rp->vendor != NULL; rp++)
-		if (!strncmp(rp->vendor, SDp->vendor, strlen(rp->vendor)) &&
-		    !strncmp(rp->model, SDp->model, strlen(rp->model)) &&
-		    !strncmp(rp->rev, SDp->rev, strlen(rp->rev))) {
+		if (!memcmp(rp->vendor, SDp->vendor, strlen(rp->vendor)) &&
+		    !memcmp(rp->model, SDp->model, strlen(rp->model)) &&
+		    !memcmp(rp->rev, SDp->rev, strlen(rp->rev))) {
 			if (rp->driver_hint)
 				return rp->driver_hint;
 			else
@@ -3924,7 +3924,7 @@ static int __init st_setup(char *str)
 		while (stp != NULL) {
 			for (i = 0; i < ARRAY_SIZE(parms); i++) {
 				len = strlen(parms[i].name);
-				if (!strncmp(stp, parms[i].name, len) &&
+				if (!memcmp(stp, parms[i].name, len) &&
 				    (*(stp + len) == ':' || *(stp + len) == '=')) {
 					if (parms[i].val)
 						*parms[i].val =
diff --git a/drivers/scsi/u14-34f.c b/drivers/scsi/u14-34f.c
index edfc5da..6310a05 100644
--- a/drivers/scsi/u14-34f.c
+++ b/drivers/scsi/u14-34f.c
@@ -1052,13 +1052,13 @@ static void internal_setup(char *str, int *ints) {
       else if (c == 'y' || c == 'Y') val = TRUE;
       else val = (int) simple_strtoul(pc, NULL, 0);
 
-      if (!strncmp(cur, "lc:", 3)) linked_comm = val;
-      else if (!strncmp(cur, "of:", 3)) have_old_firmware = val;
-      else if (!strncmp(cur, "tm:", 3)) tag_mode = val;
-      else if (!strncmp(cur, "tc:", 3)) tag_mode = val;
-      else if (!strncmp(cur, "mq:", 3))  max_queue_depth = val;
-      else if (!strncmp(cur, "ls:", 3))  link_statistics = val;
-      else if (!strncmp(cur, "et:", 3))  ext_tran = val;
+      if (!memcmp(cur, "lc:", 3)) linked_comm = val;
+      else if (!memcmp(cur, "of:", 3)) have_old_firmware = val;
+      else if (!memcmp(cur, "tm:", 3)) tag_mode = val;
+      else if (!memcmp(cur, "tc:", 3)) tag_mode = val;
+      else if (!memcmp(cur, "mq:", 3))  max_queue_depth = val;
+      else if (!memcmp(cur, "ls:", 3))  link_statistics = val;
+      else if (!memcmp(cur, "et:", 3))  ext_tran = val;
 
       if ((cur = strchr(cur, ','))) ++cur;
       }
diff --git a/drivers/scsi/wd33c93.c b/drivers/scsi/wd33c93.c
index 5f697e0..99dcb0b 100644
--- a/drivers/scsi/wd33c93.c
+++ b/drivers/scsi/wd33c93.c
@@ -1818,9 +1818,9 @@ check_setup_args(char *key, int *flags, int *val, char *buf)
 	for (x = 0; x < MAX_SETUP_ARGS; x++) {
 		if (setup_used[x])
 			continue;
-		if (!strncmp(setup_args[x], key, strlen(key)))
+		if (!memcmp(setup_args[x], key, strlen(key)))
 			break;
-		if (!strncmp(setup_args[x], "next", strlen("next")))
+		if (!memcmp(setup_args[x], "next", strlen("next")))
 			return 0;
 	}
 	if (x == MAX_SETUP_ARGS)
@@ -2090,35 +2090,35 @@ wd33c93_proc_info(struct Scsi_Host *instance, char *buf, char **start, off_t off
 		for (bp = buf; *bp; ) {
 			while (',' == *bp || ' ' == *bp)
 				++bp;
-		if (!strncmp(bp, "debug:", 6)) {
+		if (!memcmp(bp, "debug:", 6)) {
 				hd->args = simple_strtoul(bp+6, &bp, 0) & DB_MASK;
-		} else if (!strncmp(bp, "disconnect:", 11)) {
+		} else if (!memcmp(bp, "disconnect:", 11)) {
 				x = simple_strtoul(bp+11, &bp, 0);
 			if (x < DIS_NEVER || x > DIS_ALWAYS)
 				x = DIS_ADAPTIVE;
 			hd->disconnect = x;
-		} else if (!strncmp(bp, "period:", 7)) {
+		} else if (!memcmp(bp, "period:", 7)) {
 			x = simple_strtoul(bp+7, &bp, 0);
 			hd->default_sx_per =
 				hd->sx_table[round_period((unsigned int) x,
 							  hd->sx_table)].period_ns;
-		} else if (!strncmp(bp, "resync:", 7)) {
+		} else if (!memcmp(bp, "resync:", 7)) {
 				set_resync(hd, (int)simple_strtoul(bp+7, &bp, 0));
-		} else if (!strncmp(bp, "proc:", 5)) {
+		} else if (!memcmp(bp, "proc:", 5)) {
 				hd->proc = simple_strtoul(bp+5, &bp, 0);
-		} else if (!strncmp(bp, "nodma:", 6)) {
+		} else if (!memcmp(bp, "nodma:", 6)) {
 				hd->no_dma = simple_strtoul(bp+6, &bp, 0);
-		} else if (!strncmp(bp, "level2:", 7)) {
+		} else if (!memcmp(bp, "level2:", 7)) {
 				hd->level2 = simple_strtoul(bp+7, &bp, 0);
-			} else if (!strncmp(bp, "burst:", 6)) {
+			} else if (!memcmp(bp, "burst:", 6)) {
 				hd->dma_mode =
 					simple_strtol(bp+6, &bp, 0) ? CTRL_BURST:CTRL_DMA;
-			} else if (!strncmp(bp, "fast:", 5)) {
+			} else if (!memcmp(bp, "fast:", 5)) {
 				x = !!simple_strtol(bp+5, &bp, 0);
 				if (x != hd->fast)
 					set_resync(hd, 0xff);
 				hd->fast = x;
-			} else if (!strncmp(bp, "nosync:", 7)) {
+			} else if (!memcmp(bp, "nosync:", 7)) {
 				x = simple_strtoul(bp+7, &bp, 0);
 				set_resync(hd, x ^ hd->no_sync);
 				hd->no_sync = x;
diff --git a/drivers/serial/8250_early.c b/drivers/serial/8250_early.c
index eaafb98..9e29915 100644
--- a/drivers/serial/8250_early.c
+++ b/drivers/serial/8250_early.c
@@ -159,8 +159,8 @@ static int __init parse_options(struct early_serial8250_device *device,
 
 	port->uartclk = BASE_BAUD * 16;
 
-	mmio = !strncmp(options, "mmio,", 5);
-	mmio32 = !strncmp(options, "mmio32,", 7);
+	mmio = !memcmp(options, "mmio,", 5);
+	mmio32 = !memcmp(options, "mmio32,", 7);
 	if (mmio || mmio32) {
 		port->iotype = (mmio ? UPIO_MEM : UPIO_MEM32);
 		port->mapbase = simple_strtoul(options + (mmio ? 5 : 7),
@@ -182,7 +182,7 @@ static int __init parse_options(struct early_serial8250_device *device,
 			return -ENOMEM;
 		}
 #endif
-	} else if (!strncmp(options, "io,", 3)) {
+	} else if (!memcmp(options, "io,", 3)) {
 		port->iotype = UPIO_PORT;
 		port->iobase = simple_strtoul(options + 3, &options, 0);
 		mmio = 0;
diff --git a/drivers/serial/kgdboc.c b/drivers/serial/kgdboc.c
index 3374618..71184ec 100644
--- a/drivers/serial/kgdboc.c
+++ b/drivers/serial/kgdboc.c
@@ -95,7 +95,7 @@ static void kgdboc_restore_input(void)
 
 static int kgdboc_register_kbd(char **cptr)
 {
-	if (strncmp(*cptr, "kbd", 3) == 0) {
+	if (memcmp(*cptr, "kbd", 3) == 0) {
 		if (kdb_poll_idx < KDB_POLL_FUNC_MAX) {
 			kdb_poll_funcs[kdb_poll_idx] = kdb_get_kbd_char;
 			kdb_poll_idx++;
@@ -165,7 +165,7 @@ static int configure_kgdboc(void)
 	kgdb_tty_driver = NULL;
 
 	kgdboc_use_kms = 0;
-	if (strncmp(cptr, "kms,", 4) == 0) {
+	if (memcmp(cptr, "kms,", 4) == 0) {
 		cptr += 4;
 		kgdboc_use_kms = 1;
 	}
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c
index 5b9cde7..dbb623c 100644
--- a/drivers/serial/pmac_zilog.c
+++ b/drivers/serial/pmac_zilog.c
@@ -1802,9 +1802,9 @@ static int __init pmz_probe(void)
 		 */
 		node_a = node_b = NULL;
 		for (np = NULL; (np = of_get_next_child(node_p, np)) != NULL;) {
-			if (strncmp(np->name, "ch-a", 4) == 0)
+			if (memcmp(np->name, "ch-a", 4) == 0)
 				node_a = of_node_get(np);
-			else if (strncmp(np->name, "ch-b", 4) == 0)
+			else if (memcmp(np->name, "ch-b", 4) == 0)
 				node_b = of_node_get(np);
 		}
 		if (!node_a && !node_b) {
diff --git a/drivers/sfi/sfi_core.c b/drivers/sfi/sfi_core.c
index ceba593..1379a25 100644
--- a/drivers/sfi/sfi_core.c
+++ b/drivers/sfi/sfi_core.c
@@ -200,10 +200,10 @@ static int sfi_table_check_key(struct sfi_table_header *th,
 				struct sfi_table_key *key)
 {
 
-	if (strncmp(th->sig, key->sig, SFI_SIGNATURE_SIZE)
-		|| (key->oem_id && strncmp(th->oem_id,
+	if (memcmp(th->sig, key->sig, SFI_SIGNATURE_SIZE)
+		|| (key->oem_id && memcmp(th->oem_id,
 				key->oem_id, SFI_OEM_ID_SIZE))
-		|| (key->oem_table_id && strncmp(th->oem_table_id,
+		|| (key->oem_table_id && memcmp(th->oem_table_id,
 				key->oem_table_id, SFI_OEM_TABLE_ID_SIZE)))
 		return -1;
 
@@ -351,7 +351,7 @@ static __init int sfi_find_syst(void)
 		struct sfi_table_header *syst_hdr;
 
 		syst_hdr = start + offset;
-		if (strncmp(syst_hdr->sig, SFI_SIG_SYST,
+		if (memcmp(syst_hdr->sig, SFI_SIG_SYST,
 				SFI_SIGNATURE_SIZE))
 			continue;
 
@@ -400,7 +400,7 @@ static ssize_t sfi_table_show(struct file *filp, struct kobject *kobj,
 	key.oem_id = NULL;
 	key.oem_table_id = NULL;
 
-	if (strncmp(SFI_SIG_SYST, tbl_attr->name, SFI_SIGNATURE_SIZE)) {
+	if (memcmp(SFI_SIG_SYST, tbl_attr->name, SFI_SIGNATURE_SIZE)) {
 		th = sfi_get_table(&key);
 		if (!th)
 			return 0;
diff --git a/drivers/sn/ioc3.c b/drivers/sn/ioc3.c
index b3b33fa..3239074 100644
--- a/drivers/sn/ioc3.c
+++ b/drivers/sn/ioc3.c
@@ -295,9 +295,9 @@ static void read_nic(struct ioc3_driver_data *idd, unsigned long addr)
 			part[j++] = data[i+32];
 	part[j] = 0;
 	/* skip Octane power supplies */
-	if(!strncmp(part, "060-0035-", 9))
+	if(!memcmp(part, "060-0035-", 9))
 		return;
-	if(!strncmp(part, "060-0038-", 9))
+	if(!memcmp(part, "060-0038-", 9))
 		return;
 	strcpy(idd->nic_part, part);
 	/* assemble the serial # */
@@ -583,13 +583,13 @@ static int __devinit ioc3_class(struct ioc3_driver_data *idd)
 {
 	int res = IOC3_CLASS_NONE;
 	/* NIC-based logic */
-	if(!strncmp(idd->nic_part, "030-0891-", 9))
+	if(!memcmp(idd->nic_part, "030-0891-", 9))
 		res = IOC3_CLASS_BASE_IP30;
-	if(!strncmp(idd->nic_part, "030-1155-", 9))
+	if(!memcmp(idd->nic_part, "030-1155-", 9))
 		res = IOC3_CLASS_CADDUO;
-	if(!strncmp(idd->nic_part, "030-1657-", 9))
+	if(!memcmp(idd->nic_part, "030-1657-", 9))
 		res = IOC3_CLASS_SERIAL;
-	if(!strncmp(idd->nic_part, "030-1664-", 9))
+	if(!memcmp(idd->nic_part, "030-1664-", 9))
 		res = IOC3_CLASS_SERIAL;
 	/* total random heuristics */
 #ifdef CONFIG_SGI_IP27
diff --git a/drivers/staging/ath6kl/miscdrv/ar3kps/ar3kpsparser.c b/drivers/staging/ath6kl/miscdrv/ar3kps/ar3kpsparser.c
index 8dce054..671635f 100644
--- a/drivers/staging/ath6kl/miscdrv/ar3kps/ar3kpsparser.c
+++ b/drivers/staging/ath6kl/miscdrv/ar3kps/ar3kpsparser.c
@@ -376,13 +376,13 @@ A_STATUS AthParseFilesUnified(A_UCHAR *srcbuffer,A_UINT32 srclen, int FileFormat
             pCharLine+=2;
             SKIP_BLANKS(pCharLine);
 
-            if(!strncmp(pCharLine,"PA",2)||!strncmp(pCharLine,"Pa",2)||!strncmp(pCharLine,"pa",2))
+            if(!memcmp(pCharLine,"PA",2)||!strncmp(pCharLine,"Pa",2)||!strncmp(pCharLine,"pa",2))
                 ParseSection=RAM_PATCH_SECTION;
 
-            if(!strncmp(pCharLine,"DY",2)||!strncmp(pCharLine,"Dy",2)||!strncmp(pCharLine,"dy",2))
+            if(!memcmp(pCharLine,"DY",2)||!strncmp(pCharLine,"Dy",2)||!strncmp(pCharLine,"dy",2))
                 ParseSection=RAM_DYN_MEM_SECTION;
 
-            if(!strncmp(pCharLine,"PS",2)||!strncmp(pCharLine,"Ps",2)||!strncmp(pCharLine,"ps",2))
+            if(!memcmp(pCharLine,"PS",2)||!strncmp(pCharLine,"Ps",2)||!strncmp(pCharLine,"ps",2))
                 ParseSection=RAM_PS_SECTION;
 
             LineRead = 0;
diff --git a/drivers/staging/batman-adv/bat_sysfs.c b/drivers/staging/batman-adv/bat_sysfs.c
index bc17fb8..a760d2f 100644
--- a/drivers/staging/batman-adv/bat_sysfs.c
+++ b/drivers/staging/batman-adv/bat_sysfs.c
@@ -56,11 +56,11 @@ static ssize_t store_aggr_ogms(struct kobject *kobj, struct attribute *attr,
 	int aggr_tmp = -1;
 
 	if (((count == 2) && (buff[0] == '1')) ||
-	    (strncmp(buff, "enable", 6) == 0))
+	    (memcmp(buff, "enable", 6) == 0))
 		aggr_tmp = 1;
 
 	if (((count == 2) && (buff[0] == '0')) ||
-	    (strncmp(buff, "disable", 7) == 0))
+	    (memcmp(buff, "disable", 7) == 0))
 		aggr_tmp = 0;
 
 	if (aggr_tmp < 0) {
@@ -105,11 +105,11 @@ static ssize_t store_bond(struct kobject *kobj, struct attribute *attr,
 	int bonding_enabled_tmp = -1;
 
 	if (((count == 2) && (buff[0] == '1')) ||
-	    (strncmp(buff, "enable", 6) == 0))
+	    (memcmp(buff, "enable", 6) == 0))
 		bonding_enabled_tmp = 1;
 
 	if (((count == 2) && (buff[0] == '0')) ||
-	    (strncmp(buff, "disable", 7) == 0))
+	    (memcmp(buff, "disable", 7) == 0))
 		bonding_enabled_tmp = 0;
 
 	if (bonding_enabled_tmp < 0) {
@@ -154,11 +154,11 @@ static ssize_t store_frag(struct kobject *kobj, struct attribute *attr,
 	int frag_enabled_tmp = -1;
 
 	if (((count == 2) && (buff[0] == '1')) ||
-	    (strncmp(buff, "enable", 6) == 0))
+	    (memcmp(buff, "enable", 6) == 0))
 		frag_enabled_tmp = 1;
 
 	if (((count == 2) && (buff[0] == '0')) ||
-	    (strncmp(buff, "disable", 7) == 0))
+	    (memcmp(buff, "disable", 7) == 0))
 		frag_enabled_tmp = 0;
 
 	if (frag_enabled_tmp < 0) {
@@ -208,12 +208,12 @@ static ssize_t store_vis_mode(struct kobject *kobj, struct attribute *attr,
 	ret = strict_strtoul(buff, 10, &val);
 
 	if (((count == 2) && (!ret) && (val == VIS_TYPE_CLIENT_UPDATE)) ||
-	    (strncmp(buff, "client", 6) == 0) ||
-	    (strncmp(buff, "off", 3) == 0))
+	    (memcmp(buff, "client", 6) == 0) ||
+	    (memcmp(buff, "off", 3) == 0))
 		vis_mode_tmp = VIS_TYPE_CLIENT_UPDATE;
 
 	if (((count == 2) && (!ret) && (val == VIS_TYPE_SERVER_SYNC)) ||
-	    (strncmp(buff, "server", 6) == 0))
+	    (memcmp(buff, "server", 6) == 0))
 		vis_mode_tmp = VIS_TYPE_SERVER_SYNC;
 
 	if (vis_mode_tmp < 0) {
@@ -440,13 +440,13 @@ static ssize_t store_mesh_iface(struct kobject *kobj, struct attribute *attr,
 		return -EINVAL;
 	}
 
-	if (strncmp(buff, "none", 4) == 0)
+	if (memcmp(buff, "none", 4) == 0)
 		status_tmp = IF_NOT_IN_USE;
 	else
 		status_tmp = IF_I_WANT_YOU;
 
 	if ((batman_if->if_status == status_tmp) || ((batman_if->soft_iface) &&
-	    (strncmp(batman_if->soft_iface->name, buff, IFNAMSIZ) == 0))) {
+	    (memcmp(batman_if->soft_iface->name, buff, IFNAMSIZ) == 0))) {
 		hardif_put(batman_if);
 		return count;
 	}
diff --git a/drivers/staging/bcm/Bcmnet.c b/drivers/staging/bcm/Bcmnet.c
index bc29698..3466265 100644
--- a/drivers/staging/bcm/Bcmnet.c
+++ b/drivers/staging/bcm/Bcmnet.c
@@ -5,7 +5,7 @@ static INT bcm_notify_event(struct notifier_block *nb, ULONG event, PVOID dev)
 	struct net_device *ndev = (struct net_device*)dev;
     PMINI_ADAPTER Adapter = GET_BCM_ADAPTER(gblpnetdev);
 	//PMINI_ADAPTER 	Adapter = (PMINI_ADAPTER)ndev->priv;
-	if(strncmp(ndev->name,gblpnetdev->name,5)==0)
+	if(memcmp(ndev->name,gblpnetdev->name,5)==0)
 	{
 		switch(event)
 		{
diff --git a/drivers/staging/brcm80211/brcmfmac/dhd_common.c b/drivers/staging/brcm80211/brcmfmac/dhd_common.c
index 703188f..270fb90 100644
--- a/drivers/staging/brcm80211/brcmfmac/dhd_common.c
+++ b/drivers/staging/brcm80211/brcmfmac/dhd_common.c
@@ -964,7 +964,7 @@ void print_buf(void *pbuf, int len, int bytes_per_line)
 static int wl_pattern_atoh(char *src, char *dst)
 {
 	int i;
-	if (strncmp(src, "0x", 2) != 0 && strncmp(src, "0X", 2) != 0) {
+	if (memcmp(src, "0x", 2) != 0 && strncmp(src, "0X", 2) != 0) {
 		DHD_ERROR(("Mask invalid format. Needs to start with 0x\n"));
 		return -1;
 	}
diff --git a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
index 9335f02..40082c8 100644
--- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
@@ -659,7 +659,7 @@ int dhd_ifname2idx(dhd_info_t *dhd, char *name)
 
 	while (--i > 0)
 		if (dhd->iflist[i]
-		    && !strncmp(dhd->iflist[i]->name, name, IFNAMSIZ))
+		    && !memcmp(dhd->iflist[i]->name, name, IFNAMSIZ))
 			break;
 
 	DHD_TRACE(("%s: return idx %d for \"%s\"\n", __func__, i, name));
@@ -1719,9 +1719,9 @@ static int dhd_ioctl_entry(struct net_device *net, struct ifreq *ifr, int cmd)
 	 */
 	is_set_key_cmd = ((ioc.cmd == WLC_SET_KEY) ||
 			  ((ioc.cmd == WLC_SET_VAR) &&
-			   !(strncmp("wsec_key", ioc.buf, 9))) ||
+			   !(memcmp("wsec_key", ioc.buf, 9))) ||
 			  ((ioc.cmd == WLC_SET_VAR) &&
-			   !(strncmp("bsscfg:wsec_key", ioc.buf, 15))));
+			   !(memcmp("bsscfg:wsec_key", ioc.buf, 15))));
 	if (is_set_key_cmd)
 		dhd_wait_pend8021x(net);
 
diff --git a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
index ea08252..bea099a 100644
--- a/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
@@ -3619,7 +3619,7 @@ dongle_offload_out:
 static s32 wl_pattern_atoh(s8 *src, s8 *dst)
 {
 	int i;
-	if (strncmp(src, "0x", 2) != 0 && strncmp(src, "0X", 2) != 0) {
+	if (memcmp(src, "0x", 2) != 0 && strncmp(src, "0X", 2) != 0) {
 		WL_ERR(("Mask invalid format. Needs to start with 0x\n"));
 		return -1;
 	}
diff --git a/drivers/staging/brcm80211/util/bcmsrom.c b/drivers/staging/brcm80211/util/bcmsrom.c
index 1282ef7..08332ce 100644
--- a/drivers/staging/brcm80211/util/bcmsrom.c
+++ b/drivers/staging/brcm80211/util/bcmsrom.c
@@ -1599,7 +1599,7 @@ static int initvars_flash(si_t *sih, osl_t *osh, char **base, uint len)
 		l = strlen(s);
 
 		/* skip non-matching variable */
-		if (strncmp(s, devpath, dl))
+		if (memcmp(s, devpath, dl))
 			continue;
 
 		/* is there enough room to copy? */
diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
index ebba9bb..c37944f 100644
--- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c
+++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c
@@ -863,7 +863,7 @@ static int daqp_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	strcpy(local->board_name, "DAQP");
 	dev->board_name = local->board_name;
 	if (local->link->prod_id[2]) {
-		if (strncmp(local->link->prod_id[2], "DAQP", 4) == 0) {
+		if (memcmp(local->link->prod_id[2], "DAQP", 4) == 0) {
 			strncpy(local->board_name, local->link->prod_id[2],
 				sizeof(local->board_name));
 		}
diff --git a/drivers/staging/comedi/kcomedilib/kcomedilib_main.c b/drivers/staging/comedi/kcomedilib/kcomedilib_main.c
index 0252b44..664667b 100644
--- a/drivers/staging/comedi/kcomedilib/kcomedilib_main.c
+++ b/drivers/staging/comedi/kcomedilib/kcomedilib_main.c
@@ -47,7 +47,7 @@ struct comedi_device *comedi_open(const char *filename)
 	struct comedi_device *dev;
 	unsigned int minor;
 
-	if (strncmp(filename, "/dev/comedi", 11) != 0)
+	if (memcmp(filename, "/dev/comedi", 11) != 0)
 		return NULL;
 
 	minor = simple_strtoul(filename + 11, NULL, 0);
diff --git a/drivers/staging/cpia/cpia.c b/drivers/staging/cpia/cpia.c
index 0e740b8..e555faa 100644
--- a/drivers/staging/cpia/cpia.c
+++ b/drivers/staging/cpia/cpia.c
@@ -521,7 +521,7 @@ static int match(char *checkstr, char **buffer, size_t *count,
 {
 	int ret, colon_found = 1;
 	int len = strlen(checkstr);
-	ret = (len <= *count && strncmp(*buffer, checkstr, len) == 0);
+	ret = (len <= *count && memcmp(*buffer, checkstr, len) == 0);
 	if (ret) {
 		*buffer += len;
 		*count -= len;
diff --git a/drivers/staging/cpia/cpia_pp.c b/drivers/staging/cpia/cpia_pp.c
index f5604c1..18f54f7 100644
--- a/drivers/staging/cpia/cpia_pp.c
+++ b/drivers/staging/cpia/cpia_pp.c
@@ -789,7 +789,7 @@ static void cpia_pp_attach (struct parport *port)
 	case PPCPIA_PARPORT_AUTO:
 		if (port->probe_info[0].class != PARPORT_CLASS_MEDIA ||
 		    port->probe_info[0].cmdset == NULL ||
-		    strncmp(port->probe_info[0].cmdset, "CPIA_1", 6) != 0)
+		    memcmp(port->probe_info[0].cmdset, "CPIA_1", 6) != 0)
 			return;
 
 		cpia_pp_register(port);
@@ -836,12 +836,12 @@ static int __init cpia_init(void)
 {
 	if (parport[0]) {
 		/* The user gave some parameters.  Let's see what they were. */
-		if (!strncmp(parport[0], "auto", 4)) {
+		if (!memcmp(parport[0], "auto", 4)) {
 			parport_nr[0] = PPCPIA_PARPORT_AUTO;
 		} else {
 			int n;
 			for (n = 0; n < PARPORT_MAX && parport[n]; n++) {
-				if (!strncmp(parport[n], "none", 4)) {
+				if (!memcmp(parport[n], "none", 4)) {
 					parport_nr[n] = PPCPIA_PARPORT_NONE;
 				} else {
 					char *ep;
diff --git a/drivers/staging/crystalhd/crystalhd_lnx.c b/drivers/staging/crystalhd/crystalhd_lnx.c
index 28c6b8c..113938c 100644
--- a/drivers/staging/crystalhd/crystalhd_lnx.c
+++ b/drivers/staging/crystalhd/crystalhd_lnx.c
@@ -716,17 +716,17 @@ void chd_set_log_level(struct crystalhd_adp *adp, char *arg)
 {
 	if ((!arg) || (strlen(arg) < 3))
 		g_linklog_level = BCMLOG_ERROR | BCMLOG_DATA;
-	else if (!strncmp(arg, "sstep", 5))
+	else if (!memcmp(arg, "sstep", 5))
 		g_linklog_level = BCMLOG_INFO | BCMLOG_DATA | BCMLOG_DBG |
 				  BCMLOG_SSTEP | BCMLOG_ERROR;
-	else if (!strncmp(arg, "info", 4))
+	else if (!memcmp(arg, "info", 4))
 		g_linklog_level = BCMLOG_ERROR | BCMLOG_DATA | BCMLOG_INFO;
-	else if (!strncmp(arg, "debug", 5))
+	else if (!memcmp(arg, "debug", 5))
 		g_linklog_level = BCMLOG_ERROR | BCMLOG_DATA | BCMLOG_INFO |
 				  BCMLOG_DBG;
-	else if (!strncmp(arg, "pball", 5))
+	else if (!memcmp(arg, "pball", 5))
 		g_linklog_level = 0xFFFFFFFF & ~(BCMLOG_SPINLOCK);
-	else if (!strncmp(arg, "silent", 6))
+	else if (!memcmp(arg, "silent", 6))
 		g_linklog_level = 0;
 	else
 		g_linklog_level = 0;
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
index 5b89ee2..136fed1 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
@@ -826,7 +826,7 @@ u16 init_ft1000_netdev(struct ft1000_device *ft1000dev)
     {
         DEBUG("init_ft1000_netdev: network device name is %s\n", netdev->name);
 
-	if ( strncmp(netdev->name,"eth", 3) == 0) {
+	if ( memcmp(netdev->name,"eth", 3) == 0) {
 		card_nr[0] = netdev->name[3];
 		card_nr[1] = '\0';
 		ret_val = strict_strtoul(card_nr, 10, &gCardIndex);
diff --git a/drivers/staging/iio/Documentation/iio_utils.h b/drivers/staging/iio/Documentation/iio_utils.h
index 0372424..6155b39 100644
--- a/drivers/staging/iio/Documentation/iio_utils.h
+++ b/drivers/staging/iio/Documentation/iio_utils.h
@@ -436,12 +436,12 @@ inline int find_type_by_name(const char *name, const char *type)
 		if (strcmp(ent->d_name, ".") != 0 &&
 			strcmp(ent->d_name, "..") != 0 &&
 			strlen(ent->d_name) > strlen(type) &&
-			strncmp(ent->d_name, type, strlen(type)) == 0) {
+			memcmp(ent->d_name, type, strlen(type)) == 0) {
 			numstrlen = sscanf(ent->d_name + strlen(type),
 					   "%d",
 					   &number);
 			/* verify the next character is not a colon */
-			if (strncmp(ent->d_name + strlen(type) + numstrlen,
+			if (memcmp(ent->d_name + strlen(type) + numstrlen,
 					":",
 					1) != 0) {
 				filename = malloc(strlen(iio_dir)
diff --git a/drivers/staging/iio/accel/kxsd9.c b/drivers/staging/iio/accel/kxsd9.c
index 79f5795..7781814 100644
--- a/drivers/staging/iio/accel/kxsd9.c
+++ b/drivers/staging/iio/accel/kxsd9.c
@@ -142,19 +142,19 @@ static ssize_t kxsd9_write_scale(struct device *dev,
 		},
 	};
 
-	if (!strncmp(buf, KXSD9_SCALE_8G,
+	if (!memcmp(buf, KXSD9_SCALE_8G,
 		     strlen(buf) < strlen(KXSD9_SCALE_8G)
 		     ? strlen(buf) : strlen(KXSD9_SCALE_8G)))
 		val = KXSD9_FS_8;
-	else if (!strncmp(buf, KXSD9_SCALE_6G,
+	else if (!memcmp(buf, KXSD9_SCALE_6G,
 			  strlen(buf) < strlen(KXSD9_SCALE_6G)
 			  ? strlen(buf) : strlen(KXSD9_SCALE_6G)))
 		val = KXSD9_FS_6;
-	else if (!strncmp(buf, KXSD9_SCALE_4G,
+	else if (!memcmp(buf, KXSD9_SCALE_4G,
 			  strlen(buf) < strlen(KXSD9_SCALE_4G)
 			  ? strlen(buf) : strlen(KXSD9_SCALE_4G)))
 		val = KXSD9_FS_4;
-	else if (!strncmp(buf, KXSD9_SCALE_2G,
+	else if (!memcmp(buf, KXSD9_SCALE_2G,
 			  strlen(buf) < strlen(KXSD9_SCALE_2G)
 			  ? strlen(buf) : strlen(KXSD9_SCALE_2G)))
 		val = KXSD9_FS_2;
diff --git a/drivers/staging/iio/accel/sca3000_ring.c b/drivers/staging/iio/accel/sca3000_ring.c
index c872fdd..bc4d4c1 100644
--- a/drivers/staging/iio/accel/sca3000_ring.c
+++ b/drivers/staging/iio/accel/sca3000_ring.c
@@ -180,11 +180,11 @@ static ssize_t sca3000_store_ring_bpse(struct device *dev,
 	ret = sca3000_read_data(st, SCA3000_REG_ADDR_MODE, &rx, 1);
 	if (ret)
 		goto error_ret;
-	if (strncmp(buf, "s8/8", 4) == 0) {
+	if (memcmp(buf, "s8/8", 4) == 0) {
 		ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE,
 					rx[1] | SCA3000_RING_BUF_8BIT);
 		st->bpse = 8;
-	} else if (strncmp(buf, "s11/16", 5) == 0) {
+	} else if (memcmp(buf, "s11/16", 5) == 0) {
 		ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE,
 					rx[1] & ~SCA3000_RING_BUF_8BIT);
 		st->bpse = 11;
diff --git a/drivers/staging/iio/industrialio-trigger.c b/drivers/staging/iio/industrialio-trigger.c
index 57dd923..6ba6a19 100644
--- a/drivers/staging/iio/industrialio-trigger.c
+++ b/drivers/staging/iio/industrialio-trigger.c
@@ -161,7 +161,7 @@ struct iio_trigger *iio_trigger_find_by_name(const char *name, size_t len)
 
 	mutex_lock(&iio_trigger_list_lock);
 	list_for_each_entry(trig, &iio_trigger_list, list) {
-		if (strncmp(trig->name, name, len) == 0) {
+		if (memcmp(trig->name, name, len) == 0) {
 			found = true;
 			break;
 		}
diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
index 5168917..0e12258 100644
--- a/drivers/staging/iio/magnetometer/hmc5843.c
+++ b/drivers/staging/iio/magnetometer/hmc5843.c
@@ -353,19 +353,19 @@ static ssize_t set_sampling_frequency(struct device *dev,
 	struct hmc5843_data *data = indio_dev->dev_data;
 	unsigned long rate = 0;
 
-	if (strncmp(buf, "0.5" , 3) == 0)
+	if (memcmp(buf, "0.5" , 3) == 0)
 		rate = RATE_5;
-	else if (strncmp(buf, "1" , 1) == 0)
+	else if (memcmp(buf, "1" , 1) == 0)
 		rate = RATE_10;
-	else if (strncmp(buf, "2", 1) == 0)
+	else if (memcmp(buf, "2", 1) == 0)
 		rate = RATE_20;
-	else if (strncmp(buf, "5", 1) == 0)
+	else if (memcmp(buf, "5", 1) == 0)
 		rate = RATE_50;
-	else if (strncmp(buf, "10", 2) == 0)
+	else if (memcmp(buf, "10", 2) == 0)
 		rate = RATE_100;
-	else if (strncmp(buf, "20" , 2) == 0)
+	else if (memcmp(buf, "20" , 2) == 0)
 		rate = RATE_200;
-	else if (strncmp(buf, "50" , 2) == 0)
+	else if (memcmp(buf, "50" , 2) == 0)
 		rate = RATE_500;
 	else
 		return -EINVAL;
@@ -511,7 +511,7 @@ static int hmc5843_detect(struct i2c_client *client,
 			!= HMC5843_ID_REG_LENGTH)
 		return -ENODEV;
 
-	if (0 != strncmp(id_str, HMC5843_ID_STRING, HMC5843_ID_REG_LENGTH))
+	if (0 != memcmp(id_str, HMC5843_ID_STRING, HMC5843_ID_REG_LENGTH))
 		return -ENODEV;
 
 	return 0;
diff --git a/drivers/staging/intel_sst/intel_sst_drv_interface.c b/drivers/staging/intel_sst/intel_sst_drv_interface.c
index 669e298..5c6a775 100644
--- a/drivers/staging/intel_sst/intel_sst_drv_interface.c
+++ b/drivers/staging/intel_sst/intel_sst_drv_interface.c
@@ -449,7 +449,7 @@ int register_sst_card(struct intel_sst_card_ops *card)
 	}
 	if (sst_drv_ctx->pmic_state == SND_MAD_UN_INIT) {
 		/* register this driver */
-		if ((strncmp(SST_CARD_NAMES, card->module_name,
+		if ((memcmp(SST_CARD_NAMES, card->module_name,
 				strlen(SST_CARD_NAMES))) == 0) {
 			sst_drv_ctx->pmic_vendor = card->vendor_id;
 			sst_drv_ctx->scard_ops =  card->scard_ops;
diff --git a/drivers/staging/intel_sst/intel_sst_dsp.c b/drivers/staging/intel_sst/intel_sst_dsp.c
index d80a6ee..abceb83 100644
--- a/drivers/staging/intel_sst/intel_sst_dsp.c
+++ b/drivers/staging/intel_sst/intel_sst_dsp.c
@@ -181,7 +181,7 @@ static int sst_parse_fw_image(const struct firmware *sst_fw)
 	header = (struct fw_header *)sst_fw->data;
 
 	/* verify FW */
-	if ((strncmp(header->signature, SST_FW_SIGN, 4) != 0) ||
+	if ((memcmp(header->signature, SST_FW_SIGN, 4) != 0) ||
 			(sst_fw->size != header->file_size + sizeof(*header))) {
 		/* Invalid FW signature */
 		pr_err("sst: InvalidFW sign/filesize mismatch\n");
diff --git a/drivers/staging/msm/ebi2_lcd.c b/drivers/staging/msm/ebi2_lcd.c
index b41e123..6f57530 100644
--- a/drivers/staging/msm/ebi2_lcd.c
+++ b/drivers/staging/msm/ebi2_lcd.c
@@ -71,7 +71,7 @@ static int ebi2_lcd_probe(struct platform_device *pdev)
 
 	if (pdev->id == 0) {
 		for (i = 0; i < pdev->num_resources; i++) {
-			if (!strncmp(pdev->resource[i].name, "base", 4)) {
+			if (!memcmp(pdev->resource[i].name, "base", 4)) {
 				ebi2_base = ioremap(pdev->resource[i].start,
 						pdev->resource[i].end -
 						pdev->resource[i].start + 1);
@@ -82,7 +82,7 @@ static int ebi2_lcd_probe(struct platform_device *pdev)
 				}
 				ebi2_lcd_cfg0 = (void *)(ebi2_base + 0x20);
 				ebi2_lcd_cfg1 = (void *)(ebi2_base + 0x24);
-			} else if (!strncmp(pdev->resource[i].name,
+			} else if (!memcmp(pdev->resource[i].name,
 						"lcd01", 5)) {
 				lcd01_base = ioremap(pdev->resource[i].start,
 						pdev->resource[i].end -
@@ -92,7 +92,7 @@ static int ebi2_lcd_probe(struct platform_device *pdev)
 						"lcd01_base ioremap failed!\n");
 					return -ENOMEM;
 				}
-			} else if (!strncmp(pdev->resource[i].name,
+			} else if (!memcmp(pdev->resource[i].name,
 						"lcd02", 5)) {
 				lcd02_base = ioremap(pdev->resource[i].start,
 						pdev->resource[i].end -
diff --git a/drivers/staging/msm/staging-devices.c b/drivers/staging/msm/staging-devices.c
index d6cd919..06e3801 100644
--- a/drivers/staging/msm/staging-devices.c
+++ b/drivers/staging/msm/staging-devices.c
@@ -107,7 +107,7 @@ static int msm_fb_detect_panel(const char *name)
 	int ret = -EPERM;
 
 	if (machine_is_qsd8x50_ffa() || machine_is_qsd8x50a_ffa()) {
-		if (!strncmp(name, "mddi_toshiba_wvga_pt", 20))
+		if (!memcmp(name, "mddi_toshiba_wvga_pt", 20))
 			ret = 0;
 		else
 			ret = -ENODEV;
@@ -249,20 +249,20 @@ static void __init msm_register_device(struct platform_device *pdev, void *data)
 
 void __init msm_fb_register_device(char *name, void *data)
 {
-	if (!strncmp(name, "mdp", 3))
+	if (!memcmp(name, "mdp", 3))
 		msm_register_device(&msm_mdp_device, data);
 /*
-	else if (!strncmp(name, "pmdh", 4))
+	else if (!memcmp(name, "pmdh", 4))
 		msm_register_device(&msm_mddi_device, data);
-	else if (!strncmp(name, "emdh", 4))
+	else if (!memcmp(name, "emdh", 4))
 		msm_register_device(&msm_mddi_ext_device, data);
-	else if (!strncmp(name, "ebi2", 4))
+	else if (!memcmp(name, "ebi2", 4))
 		msm_register_device(&msm_ebi2_lcd_device, data);
-	else if (!strncmp(name, "tvenc", 5))
+	else if (!memcmp(name, "tvenc", 5))
 		msm_register_device(&msm_tvenc_device, data);
 	else */
 
-	if (!strncmp(name, "lcdc", 4))
+	if (!memcmp(name, "lcdc", 4))
 		msm_register_device(&msm_lcdc_device, data);
 	/*else
 		printk(KERN_ERR "%s: unknown device! %s\n", __func__, name);
diff --git a/drivers/staging/rt2860/common/rt_channel.c b/drivers/staging/rt2860/common/rt_channel.c
index 5387989..c004a81 100644
--- a/drivers/staging/rt2860/common/rt_channel.c
+++ b/drivers/staging/rt2860/common/rt_channel.c
@@ -1428,7 +1428,7 @@ static struct rt_ch_region *GetChRegion(u8 *CntryCode)
 	struct rt_ch_region *pChRegion = NULL;
 
 	while (strcmp((char *)ChRegion[loop].CountReg, "") != 0) {
-		if (strncmp
+		if (memcmp
 		    ((char *)ChRegion[loop].CountReg, (char *)CntryCode,
 		     2) == 0) {
 			pChRegion = &ChRegion[loop];
diff --git a/drivers/staging/rt2860/common/spectrum.c b/drivers/staging/rt2860/common/spectrum.c
index 2d5f847..aaf3b39 100644
--- a/drivers/staging/rt2860/common/spectrum.c
+++ b/drivers/staging/rt2860/common/spectrum.c
@@ -844,7 +844,7 @@ void InsertChannelRepIE(struct rt_rtmp_adapter *pAd,
 	u8 *pChListPtr = NULL;
 
 	Len = 1;
-	if (strncmp(pCountry, "US", 2) == 0) {
+	if (memcmp(pCountry, "US", 2) == 0) {
 		if (RegulatoryClass >= USA_REGULATORY_INFO_SIZE) {
 			DBGPRINT(RT_DEBUG_ERROR,
 				 ("%s: USA Unknow Requlatory class (%d)\n",
@@ -857,7 +857,7 @@ void InsertChannelRepIE(struct rt_rtmp_adapter *pAd,
 		    NumberOfChannels;
 		pChListPtr =
 		    USARegulatoryInfo[RegulatoryClass].ChannelSet.ChannelList;
-	} else if (strncmp(pCountry, "JP", 2) == 0) {
+	} else if (memcmp(pCountry, "JP", 2) == 0) {
 		if (RegulatoryClass >= JP_REGULATORY_INFO_SIZE) {
 			DBGPRINT(RT_DEBUG_ERROR,
 				 ("%s: JP Unknow Requlatory class (%d)\n",
diff --git a/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c
index 3a72449..75bf06f 100644
--- a/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c
+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c
@@ -1506,11 +1506,11 @@ inline void ieee80211_process_probe_response(
 		//YJ,add,080819,for hidden ap
 		if(is_beacon == 0)
 			network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & target->flags);
-		//if(strncmp(network.ssid, "linksys-c",9) == 0)
+		//if(memcmp(network.ssid, "linksys-c",9) == 0)
 		//	printk("====>2 network.ssid=%s FLAG=%d target.ssid=%s FLAG=%d\n", network.ssid, network.flags, target->ssid, target->flags);
 		if(((network.flags & NETWORK_EMPTY_ESSID) == NETWORK_EMPTY_ESSID) \
-		    && (((network.ssid_len > 0) && (strncmp(target->ssid, network.ssid, network.ssid_len)))\
-		    ||((ieee->current_network.ssid_len == network.ssid_len)&&(strncmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == IEEE80211_NOLINK))))
+		    && (((network.ssid_len > 0) && (memcmp(target->ssid, network.ssid, network.ssid_len)))\
+		    ||((ieee->current_network.ssid_len == network.ssid_len)&&(memcmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == IEEE80211_NOLINK))))
 			renew = 1;
 		//YJ,add,080819,for hidden ap,end
 		update_network(target, &network);
diff --git a/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c
index 652d879..12d1f79 100644
--- a/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c
+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c
@@ -1340,7 +1340,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
 		if(ieee->current_network.ssid_len != net->ssid_len)
 			ssidmatch = 0;
 		else
-			ssidmatch = (0==strncmp(ieee->current_network.ssid, net->ssid, net->ssid_len));
+			ssidmatch = (0==memcmp(ieee->current_network.ssid, net->ssid, net->ssid_len));
 
 		//printk("cur: %s, %d, net:%s, %d\n", ieee->current_network.ssid, ieee->current_network.ssid_len, net->ssid, net->ssid_len);
 		//printk("apset=%d apmatch=%d ssidset=%d ssidbroad=%d ssidmatch=%d\n",apset,apmatch,ssidset,ssidbroad,ssidmatch);
@@ -1497,7 +1497,7 @@ static short probe_rq_parse(struct ieee80211_device *ieee, struct sk_buff *skb,
 	if (ssidlen == 0) return 1;
 
 	if (!ssid) return 1; /* ssid not found in tagged param */
-	return (!strncmp(ssid, ieee->current_network.ssid, ssidlen));
+	return (!memcmp(ssid, ieee->current_network.ssid, ssidlen));
 
 }
 
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_rx.c
index 9318695..6e687c7 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211_rx.c
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_rx.c
@@ -2806,11 +2806,11 @@ static inline void ieee80211_process_probe_response(
 		//YJ,add,080819,for hidden ap
 		if(is_beacon(beacon->header.frame_ctl) == 0)
 			network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & target->flags);
-		//if(strncmp(network.ssid, "linksys-c",9) == 0)
+		//if(memcmp(network.ssid, "linksys-c",9) == 0)
 		//	printk("====>2 network.ssid=%s FLAG=%d target.ssid=%s FLAG=%d\n", network.ssid, network.flags, target->ssid, target->flags);
 		if(((network.flags & NETWORK_EMPTY_ESSID) == NETWORK_EMPTY_ESSID) \
-		    && (((network.ssid_len > 0) && (strncmp(target->ssid, network.ssid, network.ssid_len)))\
-		    ||((ieee->current_network.ssid_len == network.ssid_len)&&(strncmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == IEEE80211_NOLINK))))
+		    && (((network.ssid_len > 0) && (memcmp(target->ssid, network.ssid, network.ssid_len)))\
+		    ||((ieee->current_network.ssid_len == network.ssid_len)&&(memcmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == IEEE80211_NOLINK))))
 			renew = 1;
 		//YJ,add,080819,for hidden ap,end
 
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c
index 54c9c24..ad37c28 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c
@@ -1610,7 +1610,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
 		ssidbroad =  !(net->ssid_len == 0 || net->ssid[0]== '\0');
 		apmatch = (memcmp(ieee->current_network.bssid, net->bssid, ETH_ALEN)==0);
 		ssidmatch = (ieee->current_network.ssid_len == net->ssid_len)&&\
-				(!strncmp(ieee->current_network.ssid, net->ssid, net->ssid_len));
+				(!memcmp(ieee->current_network.ssid, net->ssid, net->ssid_len));
 
 
 		if (	/* if the user set the AP check if match.
@@ -1784,7 +1784,7 @@ static short probe_rq_parse(struct ieee80211_device *ieee, struct sk_buff *skb,
 	if (ssidlen == 0) return 1;
 
 	if (!ssid) return 1; /* ssid not found in tagged param */
-	return (!strncmp(ssid, ieee->current_network.ssid, ssidlen));
+	return (!memcmp(ssid, ieee->current_network.ssid, ssidlen));
 
 }
 
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
index c8ca9d8..7d3b372 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c
@@ -2617,11 +2617,11 @@ static inline void ieee80211_process_probe_response(
 		//YJ,add,080819,for hidden ap
 		if(is_beacon(beacon->header.frame_ctl) == 0)
 			network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & target->flags);
-		//if(strncmp(network.ssid, "linksys-c",9) == 0)
+		//if(memcmp(network.ssid, "linksys-c",9) == 0)
 		//	printk("====>2 network.ssid=%s FLAG=%d target.ssid=%s FLAG=%d\n", network.ssid, network.flags, target->ssid, target->flags);
 		if(((network.flags & NETWORK_EMPTY_ESSID) == NETWORK_EMPTY_ESSID) \
-		    && (((network.ssid_len > 0) && (strncmp(target->ssid, network.ssid, network.ssid_len)))\
-		    ||((ieee->current_network.ssid_len == network.ssid_len)&&(strncmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == IEEE80211_NOLINK))))
+		    && (((network.ssid_len > 0) && (memcmp(target->ssid, network.ssid, network.ssid_len)))\
+		    ||((ieee->current_network.ssid_len == network.ssid_len)&&(memcmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == IEEE80211_NOLINK))))
 			renew = 1;
 		//YJ,add,080819,for hidden ap,end
 
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
index bc8c425..3e4e4ec 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
@@ -1467,7 +1467,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
 		ssidbroad =  !(net->ssid_len == 0 || net->ssid[0]== '\0');
 		apmatch = (memcmp(ieee->current_network.bssid, net->bssid, ETH_ALEN)==0);
 		ssidmatch = (ieee->current_network.ssid_len == net->ssid_len)&&\
-				(!strncmp(ieee->current_network.ssid, net->ssid, net->ssid_len));
+				(!memcmp(ieee->current_network.ssid, net->ssid, net->ssid_len));
 
 
 		if (	/* if the user set the AP check if match.
@@ -1642,7 +1642,7 @@ static short probe_rq_parse(struct ieee80211_device *ieee, struct sk_buff *skb,
 	if (ssidlen == 0) return 1;
 
 	if (!ssid) return 1; /* ssid not found in tagged param */
-	return (!strncmp(ssid, ieee->current_network.ssid, ssidlen));
+	return (!memcmp(ssid, ieee->current_network.ssid, ssidlen));
 
 }
 
diff --git a/drivers/staging/rtl8192u/r8192U_wx.c b/drivers/staging/rtl8192u/r8192U_wx.c
index 25d5c87..f595fdd 100644
--- a/drivers/staging/rtl8192u/r8192U_wx.c
+++ b/drivers/staging/rtl8192u/r8192U_wx.c
@@ -261,7 +261,7 @@ static int r8192_wx_get_ap_status(struct net_device *dev,
 	//search for the correspoding info which is received
 	list_for_each_entry(target, &ieee->network_list, list) {
 		if ( (target->ssid_len == name_len) &&
-		     (strncmp(target->ssid, (char*)wrqu->data.pointer, name_len)==0)){
+		     (memcmp(target->ssid, (char*)wrqu->data.pointer, name_len)==0)){
 			if(target->wpa_ie_len>0 || target->rsn_ie_len>0 )
 				//set flags=1 to indicate this ap is WPA
 				wrqu->data.flags = 1;
diff --git a/drivers/staging/stradis/stradis.c b/drivers/staging/stradis/stradis.c
index 807dd7e..30197b4 100644
--- a/drivers/staging/stradis/stradis.c
+++ b/drivers/staging/stradis/stradis.c
@@ -792,14 +792,14 @@ static int initialize_fpga(struct video_code *bitdata)
 		dmabuf = (u16 *) saa->dmadebi;
 		newdma = (u8 *) saa->dmadebi;
 		if (NewCard) {	/* SDM2xxx */
-			if (!strncmp(bitdata->loadwhat, "decoder2", 8))
+			if (!memcmp(bitdata->loadwhat, "decoder2", 8))
 				continue;	/* fpga not for this card */
-			if (!strncmp(&saa->boardcfg[42], bitdata->loadwhat, 8))
+			if (!memcmp(&saa->boardcfg[42], bitdata->loadwhat, 8))
 				loadfile = 1;
-			else if (loadtwo && !strncmp(&saa->boardcfg[19],
+			else if (loadtwo && !memcmp(&saa->boardcfg[19],
 				       bitdata->loadwhat, 8))
 				loadfile = 2;
-			else if (!saa->boardcfg[42] && !strncmp("decxl",
+			else if (!saa->boardcfg[42] && !memcmp("decxl",
 					bitdata->loadwhat, 8))
 				loadfile = 1;	/* special */
 			else
@@ -822,7 +822,7 @@ static int initialize_fpga(struct video_code *bitdata)
 			mdelay(10);
 			saawrite(0x00400000, SAA7146_GPIO_CTRL);
 		} else {	/* original card */
-			if (strncmp(bitdata->loadwhat, "decoder2", 8))
+			if (memcmp(bitdata->loadwhat, "decoder2", 8))
 				continue;	/* fpga not for this card */
 			/* Pull the Xilinx PROG signal WS3 low */
 			saawrite(0x02000200, SAA7146_MC1);
@@ -1049,7 +1049,7 @@ static int initialize_ibmmpeg2(struct video_code *microcode)
 			return -1;
 #endif
 		}
-		if (!strncmp(microcode->loadwhat, "decoder.vid", 11)) {
+		if (!memcmp(microcode->loadwhat, "decoder.vid", 11)) {
 			if (saa->boardcfg[0] > 27)
 				continue;	/* skip to next card */
 			/* load video control store */
@@ -1066,7 +1066,7 @@ static int initialize_ibmmpeg2(struct video_code *microcode)
 				ChipControl, 2);
 			saa->boardcfg[0] = 28;
 		}
-		if (!strncmp(microcode->loadwhat, "decoder.aud", 11)) {
+		if (!memcmp(microcode->loadwhat, "decoder.aud", 11)) {
 			if (saa->boardcfg[0] > 35)
 				continue;	/* skip to next card */
 			/* load audio control store */
@@ -1696,7 +1696,7 @@ static long saa_ioctl(struct file *file,
 			if (copy_from_user(&ucode, arg, sizeof(ucode)))
 				return -EFAULT;
 			if (ucode.datasize > 65536 || ucode.datasize < 1024 ||
-					strncmp(ucode.loadwhat, "dec", 3))
+					memcmp(ucode.loadwhat, "dec", 3))
 				return -EINVAL;
 			if ((udata = vmalloc(ucode.datasize)) == NULL)
 				return -ENOMEM;
@@ -1705,8 +1705,8 @@ static long saa_ioctl(struct file *file,
 				return -EFAULT;
 			}
 			ucode.data = udata;
-			if (!strncmp(ucode.loadwhat, "decoder.aud", 11) ||
-				!strncmp(ucode.loadwhat, "decoder.vid", 11))
+			if (!memcmp(ucode.loadwhat, "decoder.aud", 11) ||
+				!memcmp(ucode.loadwhat, "decoder.vid", 11))
 				i = initialize_ibmmpeg2(&ucode);
 			else
 				i = initialize_fpga(&ucode);
diff --git a/drivers/staging/tidspbridge/rmgr/dbdcd.c b/drivers/staging/tidspbridge/rmgr/dbdcd.c
index 3581a55..52b742b 100644
--- a/drivers/staging/tidspbridge/rmgr/dbdcd.c
+++ b/drivers/staging/tidspbridge/rmgr/dbdcd.c
@@ -256,7 +256,7 @@ int dcd_enumerate_object(s32 index, enum dsp_dcdobjtype obj_type,
 			len = strlen(sz_reg_key);
 			spin_lock(&dbdcd_lock);
 			list_for_each_entry(dcd_key, &reg_key_list, link) {
-				if (!strncmp(dcd_key->name, sz_reg_key, len)
+				if (!memcmp(dcd_key->name, sz_reg_key, len)
 						&& !index--) {
 					strncpy(sz_value, &dcd_key->name[len],
 					       strlen(&dcd_key->name[len]) + 1);
@@ -449,7 +449,7 @@ int dcd_get_object_def(struct dcd_manager *hdcd_mgr,
 	if (!status) {
 		spin_lock(&dbdcd_lock);
 		list_for_each_entry(dcd_key, &reg_key_list, link) {
-			if (!strncmp(dcd_key->name, sz_reg_key,
+			if (!memcmp(dcd_key->name, sz_reg_key,
 						strlen(sz_reg_key) + 1))
 				break;
 		}
@@ -726,7 +726,7 @@ int dcd_get_library_name(struct dcd_manager *hdcd_mgr,
 		spin_lock(&dbdcd_lock);
 		list_for_each_entry(dcd_key, &reg_key_list, link) {
 			/*  See if the name matches. */
-			if (!strncmp(dcd_key->name, sz_reg_key,
+			if (!memcmp(dcd_key->name, sz_reg_key,
 						strlen(sz_reg_key) + 1))
 				break;
 		}
@@ -765,7 +765,7 @@ int dcd_get_library_name(struct dcd_manager *hdcd_mgr,
 		spin_lock(&dbdcd_lock);
 		list_for_each_entry(dcd_key, &reg_key_list, link) {
 			/*  See if the name matches. */
-			if (!strncmp(dcd_key->name, sz_reg_key,
+			if (!memcmp(dcd_key->name, sz_reg_key,
 						strlen(sz_reg_key) + 1))
 				break;
 		}
@@ -893,7 +893,7 @@ int dcd_register_object(struct dsp_uuid *uuid_obj,
 		spin_lock(&dbdcd_lock);
 		list_for_each_entry(dcd_key, &reg_key_list, link) {
 			/*  See if the name matches. */
-			if (!strncmp(dcd_key->name, sz_reg_key,
+			if (!memcmp(dcd_key->name, sz_reg_key,
 						strlen(sz_reg_key) + 1))
 				break;
 		}
@@ -929,7 +929,7 @@ int dcd_register_object(struct dsp_uuid *uuid_obj,
 			spin_unlock(&dbdcd_lock);
 		} else {
 			/*  Make sure the new data is the same. */
-			if (strncmp(dcd_key->path, psz_path_name,
+			if (memcmp(dcd_key->path, psz_path_name,
 							dw_path_size)) {
 				/*  The caller needs a different data size! */
 				kfree(dcd_key->path);
@@ -950,7 +950,7 @@ int dcd_register_object(struct dsp_uuid *uuid_obj,
 		/* Deregister an existing object */
 		spin_lock(&dbdcd_lock);
 		list_for_each_entry(dcd_key, &reg_key_list, link) {
-			if (!strncmp(dcd_key->name, sz_reg_key,
+			if (!memcmp(dcd_key->name, sz_reg_key,
 						strlen(sz_reg_key) + 1)) {
 				list_del(&dcd_key->link);
 				kfree(dcd_key->path);
diff --git a/drivers/staging/tidspbridge/rmgr/nldr.c b/drivers/staging/tidspbridge/rmgr/nldr.c
index a6ae007..6240e34 100644
--- a/drivers/staging/tidspbridge/rmgr/nldr.c
+++ b/drivers/staging/tidspbridge/rmgr/nldr.c
@@ -933,7 +933,7 @@ static int add_ovly_info(void *handle, struct dbll_sect_info *sect_info,
 	for (i = 0; i < nldr_obj->ovly_nodes; i++) {
 		node_name = nldr_obj->ovly_table[i].node_name;
 		DBC_REQUIRE(node_name);
-		if (strncmp(node_name, sect_name + 1, strlen(node_name)) == 0) {
+		if (memcmp(node_name, sect_name + 1, strlen(node_name)) == 0) {
 			/* Found the node */
 			break;
 		}
@@ -947,7 +947,7 @@ static int add_ovly_info(void *handle, struct dbll_sect_info *sect_info,
 
 	if (*pch) {
 		pch++;		/* Skip over the ':' */
-		if (strncmp(pch, PCREATE, strlen(PCREATE)) == 0) {
+		if (memcmp(pch, PCREATE, strlen(PCREATE)) == 0) {
 			status =
 			    add_ovly_sect(nldr_obj,
 					  &nldr_obj->
@@ -956,7 +956,7 @@ static int add_ovly_info(void *handle, struct dbll_sect_info *sect_info,
 			if (!status && !sect_exists)
 				nldr_obj->ovly_table[i].create_sects++;
 
-		} else if (strncmp(pch, PDELETE, strlen(PDELETE)) == 0) {
+		} else if (memcmp(pch, PDELETE, strlen(PDELETE)) == 0) {
 			status =
 			    add_ovly_sect(nldr_obj,
 					  &nldr_obj->
@@ -965,7 +965,7 @@ static int add_ovly_info(void *handle, struct dbll_sect_info *sect_info,
 			if (!status && !sect_exists)
 				nldr_obj->ovly_table[i].delete_sects++;
 
-		} else if (strncmp(pch, PEXECUTE, strlen(PEXECUTE)) == 0) {
+		} else if (memcmp(pch, PEXECUTE, strlen(PEXECUTE)) == 0) {
 			status =
 			    add_ovly_sect(nldr_obj,
 					  &nldr_obj->
diff --git a/drivers/staging/usbip/stub_main.c b/drivers/staging/usbip/stub_main.c
index f3a4096..60ea8b2 100644
--- a/drivers/staging/usbip/stub_main.c
+++ b/drivers/staging/usbip/stub_main.c
@@ -53,7 +53,7 @@ int match_busid(const char *busid)
 
 	for (i = 0; i < MAX_BUSID; i++)
 		if (busid_table[i].name[0])
-			if (!strncmp(busid_table[i].name, busid, BUSID_SIZE)) {
+			if (!memcmp(busid_table[i].name, busid, BUSID_SIZE)) {
 				/* already registerd */
 				spin_unlock(&busid_table_lock);
 				return 0;
@@ -72,7 +72,7 @@ struct bus_id_priv *get_busid_priv(const char *busid)
 
 	for (i = 0; i < MAX_BUSID; i++)
 		if (busid_table[i].name[0])
-			if (!strncmp(busid_table[i].name, busid, BUSID_SIZE)) {
+			if (!memcmp(busid_table[i].name, busid, BUSID_SIZE)) {
 				/* already registerd */
 				spin_unlock(&busid_table_lock);
 				return &(busid_table[i]);
@@ -132,7 +132,7 @@ int del_match_busid(char *busid)
 	spin_lock(&busid_table_lock);
 
 	for (i = 0; i < MAX_BUSID; i++)
-		if (!strncmp(busid_table[i].name, busid, BUSID_SIZE)) {
+		if (!memcmp(busid_table[i].name, busid, BUSID_SIZE)) {
 			/* found */
 			if (busid_table[i].status == STUB_BUSID_OTHER)
 				memset(busid_table[i].name, 0, BUSID_SIZE);
@@ -182,14 +182,14 @@ static ssize_t store_match_busid(struct device_driver *dev, const char *buf,
 	strncpy(busid, buf + 4, BUSID_SIZE);
 
 
-	if (!strncmp(buf, "add ", 4)) {
+	if (!memcmp(buf, "add ", 4)) {
 		if (add_match_busid(busid) < 0)
 			return -ENOMEM;
 		else {
 			usbip_udbg("add busid %s\n", busid);
 			return count;
 		}
-	} else if (!strncmp(buf, "del ", 4)) {
+	} else if (!memcmp(buf, "del ", 4)) {
 		if (del_match_busid(busid) < 0)
 			return -ENODEV;
 		else {
diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c
index 4f73d09..5d73f7d 100644
--- a/drivers/staging/xgifb/XGI_main_26.c
+++ b/drivers/staging/xgifb/XGI_main_26.c
@@ -521,7 +521,7 @@ static void XGIfb_search_mode(const char *name)
 
 	while (XGIbios_mode[i].mode_no != 0) {
 		l = min(strlen(name), strlen(XGIbios_mode[i].name));
-		if (!strncmp(name, XGIbios_mode[i].name, l)) {
+		if (!memcmp(name, XGIbios_mode[i].name, l)) {
 			xgifb_mode_idx = i;
 			j = 1;
 			break;
@@ -2813,53 +2813,53 @@ XGIINITSTATIC int __init XGIfb_setup(char *options)
 		if (!*this_opt)
 			continue;
 
-		if (!strncmp(this_opt, "mode:", 5)) {
+		if (!memcmp(this_opt, "mode:", 5)) {
 			XGIfb_search_mode(this_opt + 5);
-		} else if (!strncmp(this_opt, "vesa:", 5)) {
+		} else if (!memcmp(this_opt, "vesa:", 5)) {
 			XGIfb_search_vesamode(simple_strtoul(this_opt + 5, NULL, 0));
-		} else if (!strncmp(this_opt, "mode:", 5)) {
+		} else if (!memcmp(this_opt, "mode:", 5)) {
 			XGIfb_search_mode(this_opt + 5);
-		} else if (!strncmp(this_opt, "vesa:", 5)) {
+		} else if (!memcmp(this_opt, "vesa:", 5)) {
 			XGIfb_search_vesamode(simple_strtoul(this_opt + 5, NULL, 0));
-		} else if (!strncmp(this_opt, "vrate:", 6)) {
+		} else if (!memcmp(this_opt, "vrate:", 6)) {
 			xgi_video_info.refresh_rate = simple_strtoul(this_opt + 6, NULL, 0);
-		} else if (!strncmp(this_opt, "rate:", 5)) {
+		} else if (!memcmp(this_opt, "rate:", 5)) {
 			xgi_video_info.refresh_rate = simple_strtoul(this_opt + 5, NULL, 0);
-		} else if (!strncmp(this_opt, "off", 3)) {
+		} else if (!memcmp(this_opt, "off", 3)) {
 			XGIfb_off = 1;
-		} else if (!strncmp(this_opt, "crt1off", 7)) {
+		} else if (!memcmp(this_opt, "crt1off", 7)) {
 			XGIfb_crt1off = 1;
-		} else if (!strncmp(this_opt, "filter:", 7)) {
+		} else if (!memcmp(this_opt, "filter:", 7)) {
 			filter = (int)simple_strtoul(this_opt + 7, NULL, 0);
-		} else if (!strncmp(this_opt, "forcecrt2type:", 14)) {
+		} else if (!memcmp(this_opt, "forcecrt2type:", 14)) {
 			XGIfb_search_crt2type(this_opt + 14);
-		} else if (!strncmp(this_opt, "forcecrt1:", 10)) {
+		} else if (!memcmp(this_opt, "forcecrt1:", 10)) {
 			XGIfb_forcecrt1 = (int)simple_strtoul(this_opt + 10, NULL, 0);
-		} else if (!strncmp(this_opt, "tvmode:", 7)) {
+		} else if (!memcmp(this_opt, "tvmode:", 7)) {
 			XGIfb_search_tvstd(this_opt + 7);
-		} else if (!strncmp(this_opt, "tvstandard:", 11)) {
+		} else if (!memcmp(this_opt, "tvstandard:", 11)) {
 			XGIfb_search_tvstd(this_opt + 7);
-		} else if (!strncmp(this_opt, "mem:", 4)) {
+		} else if (!memcmp(this_opt, "mem:", 4)) {
 			XGIfb_mem = simple_strtoul(this_opt + 4, NULL, 0);
-		} else if (!strncmp(this_opt, "dstn", 4)) {
+		} else if (!memcmp(this_opt, "dstn", 4)) {
 			enable_dstn = 1;
 			/* TW: DSTN overrules forcecrt2type */
 			XGIfb_crt2type = DISPTYPE_LCD;
-		} else if (!strncmp(this_opt, "queuemode:", 10)) {
+		} else if (!memcmp(this_opt, "queuemode:", 10)) {
 			XGIfb_search_queuemode(this_opt + 10);
-		} else if (!strncmp(this_opt, "pdc:", 4)) {
+		} else if (!memcmp(this_opt, "pdc:", 4)) {
 			XGIfb_pdc = simple_strtoul(this_opt + 4, NULL, 0);
 			if (XGIfb_pdc & ~0x3c) {
 				printk(KERN_INFO "XGIfb: Illegal pdc parameter\n");
 				XGIfb_pdc = 0;
 			}
-		} else if (!strncmp(this_opt, "noaccel", 7)) {
+		} else if (!memcmp(this_opt, "noaccel", 7)) {
 			XGIfb_accel = 0;
-		} else if (!strncmp(this_opt, "noypan", 6)) {
+		} else if (!memcmp(this_opt, "noypan", 6)) {
 			XGIfb_ypan = 0;
-		} else if (!strncmp(this_opt, "userom:", 7)) {
+		} else if (!memcmp(this_opt, "userom:", 7)) {
 			XGIfb_userom = (int)simple_strtoul(this_opt + 7, NULL, 0);
-			/* } else if (!strncmp(this_opt, "useoem:", 7)) { */
+			/* } else if (!memcmp(this_opt, "useoem:", 7)) { */
 			/* XGIfb_useoem = (int)simple_strtoul(this_opt + 7, NULL, 0); */
 		} else {
 			XGIfb_search_mode(this_opt);
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index 13c72c6..4a9d7fa 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -148,9 +148,9 @@ mode_store(struct device *dev, struct device_attribute *attr,
 	if (!tz->ops->set_mode)
 		return -EPERM;
 
-	if (!strncmp(buf, "enabled", sizeof("enabled")))
+	if (!memcmp(buf, "enabled", sizeof("enabled")))
 		result = tz->ops->set_mode(tz, THERMAL_DEVICE_ENABLED);
-	else if (!strncmp(buf, "disabled", sizeof("disabled")))
+	else if (!memcmp(buf, "disabled", sizeof("disabled")))
 		result = tz->ops->set_mode(tz, THERMAL_DEVICE_DISABLED);
 	else
 		result = -EINVAL;
@@ -235,7 +235,7 @@ passive_store(struct device *dev, struct device_attribute *attr,
 	if (state && !tz->forced_passive) {
 		mutex_lock(&thermal_list_lock);
 		list_for_each_entry(cdev, &thermal_cdev_list, node) {
-			if (!strncmp("Processor", cdev->type,
+			if (!memcmp("Processor", cdev->type,
 				     sizeof("Processor")))
 				thermal_zone_bind_cooling_device(tz,
 								 THERMAL_TRIPS_NONE,
@@ -247,7 +247,7 @@ passive_store(struct device *dev, struct device_attribute *attr,
 	} else if (!state && tz->forced_passive) {
 		mutex_lock(&thermal_list_lock);
 		list_for_each_entry(cdev, &thermal_cdev_list, node) {
-			if (!strncmp("Processor", cdev->type,
+			if (!memcmp("Processor", cdev->type,
 				     sizeof("Processor")))
 				thermal_zone_unbind_cooling_device(tz,
 								   THERMAL_TRIPS_NONE,
@@ -803,7 +803,7 @@ static void thermal_release(struct device *dev)
 	struct thermal_zone_device *tz;
 	struct thermal_cooling_device *cdev;
 
-	if (!strncmp(dev_name(dev), "thermal_zone", sizeof "thermal_zone" - 1)) {
+	if (!memcmp(dev_name(dev), "thermal_zone", sizeof "thermal_zone" - 1)) {
 		tz = to_thermal_zone(dev);
 		kfree(tz);
 	} else {
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index c05c5af..c2561e5 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -353,7 +353,7 @@ struct tty_driver *tty_find_polling_driver(char *name, int *line)
 	mutex_lock(&tty_mutex);
 	/* Search through the tty devices to look for a match */
 	list_for_each_entry(p, &tty_drivers, tty_drivers) {
-		if (strncmp(name, p->name, len) != 0)
+		if (memcmp(name, p->name, len) != 0)
 			continue;
 		stp = str;
 		if (*stp == ',')
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
index 44447f5..309d392 100644
--- a/drivers/usb/atm/ueagle-atm.c
+++ b/drivers/usb/atm/ueagle-atm.c
@@ -1658,7 +1658,7 @@ static int request_cmvs(struct uea_softc *sc,
 
 	size = (*fw)->size;
 	data = (u8 *) (*fw)->data;
-	if (size < 4 || strncmp(data, "cmv2", 4) != 0) {
+	if (size < 4 || memcmp(data, "cmv2", 4) != 0) {
 		if (*ver == 1) {
 			uea_warn(INS_TO_USBDEV(sc), "firmware %s is corrupted,"
 				" try to get older cmvs\n", cmv_name);
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
index 448f5b4..3995454 100644
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
@@ -422,11 +422,11 @@ set_level(struct device *dev, struct device_attribute *attr,
 	usb_lock_device(udev);
 
 	if (len == sizeof on_string - 1 &&
-			strncmp(buf, on_string, len) == 0)
+			memcmp(buf, on_string, len) == 0)
 		usb_disable_autosuspend(udev);
 
 	else if (len == sizeof auto_string - 1 &&
-			strncmp(buf, auto_string, len) == 0)
+			memcmp(buf, auto_string, len) == 0)
 		usb_enable_autosuspend(udev);
 
 	else
diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index c244895..51fbe44 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -1828,7 +1828,7 @@ static int s3c2410_udc_probe(struct platform_device *pdev)
 
 	dev_dbg(dev, "got and enabled clocks\n");
 
-	if (strncmp(pdev->name, "s3c2440", 7) == 0) {
+	if (memcmp(pdev->name, "s3c2440", 7) == 0) {
 		dev_info(dev, "S3C2440: increasing FIFO to 128 bytes\n");
 		memory.ep[1].fifo_size = S3C2440_EP_FIFO_SIZE;
 		memory.ep[2].fifo_size = S3C2440_EP_FIFO_SIZE;
diff --git a/drivers/usb/host/ehci-dbg.c b/drivers/usb/host/ehci-dbg.c
index 6e25996..1cc8aa0 100644
--- a/drivers/usb/host/ehci-dbg.c
+++ b/drivers/usb/host/ehci-dbg.c
@@ -999,7 +999,7 @@ static ssize_t debug_lpm_write(struct file *file, const char __user *user_buf,
 	if (len > 0 && buf[len - 1] == '\n')
 		buf[len - 1] = '\0';
 
-	if (strncmp(buf, "enable", 5) == 0) {
+	if (memcmp(buf, "enable", 5) == 0) {
 		if (strict_strtoul(buf + 7, 10, &port))
 			return -EINVAL;
 		params = ehci_readl(ehci, &ehci->caps->hcs_params);
@@ -1016,7 +1016,7 @@ static ssize_t debug_lpm_write(struct file *file, const char __user *user_buf,
 		temp |= PORT_LPM;
 		ehci_writel(ehci, temp, portsc);
 		printk(KERN_INFO "force enable LPM for port %lu\n", port);
-	} else if (strncmp(buf, "hird=", 5) == 0) {
+	} else if (memcmp(buf, "hird=", 5) == 0) {
 		unsigned long hird;
 		if (strict_strtoul(buf + 5, 16, &hird))
 			return -EINVAL;
@@ -1025,7 +1025,7 @@ static ssize_t debug_lpm_write(struct file *file, const char __user *user_buf,
 		temp &= ~CMD_HIRD;
 		temp |= hird << 24;
 		ehci_writel(ehci, temp, &ehci->regs->command);
-	} else if (strncmp(buf, "disable", 7) == 0) {
+	} else if (memcmp(buf, "disable", 7) == 0) {
 		if (strict_strtoul(buf + 8, 10, &port))
 			return -EINVAL;
 		params = ehci_readl(ehci, &ehci->caps->hcs_params);
diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
index 9e8639d..8d553c2 100644
--- a/drivers/usb/musb/musb_debugfs.c
+++ b/drivers/usb/musb/musb_debugfs.c
@@ -211,30 +211,30 @@ static ssize_t musb_test_mode_write(struct file *file,
 	if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
 		return -EFAULT;
 
-	if (!strncmp(buf, "force host", 9))
+	if (!memcmp(buf, "force host", 9))
 		test = MUSB_TEST_FORCE_HOST;
 
-	if (!strncmp(buf, "fifo access", 11))
+	if (!memcmp(buf, "fifo access", 11))
 		test = MUSB_TEST_FIFO_ACCESS;
 
-	if (!strncmp(buf, "force full-speed", 15))
+	if (!memcmp(buf, "force full-speed", 15))
 		test = MUSB_TEST_FORCE_FS;
 
-	if (!strncmp(buf, "force high-speed", 15))
+	if (!memcmp(buf, "force high-speed", 15))
 		test = MUSB_TEST_FORCE_HS;
 
-	if (!strncmp(buf, "test packet", 10)) {
+	if (!memcmp(buf, "test packet", 10)) {
 		test = MUSB_TEST_PACKET;
 		musb_load_testpacket(musb);
 	}
 
-	if (!strncmp(buf, "test K", 6))
+	if (!memcmp(buf, "test K", 6))
 		test = MUSB_TEST_K;
 
-	if (!strncmp(buf, "test J", 6))
+	if (!memcmp(buf, "test J", 6))
 		test = MUSB_TEST_J;
 
-	if (!strncmp(buf, "test SE0 NAK", 12))
+	if (!memcmp(buf, "test SE0 NAK", 12))
 		test = MUSB_TEST_SE0_NAK;
 
 	musb_writeb(musb->mregs, MUSB_TESTMODE, test);
diff --git a/drivers/usb/storage/libusual.c b/drivers/usb/storage/libusual.c
index fe3ffe1..2025656 100644
--- a/drivers/usb/storage/libusual.c
+++ b/drivers/usb/storage/libusual.c
@@ -216,7 +216,7 @@ static int usu_set_bias(const char *bias_s, struct kernel_param *kp)
 		--len;
 
 	for (i = 1; i < 3; i++) {
-		if (strncmp(bias_s, bias_names[i], len) == 0) {
+		if (memcmp(bias_s, bias_names[i], len) == 0) {
 			bias_n = i;
 			break;
 		}
diff --git a/drivers/video/68328fb.c b/drivers/video/68328fb.c
index 75a39ea..9e50ab0 100644
--- a/drivers/video/68328fb.c
+++ b/drivers/video/68328fb.c
@@ -421,7 +421,7 @@ int __init mc68x328fb_setup(char *options)
 	while ((this_opt = strsep(&options, ",")) != NULL) {
 		if (!*this_opt)
 			continue;
-		if (!strncmp(this_opt, "disable", 7))
+		if (!memcmp(this_opt, "disable", 7))
 			mc68x328fb_enable = 0;
 	}
 #endif
diff --git a/drivers/video/acornfb.c b/drivers/video/acornfb.c
index 82acb8d..a59b567 100644
--- a/drivers/video/acornfb.c
+++ b/drivers/video/acornfb.c
@@ -1071,22 +1071,22 @@ acornfb_parse_montype(char *opt)
 {
 	current_par.montype = -2;
 
-	if (strncmp(opt, "tv", 2) == 0) {
+	if (memcmp(opt, "tv", 2) == 0) {
 		opt += 2;
 		current_par.montype = 0;
-	} else if (strncmp(opt, "multi", 5) == 0) {
+	} else if (memcmp(opt, "multi", 5) == 0) {
 		opt += 5;
 		current_par.montype = 1;
-	} else if (strncmp(opt, "hires", 5) == 0) {
+	} else if (memcmp(opt, "hires", 5) == 0) {
 		opt += 5;
 		current_par.montype = 2;
-	} else if (strncmp(opt, "vga", 3) == 0) {
+	} else if (memcmp(opt, "vga", 3) == 0) {
 		opt += 3;
 		current_par.montype = 3;
-	} else if (strncmp(opt, "svga", 4) == 0) {
+	} else if (memcmp(opt, "svga", 4) == 0) {
 		opt += 4;
 		current_par.montype = 4;
-	} else if (strncmp(opt, "auto", 4) == 0) {
+	} else if (memcmp(opt, "auto", 4) == 0) {
 		opt += 4;
 		current_par.montype = -1;
 	} else if (isdigit(*opt))
@@ -1161,7 +1161,7 @@ acornfb_setup(char *options)
 
 			optlen = strlen(optp->name);
 
-			if (strncmp(opt, optp->name, optlen) == 0 &&
+			if (memcmp(opt, optp->name, optlen) == 0 &&
 			    opt[optlen] == ':') {
 				optp->parse(opt + optlen + 1);
 				break;
diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c
index e5d6b56..171469c 100644
--- a/drivers/video/amifb.c
+++ b/drivers/video/amifb.c
@@ -1237,9 +1237,9 @@ int __init amifb_setup(char *options)
 			fb_invert_cmaps();
 		} else if (!strcmp(this_opt, "ilbm"))
 			amifb_ilbm = 1;
-		else if (!strncmp(this_opt, "monitorcap:", 11))
+		else if (!memcmp(this_opt, "monitorcap:", 11))
 			amifb_setup_mcap(this_opt+11);
-		else if (!strncmp(this_opt, "fstart:", 7))
+		else if (!memcmp(this_opt, "fstart:", 7))
 			min_fstrt = simple_strtoul(this_opt+7, NULL, 0);
 		else
 			mode_option = this_opt;
diff --git a/drivers/video/atafb.c b/drivers/video/atafb.c
index 5b2b5ef..0cf8b7d 100644
--- a/drivers/video/atafb.c
+++ b/drivers/video/atafb.c
@@ -3040,7 +3040,7 @@ int __init atafb_setup(char *options)
 			mode_option = this_opt;
 		} else if (!strcmp(this_opt, "inverse"))
 			inverse = 1;
-		else if (!strncmp(this_opt, "hwscroll_", 9)) {
+		else if (!memcmp(this_opt, "hwscroll_", 9)) {
 			hwscroll = simple_strtoul(this_opt + 9, NULL, 10);
 			if (hwscroll < 0)
 				hwscroll = 0;
@@ -3051,23 +3051,23 @@ int __init atafb_setup(char *options)
 		else if (!strcmp(this_opt, "mv300")) {
 			external_bitspercol = 8;
 			external_card_type = IS_MV300;
-		} else if (!strncmp(this_opt, "external:", 9))
+		} else if (!memcmp(this_opt, "external:", 9))
 			atafb_setup_ext(this_opt + 9);
 #endif
-		else if (!strncmp(this_opt, "internal:", 9))
+		else if (!memcmp(this_opt, "internal:", 9))
 			atafb_setup_int(this_opt + 9);
 #ifdef ATAFB_FALCON
-		else if (!strncmp(this_opt, "eclock:", 7)) {
+		else if (!memcmp(this_opt, "eclock:", 7)) {
 			fext.f = simple_strtoul(this_opt + 7, NULL, 10);
 			/* external pixelclock in kHz --> ps */
 			fext.t = 1000000000 / fext.f;
 			fext.f *= 1000;
-		} else if (!strncmp(this_opt, "monitorcap:", 11))
+		} else if (!memcmp(this_opt, "monitorcap:", 11))
 			atafb_setup_mcap(this_opt + 11);
 #endif
 		else if (!strcmp(this_opt, "keep"))
 			DontCalcRes = 1;
-		else if (!strncmp(this_opt, "R", 1))
+		else if (!memcmp(this_opt, "R", 1))
 			atafb_setup_user(this_opt + 1);
 	}
 	return 0;
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c
index 34a0851..6e0e2ca 100644
--- a/drivers/video/aty/aty128fb.c
+++ b/drivers/video/aty/aty128fb.c
@@ -1649,30 +1649,30 @@ static int __devinit aty128fb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "lcd:", 4)) {
+		if (!memcmp(this_opt, "lcd:", 4)) {
 			default_lcd_on = simple_strtoul(this_opt+4, NULL, 0);
 			continue;
-		} else if (!strncmp(this_opt, "crt:", 4)) {
+		} else if (!memcmp(this_opt, "crt:", 4)) {
 			default_crt_on = simple_strtoul(this_opt+4, NULL, 0);
 			continue;
-		} else if (!strncmp(this_opt, "backlight:", 10)) {
+		} else if (!memcmp(this_opt, "backlight:", 10)) {
 			backlight = simple_strtoul(this_opt+10, NULL, 0);
 			continue;
 		}
 #ifdef CONFIG_MTRR
-		if(!strncmp(this_opt, "nomtrr", 6)) {
+		if(!memcmp(this_opt, "nomtrr", 6)) {
 			mtrr = 0;
 			continue;
 		}
 #endif
 #ifdef CONFIG_PPC_PMAC
 		/* vmode and cmode deprecated */
-		if (!strncmp(this_opt, "vmode:", 6)) {
+		if (!memcmp(this_opt, "vmode:", 6)) {
 			unsigned int vmode = simple_strtoul(this_opt+6, NULL, 0);
 			if (vmode > 0 && vmode <= VMODE_MAX)
 				default_vmode = vmode;
 			continue;
-		} else if (!strncmp(this_opt, "cmode:", 6)) {
+		} else if (!memcmp(this_opt, "cmode:", 6)) {
 			unsigned int cmode = simple_strtoul(this_opt+6, NULL, 0);
 			switch (cmode) {
 			case 0:
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index 5bf9123..6f58cad 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -3870,31 +3870,31 @@ static int __init atyfb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "noaccel", 7)) {
+		if (!memcmp(this_opt, "noaccel", 7)) {
 			noaccel = 1;
 #ifdef CONFIG_MTRR
-		} else if (!strncmp(this_opt, "nomtrr", 6)) {
+		} else if (!memcmp(this_opt, "nomtrr", 6)) {
 			nomtrr = 1;
 #endif
-		} else if (!strncmp(this_opt, "vram:", 5))
+		} else if (!memcmp(this_opt, "vram:", 5))
 			vram = simple_strtoul(this_opt + 5, NULL, 0);
-		else if (!strncmp(this_opt, "pll:", 4))
+		else if (!memcmp(this_opt, "pll:", 4))
 			pll = simple_strtoul(this_opt + 4, NULL, 0);
-		else if (!strncmp(this_opt, "mclk:", 5))
+		else if (!memcmp(this_opt, "mclk:", 5))
 			mclk = simple_strtoul(this_opt + 5, NULL, 0);
-		else if (!strncmp(this_opt, "xclk:", 5))
+		else if (!memcmp(this_opt, "xclk:", 5))
 			xclk = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "comp_sync:", 10))
+		else if (!memcmp(this_opt, "comp_sync:", 10))
 			comp_sync = simple_strtoul(this_opt+10, NULL, 0);
-		else if (!strncmp(this_opt, "backlight:", 10))
+		else if (!memcmp(this_opt, "backlight:", 10))
 			backlight = simple_strtoul(this_opt+10, NULL, 0);
 #ifdef CONFIG_PPC
-		else if (!strncmp(this_opt, "vmode:", 6)) {
+		else if (!memcmp(this_opt, "vmode:", 6)) {
 			unsigned int vmode =
 			    simple_strtoul(this_opt + 6, NULL, 0);
 			if (vmode > 0 && vmode <= VMODE_MAX)
 				default_vmode = vmode;
-		} else if (!strncmp(this_opt, "cmode:", 6)) {
+		} else if (!memcmp(this_opt, "cmode:", 6)) {
 			unsigned int cmode =
 			    simple_strtoul(this_opt + 6, NULL, 0);
 			switch (cmode) {
@@ -3919,7 +3919,7 @@ static int __init atyfb_setup(char *options)
 		 * We are already here because of mach64= so its redundant.
 		 */
 		else if (MACH_IS_ATARI
-			 && (!strncmp(this_opt, "Mach64:", 7))) {
+			 && (!memcmp(this_opt, "Mach64:", 7))) {
 			static unsigned char m64_num;
 			static char mach64_str[80];
 			strlcpy(mach64_str, this_opt + 7, sizeof(mach64_str));
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c
index 3c1e13e..8103c6c 100644
--- a/drivers/video/aty/radeon_base.c
+++ b/drivers/video/aty/radeon_base.c
@@ -2484,30 +2484,30 @@ static int __init radeonfb_setup (char *options)
 		if (!*this_opt)
 			continue;
 
-		if (!strncmp(this_opt, "noaccel", 7)) {
+		if (!memcmp(this_opt, "noaccel", 7)) {
 			noaccel = 1;
-		} else if (!strncmp(this_opt, "mirror", 6)) {
+		} else if (!memcmp(this_opt, "mirror", 6)) {
 			mirror = 1;
-		} else if (!strncmp(this_opt, "force_dfp", 9)) {
+		} else if (!memcmp(this_opt, "force_dfp", 9)) {
 			force_dfp = 1;
-		} else if (!strncmp(this_opt, "panel_yres:", 11)) {
+		} else if (!memcmp(this_opt, "panel_yres:", 11)) {
 			panel_yres = simple_strtoul((this_opt+11), NULL, 0);
-		} else if (!strncmp(this_opt, "backlight:", 10)) {
+		} else if (!memcmp(this_opt, "backlight:", 10)) {
 			backlight = simple_strtoul(this_opt+10, NULL, 0);
 #ifdef CONFIG_MTRR
-		} else if (!strncmp(this_opt, "nomtrr", 6)) {
+		} else if (!memcmp(this_opt, "nomtrr", 6)) {
 			nomtrr = 1;
 #endif
-		} else if (!strncmp(this_opt, "nomodeset", 9)) {
+		} else if (!memcmp(this_opt, "nomodeset", 9)) {
 			nomodeset = 1;
-		} else if (!strncmp(this_opt, "force_measure_pll", 17)) {
+		} else if (!memcmp(this_opt, "force_measure_pll", 17)) {
 			force_measure_pll = 1;
-		} else if (!strncmp(this_opt, "ignore_edid", 11)) {
+		} else if (!memcmp(this_opt, "ignore_edid", 11)) {
 			ignore_edid = 1;
 #if defined(CONFIG_PM) && defined(CONFIG_X86)
-	 	} else if (!strncmp(this_opt, "force_sleep", 11)) {
+	 	} else if (!memcmp(this_opt, "force_sleep", 11)) {
 			force_sleep = 1;
-		} else if (!strncmp(this_opt, "ignore_devlist", 14)) {
+		} else if (!memcmp(this_opt, "ignore_devlist", 14)) {
 			ignore_devlist = 1;
 #endif
 		} else
diff --git a/drivers/video/au1100fb.c b/drivers/video/au1100fb.c
index 34b2fc4..9ca1319 100644
--- a/drivers/video/au1100fb.c
+++ b/drivers/video/au1100fb.c
@@ -694,11 +694,11 @@ int au1100fb_setup(char *options)
 	if (options) {
 		while ((this_opt = strsep(&options,",")) != NULL) {
 			/* Panel option */
-			if (!strncmp(this_opt, "panel:", 6)) {
+			if (!memcmp(this_opt, "panel:", 6)) {
 				int i;
 				this_opt += 6;
 				for (i = 0; i < num_panels; i++) {
-					if (!strncmp(this_opt,
+					if (!memcmp(this_opt,
 					      	     known_lcd_panels[i].name,
 							strlen(this_opt))) {
 						panel_idx = i;
@@ -709,7 +709,7 @@ int au1100fb_setup(char *options)
  					print_warn("Panel %s not supported!", this_opt);
 				}
 			}
-			if (!strncmp(this_opt, "nocursor", 8)) {
+			if (!memcmp(this_opt, "nocursor", 8)) {
 				this_opt += 8;
 				nocursor = 1;
 				print_info("Cursor disabled");
diff --git a/drivers/video/au1200fb.c b/drivers/video/au1200fb.c
index 4ea187d..e8772a3 100644
--- a/drivers/video/au1200fb.c
+++ b/drivers/video/au1200fb.c
@@ -1792,7 +1792,7 @@ static void au1200fb_setup(void)
 		while ((this_opt = strsep(&options,",")) != NULL) {
 			/* Panel option - can be panel name,
 			 * "bs" for board-switch, or number/index */
-			if (!strncmp(this_opt, "panel:", 6)) {
+			if (!memcmp(this_opt, "panel:", 6)) {
 				int i;
 				long int li;
 				char *endptr;
@@ -1823,7 +1823,7 @@ static void au1200fb_setup(void)
 					panel_index = panel_idx;
 			}
 
-			else if (strncmp(this_opt, "nohwcursor", 10) == 0) {
+			else if (memcmp(this_opt, "nohwcursor", 10) == 0) {
 				nohwcursor = 1;
 			}
 
diff --git a/drivers/video/backlight/88pm860x_bl.c b/drivers/video/backlight/88pm860x_bl.c
index 38ffc3f..0df2f68 100644
--- a/drivers/video/backlight/88pm860x_bl.c
+++ b/drivers/video/backlight/88pm860x_bl.c
@@ -170,7 +170,7 @@ static int __check_device(struct pm860x_backlight_pdata *pdata, char *name)
 		if ((p->id != PM8606_ID_BACKLIGHT) || (p->flags < 0))
 			break;
 
-		if (!strncmp(name, pm860x_backlight_name[p->flags],
+		if (!memcmp(name, pm860x_backlight_name[p->flags],
 			MFD_NAME_SIZE)) {
 			ret = (int)p->flags;
 			break;
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index 6df7c54..778152d 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -2362,7 +2362,7 @@ static int __init cirrusfb_setup(char *options)
 
 		if (!strcmp(this_opt, "noaccel"))
 			noaccel = 1;
-		else if (!strncmp(this_opt, "mode:", 5))
+		else if (!memcmp(this_opt, "mode:", 5))
 			mode_option = this_opt + 5;
 		else
 			mode_option = this_opt;
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 7ccc967..85f615d 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -444,10 +444,10 @@ static int __init fb_console_setup(char *this_opt)
 		return 1;
 
 	while ((options = strsep(&this_opt, ",")) != NULL) {
-		if (!strncmp(options, "font:", 5))
+		if (!memcmp(options, "font:", 5))
 			strcpy(fontname, options + 5);
 		
-		if (!strncmp(options, "scrollback:", 11)) {
+		if (!memcmp(options, "scrollback:", 11)) {
 			options += 11;
 			if (*options) {
 				fbcon_softback_size = simple_strtoul(options, &options, 0);
@@ -462,7 +462,7 @@ static int __init fb_console_setup(char *this_opt)
 				return 1;
 		}
 		
-		if (!strncmp(options, "map:", 4)) {
+		if (!memcmp(options, "map:", 4)) {
 			options += 4;
 			if (*options) {
 				for (i = 0, j = 0; i < MAX_NR_CONSOLES; i++) {
@@ -478,7 +478,7 @@ static int __init fb_console_setup(char *this_opt)
 			return 1;
 		}
 
-		if (!strncmp(options, "vc:", 3)) {
+		if (!memcmp(options, "vc:", 3)) {
 			options += 3;
 			if (*options)
 				first_fb_vc = simple_strtoul(options, &options, 10) - 1;
@@ -489,7 +489,7 @@ static int __init fb_console_setup(char *this_opt)
 			fbcon_is_default = 0; 
 		}	
 
-		if (!strncmp(options, "rotate:", 7)) {
+		if (!memcmp(options, "rotate:", 7)) {
 			options += 7;
 			if (*options)
 				initial_rotation = simple_strtoul(options, &options, 0);
diff --git a/drivers/video/controlfb.c b/drivers/video/controlfb.c
index c225dcc..c2794a4 100644
--- a/drivers/video/controlfb.c
+++ b/drivers/video/controlfb.c
@@ -560,12 +560,12 @@ static void __init control_setup(char *options)
 		return;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "vmode:", 6)) {
+		if (!memcmp(this_opt, "vmode:", 6)) {
 			int vmode = simple_strtoul(this_opt+6, NULL, 0);
 			if (vmode > 0 && vmode <= VMODE_MAX &&
 			    control_mac_modes[vmode - 1].m[1] >= 0)
 				default_vmode = vmode;
-		} else if (!strncmp(this_opt, "cmode:", 6)) {
+		} else if (!memcmp(this_opt, "cmode:", 6)) {
 			int depth = simple_strtoul(this_opt+6, NULL, 0);
 			switch (depth) {
 			 case CMODE_8:
diff --git a/drivers/video/cyber2000fb.c b/drivers/video/cyber2000fb.c
index 0c1afd1..11bf395 100644
--- a/drivers/video/cyber2000fb.c
+++ b/drivers/video/cyber2000fb.c
@@ -1308,7 +1308,7 @@ static int cyber2000fb_setup(char *options)
 		if (!*opt)
 			continue;
 
-		if (strncmp(opt, "font:", 5) == 0) {
+		if (memcmp(opt, "font:", 5) == 0) {
 			static char default_font_storage[40];
 
 			strlcpy(default_font_storage, opt + 5,
diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c
index 70477c2..e446616 100644
--- a/drivers/video/efifb.c
+++ b/drivers/video/efifb.c
@@ -280,13 +280,13 @@ static int __init efifb_setup(char *options)
 				screen_info.lfb_height = dmi_list[i].height;
 			}
 		}
-		if (!strncmp(this_opt, "base:", 5))
+		if (!memcmp(this_opt, "base:", 5))
 			screen_info.lfb_base = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "stride:", 7))
+		else if (!memcmp(this_opt, "stride:", 7))
 			screen_info.lfb_linelength = simple_strtoul(this_opt+7, NULL, 0) * 4;
-		else if (!strncmp(this_opt, "height:", 7))
+		else if (!memcmp(this_opt, "height:", 7))
 			screen_info.lfb_height = simple_strtoul(this_opt+7, NULL, 0);
-		else if (!strncmp(this_opt, "width:", 6))
+		else if (!memcmp(this_opt, "width:", 6))
 			screen_info.lfb_width = simple_strtoul(this_opt+6, NULL, 0);
 	}
 	return 0;
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 0e6aa3d..5d249b9 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1773,7 +1773,7 @@ int fb_get_options(char *name, char **option)
 	int retval = 0;
 	int name_len = strlen(name), i;
 
-	if (name_len && ofonly && strncmp(name, "offb", 4))
+	if (name_len && ofonly && memcmp(name, "offb", 4))
 		retval = 1;
 
 	if (name_len && !retval) {
@@ -1783,12 +1783,12 @@ int fb_get_options(char *name, char **option)
 			if (!video_options[i][0])
 				continue;
 			opt = video_options[i];
-			if (!strncmp(name, opt, name_len) &&
+			if (!memcmp(name, opt, name_len) &&
 			    opt[name_len] == ':')
 				options = opt + name_len + 1;
 		}
 	}
-	if (options && !strncmp(options, "off", 3))
+	if (options && !memcmp(options, "off", 3))
 		retval = 1;
 
 	if (option)
@@ -1818,7 +1818,7 @@ static int __init video_setup(char *options)
 	if (!options || !*options)
  		global = 1;
 
- 	if (!global && !strncmp(options, "ofonly", 6)) {
+ 	if (!global && !memcmp(options, "ofonly", 6)) {
  		ofonly = 1;
  		global = 1;
  	}
diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c
index 563a98b..c24dae2 100644
--- a/drivers/video/fbmon.c
+++ b/drivers/video/fbmon.c
@@ -159,7 +159,7 @@ static int check_edid(unsigned char *edid)
 	model = block[2] + (block[3] << 8);
 
 	for (i = 0; i < ARRAY_SIZE(brokendb); i++) {
-		if (!strncmp(manufacturer, brokendb[i].manufacturer, 4) &&
+		if (!memcmp(manufacturer, brokendb[i].manufacturer, 4) &&
 			brokendb[i].model == model) {
 			fix = brokendb[i].fix;
 			break;
diff --git a/drivers/video/fbsysfs.c b/drivers/video/fbsysfs.c
index 0a08f13..a5c6e8a 100644
--- a/drivers/video/fbsysfs.c
+++ b/drivers/video/fbsysfs.c
@@ -140,7 +140,7 @@ static ssize_t store_mode(struct device *device, struct device_attribute *attr,
 		modelist = list_entry(pos, struct fb_modelist, list);
 		mode = &modelist->mode;
 		i = mode_string(mstr, 0, mode);
-		if (strncmp(mstr, buf, max(count, i)) == 0) {
+		if (memcmp(mstr, buf, max(count, i)) == 0) {
 
 			var = fb_info->var;
 			fb_videomode_to_var(&var, mode);
diff --git a/drivers/video/fm2fb.c b/drivers/video/fm2fb.c
index 1b0feb8..2bdb992 100644
--- a/drivers/video/fm2fb.c
+++ b/drivers/video/fm2fb.c
@@ -303,9 +303,9 @@ int __init fm2fb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "pal", 3))
+		if (!memcmp(this_opt, "pal", 3))
 			fm2fb_mode = FM2FB_MODE_PAL;
-		else if (!strncmp(this_opt, "ntsc", 4))
+		else if (!memcmp(this_opt, "ntsc", 4))
 			fm2fb_mode = FM2FB_MODE_NTSC;
 	}
 	return 0;
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
index 8bbbf08..b72cce9 100644
--- a/drivers/video/fsl-diu-fb.c
+++ b/drivers/video/fsl-diu-fb.c
@@ -1708,10 +1708,10 @@ static int __init fsl_diu_setup(char *options)
 	while ((opt = strsep(&options, ",")) != NULL) {
 		if (!*opt)
 			continue;
-		if (!strncmp(opt, "monitor=", 8)) {
+		if (!memcmp(opt, "monitor=", 8)) {
 			if (!strict_strtoul(opt + 8, 10, &val) && (val <= 2))
 				monitor_port = val;
-		} else if (!strncmp(opt, "bpp=", 4)) {
+		} else if (!memcmp(opt, "bpp=", 4)) {
 			if (!strict_strtoul(opt + 4, 10, &val))
 				default_bpp = val;
 		} else
diff --git a/drivers/video/gbefb.c b/drivers/video/gbefb.c
index 933899d..e516342 100644
--- a/drivers/video/gbefb.c
+++ b/drivers/video/gbefb.c
@@ -1106,18 +1106,18 @@ static int __devinit gbefb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "monitor:", 8)) {
-			if (!strncmp(this_opt + 8, "crt", 3)) {
+		if (!memcmp(this_opt, "monitor:", 8)) {
+			if (!memcmp(this_opt + 8, "crt", 3)) {
 				flat_panel_enabled = 0;
 				default_var = &default_var_CRT;
 				default_mode = &default_mode_CRT;
-			} else if (!strncmp(this_opt + 8, "1600sw", 6) ||
-				   !strncmp(this_opt + 8, "lcd", 3)) {
+			} else if (!memcmp(this_opt + 8, "1600sw", 6) ||
+				   !memcmp(this_opt + 8, "lcd", 3)) {
 				flat_panel_enabled = 1;
 				default_var = &default_var_LCD;
 				default_mode = &default_mode_LCD;
 			}
-		} else if (!strncmp(this_opt, "mem:", 4)) {
+		} else if (!memcmp(this_opt, "mem:", 4)) {
 			gbe_mem_size = memparse(this_opt + 4, &this_opt);
 			if (gbe_mem_size > CONFIG_FB_GBE_MEM * 1024 * 1024)
 				gbe_mem_size = CONFIG_FB_GBE_MEM * 1024 * 1024;
diff --git a/drivers/video/geode/gx1fb_core.c b/drivers/video/geode/gx1fb_core.c
index c6b554f..1e883a1 100644
--- a/drivers/video/geode/gx1fb_core.c
+++ b/drivers/video/geode/gx1fb_core.c
@@ -416,11 +416,11 @@ static void __init gx1fb_setup(char *options)
 		if (!*this_opt)
 			continue;
 
-		if (!strncmp(this_opt, "mode:", 5))
+		if (!memcmp(this_opt, "mode:", 5))
 			strlcpy(mode_option, this_opt + 5, sizeof(mode_option));
-		else if (!strncmp(this_opt, "crt:", 4))
+		else if (!memcmp(this_opt, "crt:", 4))
 			crt_option = !!simple_strtoul(this_opt + 4, NULL, 0);
-		else if (!strncmp(this_opt, "panel:", 6))
+		else if (!memcmp(this_opt, "panel:", 6))
 			strlcpy(panel_option, this_opt + 6, sizeof(panel_option));
 		else
 			strlcpy(mode_option, this_opt, sizeof(mode_option));
diff --git a/drivers/video/i810/i810_main.c b/drivers/video/i810/i810_main.c
index 5743ea2..9fcd012 100644
--- a/drivers/video/i810/i810_main.c
+++ b/drivers/video/i810/i810_main.c
@@ -1964,41 +1964,41 @@ static int __devinit i810fb_setup(char *options)
 		return 0;
 	
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "mtrr", 4))
+		if (!memcmp(this_opt, "mtrr", 4))
 			mtrr = 1;
-		else if (!strncmp(this_opt, "accel", 5))
+		else if (!memcmp(this_opt, "accel", 5))
 			accel = 1;
-		else if (!strncmp(this_opt, "extvga", 6))
+		else if (!memcmp(this_opt, "extvga", 6))
 			extvga = 1;
-		else if (!strncmp(this_opt, "sync", 4))
+		else if (!memcmp(this_opt, "sync", 4))
 			sync = 1;
-		else if (!strncmp(this_opt, "vram:", 5))
+		else if (!memcmp(this_opt, "vram:", 5))
 			vram = (simple_strtoul(this_opt+5, NULL, 0));
-		else if (!strncmp(this_opt, "voffset:", 8))
+		else if (!memcmp(this_opt, "voffset:", 8))
 			voffset = (simple_strtoul(this_opt+8, NULL, 0));
-		else if (!strncmp(this_opt, "xres:", 5))
+		else if (!memcmp(this_opt, "xres:", 5))
 			xres = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "yres:", 5))
+		else if (!memcmp(this_opt, "yres:", 5))
 			yres = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "vyres:", 6))
+		else if (!memcmp(this_opt, "vyres:", 6))
 			vyres = simple_strtoul(this_opt+6, NULL, 0);
-		else if (!strncmp(this_opt, "bpp:", 4))
+		else if (!memcmp(this_opt, "bpp:", 4))
 			bpp = simple_strtoul(this_opt+4, NULL, 0);
-		else if (!strncmp(this_opt, "hsync1:", 7)) {
+		else if (!memcmp(this_opt, "hsync1:", 7)) {
 			hsync1 = simple_strtoul(this_opt+7, &suffix, 0);
-			if (strncmp(suffix, "H", 1)) 
+			if (memcmp(suffix, "H", 1)) 
 				hsync1 *= 1000;
-		} else if (!strncmp(this_opt, "hsync2:", 7)) {
+		} else if (!memcmp(this_opt, "hsync2:", 7)) {
 			hsync2 = simple_strtoul(this_opt+7, &suffix, 0);
-			if (strncmp(suffix, "H", 1)) 
+			if (memcmp(suffix, "H", 1)) 
 				hsync2 *= 1000;
-		} else if (!strncmp(this_opt, "vsync1:", 7)) 
+		} else if (!memcmp(this_opt, "vsync1:", 7)) 
 			vsync1 = simple_strtoul(this_opt+7, NULL, 0);
-		else if (!strncmp(this_opt, "vsync2:", 7))
+		else if (!memcmp(this_opt, "vsync2:", 7))
 			vsync2 = simple_strtoul(this_opt+7, NULL, 0);
-		else if (!strncmp(this_opt, "dcolor", 6))
+		else if (!memcmp(this_opt, "dcolor", 6))
 			dcolor = 1;
-		else if (!strncmp(this_opt, "ddc3", 4))
+		else if (!memcmp(this_opt, "ddc3", 4))
 			ddc3 = 3;
 		else
 			mode_option = this_opt;
diff --git a/drivers/video/imsttfb.c b/drivers/video/imsttfb.c
index efb2c10..cfb5b99 100644
--- a/drivers/video/imsttfb.c
+++ b/drivers/video/imsttfb.c
@@ -1559,7 +1559,7 @@ imsttfb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "font:", 5)) {
+		if (!memcmp(this_opt, "font:", 5)) {
 			char *p;
 			int i;
 
@@ -1569,16 +1569,16 @@ imsttfb_setup(char *options)
 					break;
 			memcpy(fontname, this_opt + 5, i);
 			fontname[i] = 0;
-		} else if (!strncmp(this_opt, "inverse", 7)) {
+		} else if (!memcmp(this_opt, "inverse", 7)) {
 			inverse = 1;
 			fb_invert_cmaps();
 		}
 #if defined(CONFIG_PPC)
-		else if (!strncmp(this_opt, "vmode:", 6)) {
+		else if (!memcmp(this_opt, "vmode:", 6)) {
 			int vmode = simple_strtoul(this_opt+6, NULL, 0);
 			if (vmode > 0 && vmode <= VMODE_MAX)
 				init_vmode = vmode;
-		} else if (!strncmp(this_opt, "cmode:", 6)) {
+		} else if (!memcmp(this_opt, "cmode:", 6)) {
 			int cmode = simple_strtoul(this_opt+6, NULL, 0);
 			switch (cmode) {
 				case CMODE_8:
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c
index 5ba3999..328df04 100644
--- a/drivers/video/intelfb/intelfbdrv.c
+++ b/drivers/video/intelfb/intelfbdrv.c
@@ -270,7 +270,7 @@ MODULE_PARM_DESC(mode,
 		 "Initial video mode \"<xres>x<yres>[-<depth>][@<refresh>]\"");
 
 #ifndef MODULE
-#define OPT_EQUAL(opt, name) (!strncmp(opt, name, strlen(name)))
+#define OPT_EQUAL(opt, name) (!memcmp(opt, name, strlen(name)))
 #define OPT_INTVAL(opt, name) simple_strtoul(opt + strlen(name) + 1, NULL, 0)
 #define OPT_STRVAL(opt, name) (opt + strlen(name))
 
diff --git a/drivers/video/macmodes.c b/drivers/video/macmodes.c
index af86c08..29591c4 100644
--- a/drivers/video/macmodes.c
+++ b/drivers/video/macmodes.c
@@ -401,7 +401,7 @@ int mac_find_mode(struct fb_var_screeninfo *var, struct fb_info *info,
     const struct fb_videomode *db = NULL;
     unsigned int dbsize = 0;
 
-    if (mode_option && !strncmp(mode_option, "mac", 3)) {
+    if (mode_option && !memcmp(mode_option, "mac", 3)) {
 	mode_option += 3;
 	db = mac_modedb;
 	dbsize = ARRAY_SIZE(mac_modedb);
diff --git a/drivers/video/matrox/matroxfb_base.c b/drivers/video/matrox/matroxfb_base.c
index 052dd9f..576cc4b 100644
--- a/drivers/video/matrox/matroxfb_base.c
+++ b/drivers/video/matrox/matroxfb_base.c
@@ -2314,9 +2314,9 @@ static int __init matroxfb_setup(char *options) {
 
 		dprintk("matroxfb_setup: option %s\n", this_opt);
 
-		if (!strncmp(this_opt, "dev:", 4))
+		if (!memcmp(this_opt, "dev:", 4))
 			dev = simple_strtoul(this_opt+4, NULL, 0);
-		else if (!strncmp(this_opt, "depth:", 6)) {
+		else if (!memcmp(this_opt, "depth:", 6)) {
 			switch (simple_strtoul(this_opt+6, NULL, 0)) {
 				case 0: depth = RSText; break;
 				case 4: depth = RS4bpp; break;
@@ -2328,50 +2328,50 @@ static int __init matroxfb_setup(char *options) {
 				default:
 					printk(KERN_ERR "matroxfb: unsupported color depth\n");
 			}
-		} else if (!strncmp(this_opt, "xres:", 5))
+		} else if (!memcmp(this_opt, "xres:", 5))
 			xres = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "yres:", 5))
+		else if (!memcmp(this_opt, "yres:", 5))
 			yres = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "vslen:", 6))
+		else if (!memcmp(this_opt, "vslen:", 6))
 			vslen = simple_strtoul(this_opt+6, NULL, 0);
-		else if (!strncmp(this_opt, "hslen:", 6))
+		else if (!memcmp(this_opt, "hslen:", 6))
 			hslen = simple_strtoul(this_opt+6, NULL, 0);
-		else if (!strncmp(this_opt, "left:", 5))
+		else if (!memcmp(this_opt, "left:", 5))
 			left = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "right:", 6))
+		else if (!memcmp(this_opt, "right:", 6))
 			right = simple_strtoul(this_opt+6, NULL, 0);
-		else if (!strncmp(this_opt, "upper:", 6))
+		else if (!memcmp(this_opt, "upper:", 6))
 			upper = simple_strtoul(this_opt+6, NULL, 0);
-		else if (!strncmp(this_opt, "lower:", 6))
+		else if (!memcmp(this_opt, "lower:", 6))
 			lower = simple_strtoul(this_opt+6, NULL, 0);
-		else if (!strncmp(this_opt, "pixclock:", 9))
+		else if (!memcmp(this_opt, "pixclock:", 9))
 			pixclock = simple_strtoul(this_opt+9, NULL, 0);
-		else if (!strncmp(this_opt, "sync:", 5))
+		else if (!memcmp(this_opt, "sync:", 5))
 			sync = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "vesa:", 5))
+		else if (!memcmp(this_opt, "vesa:", 5))
 			vesa = simple_strtoul(this_opt+5, NULL, 0);
-		else if (!strncmp(this_opt, "maxclk:", 7))
+		else if (!memcmp(this_opt, "maxclk:", 7))
 			maxclk = simple_strtoul(this_opt+7, NULL, 0);
-		else if (!strncmp(this_opt, "fh:", 3))
+		else if (!memcmp(this_opt, "fh:", 3))
 			fh = simple_strtoul(this_opt+3, NULL, 0);
-		else if (!strncmp(this_opt, "fv:", 3))
+		else if (!memcmp(this_opt, "fv:", 3))
 			fv = simple_strtoul(this_opt+3, NULL, 0);
-		else if (!strncmp(this_opt, "mem:", 4))
+		else if (!memcmp(this_opt, "mem:", 4))
 			mem = simple_strtoul(this_opt+4, NULL, 0);
-		else if (!strncmp(this_opt, "mode:", 5))
+		else if (!memcmp(this_opt, "mode:", 5))
 			strlcpy(videomode, this_opt+5, sizeof(videomode));
-		else if (!strncmp(this_opt, "outputs:", 8))
+		else if (!memcmp(this_opt, "outputs:", 8))
 			strlcpy(outputs, this_opt+8, sizeof(outputs));
-		else if (!strncmp(this_opt, "dfp:", 4)) {
+		else if (!memcmp(this_opt, "dfp:", 4)) {
 			dfp_type = simple_strtoul(this_opt+4, NULL, 0);
 			dfp = 1;
 		}
 #ifdef CONFIG_PPC_PMAC
-		else if (!strncmp(this_opt, "vmode:", 6)) {
+		else if (!memcmp(this_opt, "vmode:", 6)) {
 			unsigned int vmode = simple_strtoul(this_opt+6, NULL, 0);
 			if (vmode > 0 && vmode <= VMODE_MAX)
 				default_vmode = vmode;
-		} else if (!strncmp(this_opt, "cmode:", 6)) {
+		} else if (!memcmp(this_opt, "cmode:", 6)) {
 			unsigned int cmode = simple_strtoul(this_opt+6, NULL, 0);
 			switch (cmode) {
 				case 0:
@@ -2397,12 +2397,12 @@ static int __init matroxfb_setup(char *options) {
 			sgram = 1;
 		else if (!strcmp(this_opt, "sdram"))
 			sgram = 0;
-		else if (!strncmp(this_opt, "memtype:", 8))
+		else if (!memcmp(this_opt, "memtype:", 8))
 			memtype = simple_strtoul(this_opt+8, NULL, 0);
 		else {
 			int value = 1;
 
-			if (!strncmp(this_opt, "no", 2)) {
+			if (!memcmp(this_opt, "no", 2)) {
 				value = 0;
 				this_opt += 2;
 			}
diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
index 0a4dbdc..0d22eb3 100644
--- a/drivers/video/modedb.c
+++ b/drivers/video/modedb.c
@@ -19,7 +19,7 @@
 #undef DEBUG
 
 #define name_matches(v, s, l) \
-    ((v).name && !strncmp((s), (v).name, (l)) && strlen((v).name) == (l))
+    ((v).name && !memcmp((s), (v).name, (l)) && strlen((v).name) == (l))
 #define res_matches(v, x, y) \
     ((v).xres == (x) && (v).yres == (y))
 
diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c
index ca0f6be..fff0515 100644
--- a/drivers/video/mx3fb.c
+++ b/drivers/video/mx3fb.c
@@ -1561,7 +1561,7 @@ static int __init mx3fb_setup(void)
 	while ((opt = strsep(&options, ",")) != NULL) {
 		if (!*opt)
 			continue;
-		if (!strncmp(opt, "bpp=", 4))
+		if (!memcmp(opt, "bpp=", 4))
 			default_bpp = simple_strtoul(opt + 4, NULL, 0);
 		else
 			fb_mode = opt;
diff --git a/drivers/video/neofb.c b/drivers/video/neofb.c
index 588527a..af9c6c6 100644
--- a/drivers/video/neofb.c
+++ b/drivers/video/neofb.c
@@ -2214,15 +2214,15 @@ static int __init neofb_setup(char *options)
 		if (!*this_opt)
 			continue;
 
-		if (!strncmp(this_opt, "internal", 8))
+		if (!memcmp(this_opt, "internal", 8))
 			internal = 1;
-		else if (!strncmp(this_opt, "external", 8))
+		else if (!memcmp(this_opt, "external", 8))
 			external = 1;
-		else if (!strncmp(this_opt, "nostretch", 9))
+		else if (!memcmp(this_opt, "nostretch", 9))
 			nostretch = 1;
-		else if (!strncmp(this_opt, "nopciburst", 10))
+		else if (!memcmp(this_opt, "nopciburst", 10))
 			nopciburst = 1;
-		else if (!strncmp(this_opt, "libretto", 8))
+		else if (!memcmp(this_opt, "libretto", 8))
 			libretto = 1;
 		else
 			mode_option = this_opt;
diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c
index efe10ff..60068b1 100644
--- a/drivers/video/nvidia/nvidia.c
+++ b/drivers/video/nvidia/nvidia.c
@@ -1482,7 +1482,7 @@ static int __devinit nvidiafb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "forceCRTC", 9)) {
+		if (!memcmp(this_opt, "forceCRTC", 9)) {
 			char *p;
 
 			p = this_opt + 9;
@@ -1491,29 +1491,29 @@ static int __devinit nvidiafb_setup(char *options)
 			forceCRTC = *p - '0';
 			if (forceCRTC < 0 || forceCRTC > 1)
 				forceCRTC = -1;
-		} else if (!strncmp(this_opt, "flatpanel", 9)) {
+		} else if (!memcmp(this_opt, "flatpanel", 9)) {
 			flatpanel = 1;
-		} else if (!strncmp(this_opt, "hwcur", 5)) {
+		} else if (!memcmp(this_opt, "hwcur", 5)) {
 			hwcur = 1;
-		} else if (!strncmp(this_opt, "noaccel", 6)) {
+		} else if (!memcmp(this_opt, "noaccel", 6)) {
 			noaccel = 1;
-		} else if (!strncmp(this_opt, "noscale", 7)) {
+		} else if (!memcmp(this_opt, "noscale", 7)) {
 			noscale = 1;
-		} else if (!strncmp(this_opt, "reverse_i2c", 11)) {
+		} else if (!memcmp(this_opt, "reverse_i2c", 11)) {
 			reverse_i2c = 1;
-		} else if (!strncmp(this_opt, "paneltweak:", 11)) {
+		} else if (!memcmp(this_opt, "paneltweak:", 11)) {
 			paneltweak = simple_strtoul(this_opt+11, NULL, 0);
-		} else if (!strncmp(this_opt, "vram:", 5)) {
+		} else if (!memcmp(this_opt, "vram:", 5)) {
 			vram = simple_strtoul(this_opt+5, NULL, 0);
-		} else if (!strncmp(this_opt, "backlight:", 10)) {
+		} else if (!memcmp(this_opt, "backlight:", 10)) {
 			backlight = simple_strtoul(this_opt+10, NULL, 0);
 #ifdef CONFIG_MTRR
-		} else if (!strncmp(this_opt, "nomtrr", 6)) {
+		} else if (!memcmp(this_opt, "nomtrr", 6)) {
 			nomtrr = 1;
 #endif
-		} else if (!strncmp(this_opt, "fpdither:", 9)) {
+		} else if (!memcmp(this_opt, "fpdither:", 9)) {
 			fpdither = simple_strtol(this_opt+9, NULL, 0);
-		} else if (!strncmp(this_opt, "bpp:", 4)) {
+		} else if (!memcmp(this_opt, "bpp:", 4)) {
 			bpp = simple_strtoul(this_opt+4, NULL, 0);
 		} else
 			mode_option = this_opt;
diff --git a/drivers/video/offb.c b/drivers/video/offb.c
index cb163a5..3277ad8 100644
--- a/drivers/video/offb.c
+++ b/drivers/video/offb.c
@@ -328,24 +328,24 @@ static void offb_init_palette_hacks(struct fb_info *info, struct device_node *dp
 {
 	struct offb_par *par = (struct offb_par *) info->par;
 
-	if (dp && !strncmp(name, "ATY,Rage128", 11)) {
+	if (dp && !memcmp(name, "ATY,Rage128", 11)) {
 		par->cmap_adr = offb_map_reg(dp, 2, 0, 0x1fff);
 		if (par->cmap_adr)
 			par->cmap_type = cmap_r128;
-	} else if (dp && (!strncmp(name, "ATY,RageM3pA", 12)
-			  || !strncmp(name, "ATY,RageM3p12A", 14))) {
+	} else if (dp && (!memcmp(name, "ATY,RageM3pA", 12)
+			  || !memcmp(name, "ATY,RageM3p12A", 14))) {
 		par->cmap_adr = offb_map_reg(dp, 2, 0, 0x1fff);
 		if (par->cmap_adr)
 			par->cmap_type = cmap_M3A;
-	} else if (dp && !strncmp(name, "ATY,RageM3pB", 12)) {
+	} else if (dp && !memcmp(name, "ATY,RageM3pB", 12)) {
 		par->cmap_adr = offb_map_reg(dp, 2, 0, 0x1fff);
 		if (par->cmap_adr)
 			par->cmap_type = cmap_M3B;
-	} else if (dp && !strncmp(name, "ATY,Rage6", 9)) {
+	} else if (dp && !memcmp(name, "ATY,Rage6", 9)) {
 		par->cmap_adr = offb_map_reg(dp, 1, 0, 0x1fff);
 		if (par->cmap_adr)
 			par->cmap_type = cmap_radeon;
-	} else if (!strncmp(name, "ATY,", 4)) {
+	} else if (!memcmp(name, "ATY,", 4)) {
 		unsigned long base = address & 0xff000000UL;
 		par->cmap_adr =
 			ioremap(base + 0x7ff000, 0x1000) + 0xcc0;
@@ -356,7 +356,7 @@ static void offb_init_palette_hacks(struct fb_info *info, struct device_node *dp
 		par->cmap_adr = offb_map_reg(dp, 0, 0x6000, 0x1000);
 		if (par->cmap_adr)
 			par->cmap_type = cmap_gxt2000;
-	} else if (dp && !strncmp(name, "vga,Display-", 12)) {
+	} else if (dp && !memcmp(name, "vga,Display-", 12)) {
 		/* Look for AVIVO initialized by SLOF */
 		struct device_node *pciparent = of_get_parent(dp);
 		const u32 *vid, *did;
diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c
index e264efd..44056ef 100644
--- a/drivers/video/omap/omapfb_main.c
+++ b/drivers/video/omap/omapfb_main.c
@@ -1918,9 +1918,9 @@ static int __init omapfb_setup(char *options)
 		return 0;
 
 	while (!r && (this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "accel", 5))
+		if (!memcmp(this_opt, "accel", 5))
 			def_accel = 1;
-		else if (!strncmp(this_opt, "vram:", 5)) {
+		else if (!memcmp(this_opt, "vram:", 5)) {
 			char *suffix;
 			unsigned long vram;
 			vram = (simple_strtoul(this_opt + 5, &suffix, 0));
@@ -1942,15 +1942,15 @@ static int __init omapfb_setup(char *options)
 			}
 			def_vram[def_vram_cnt++] = vram;
 		}
-		else if (!strncmp(this_opt, "vxres:", 6))
+		else if (!memcmp(this_opt, "vxres:", 6))
 			def_vxres = simple_strtoul(this_opt + 6, NULL, 0);
-		else if (!strncmp(this_opt, "vyres:", 6))
+		else if (!memcmp(this_opt, "vyres:", 6))
 			def_vyres = simple_strtoul(this_opt + 6, NULL, 0);
-		else if (!strncmp(this_opt, "rotate:", 7))
+		else if (!memcmp(this_opt, "rotate:", 7))
 			def_rotate = (simple_strtoul(this_opt + 7, NULL, 0));
-		else if (!strncmp(this_opt, "mirror:", 7))
+		else if (!memcmp(this_opt, "mirror:", 7))
 			def_mirror = (simple_strtoul(this_opt + 7, NULL, 0));
-		else if (!strncmp(this_opt, "manual_update", 13))
+		else if (!memcmp(this_opt, "manual_update", 13))
 			manual_update = 1;
 		else {
 			pr_debug("omapfb: invalid option\n");
diff --git a/drivers/video/omap2/displays/panel-acx565akm.c b/drivers/video/omap2/displays/panel-acx565akm.c
index e773106..daa0cbd 100644
--- a/drivers/video/omap2/displays/panel-acx565akm.c
+++ b/drivers/video/omap2/displays/panel-acx565akm.c
@@ -417,7 +417,7 @@ static ssize_t store_cabc_mode(struct device *dev,
 		if (count != cmp_len)
 			continue;
 
-		if (strncmp(buf, mode_str, cmp_len) == 0)
+		if (memcmp(buf, mode_str, cmp_len) == 0)
 			break;
 	}
 
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
index 22dd7a4..c3d7da4 100644
--- a/drivers/video/omap2/dss/display.c
+++ b/drivers/video/omap2/dss/display.c
@@ -161,10 +161,10 @@ static ssize_t display_timings_store(struct device *dev,
 
 	found = 0;
 #ifdef CONFIG_OMAP2_DSS_VENC
-	if (strncmp("pal", buf, 3) == 0) {
+	if (memcmp("pal", buf, 3) == 0) {
 		t = omap_dss_pal_timings;
 		found = 1;
-	} else if (strncmp("ntsc", buf, 4) == 0) {
+	} else if (memcmp("ntsc", buf, 4) == 0) {
 		t = omap_dss_ntsc_timings;
 		found = 1;
 	}
diff --git a/drivers/video/platinumfb.c b/drivers/video/platinumfb.c
index a50e197..1e57480 100644
--- a/drivers/video/platinumfb.c
+++ b/drivers/video/platinumfb.c
@@ -500,11 +500,11 @@ static int __init platinumfb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "vmode:", 6)) {
+		if (!memcmp(this_opt, "vmode:", 6)) {
 	    		int vmode = simple_strtoul(this_opt+6, NULL, 0);
 			if (vmode > 0 && vmode <= VMODE_MAX)
 				default_vmode = vmode;
-		} else if (!strncmp(this_opt, "cmode:", 6)) {
+		} else if (!memcmp(this_opt, "cmode:", 6)) {
 			int depth = simple_strtoul(this_opt+6, NULL, 0);
 			switch (depth) {
 			 case 0:
diff --git a/drivers/video/pm2fb.c b/drivers/video/pm2fb.c
index 27f93aa..d41e63d 100644
--- a/drivers/video/pm2fb.c
+++ b/drivers/video/pm2fb.c
@@ -1791,13 +1791,13 @@ static int __init pm2fb_setup(char *options)
 			lowhsync = 1;
 		else if (!strcmp(this_opt, "lowvsync"))
 			lowvsync = 1;
-		else if (!strncmp(this_opt, "hwcursor=", 9))
+		else if (!memcmp(this_opt, "hwcursor=", 9))
 			hwcursor = simple_strtoul(this_opt + 9, NULL, 0);
 #ifdef CONFIG_MTRR
-		else if (!strncmp(this_opt, "nomtrr", 6))
+		else if (!memcmp(this_opt, "nomtrr", 6))
 			nomtrr = 1;
 #endif
-		else if (!strncmp(this_opt, "noaccel", 7))
+		else if (!memcmp(this_opt, "noaccel", 7))
 			noaccel = 1;
 		else
 			mode_option = this_opt;
diff --git a/drivers/video/pm3fb.c b/drivers/video/pm3fb.c
index 6666f45..350b1e0 100644
--- a/drivers/video/pm3fb.c
+++ b/drivers/video/pm3fb.c
@@ -1532,12 +1532,12 @@ static int __init pm3fb_setup(char *options)
 	while ((this_opt = strsep(&options, ",")) != NULL) {
 		if (!*this_opt)
 			continue;
-		else if (!strncmp(this_opt, "noaccel", 7))
+		else if (!memcmp(this_opt, "noaccel", 7))
 			noaccel = 1;
-		else if (!strncmp(this_opt, "hwcursor=", 9))
+		else if (!memcmp(this_opt, "hwcursor=", 9))
 			hwcursor = simple_strtoul(this_opt + 9, NULL, 0);
 #ifdef CONFIG_MTRR
-		else if (!strncmp(this_opt, "nomtrr", 6))
+		else if (!memcmp(this_opt, "nomtrr", 6))
 			nomtrr = 1;
 #endif
 		else
diff --git a/drivers/video/ps3fb.c b/drivers/video/ps3fb.c
index 9c0144e..4710c14 100644
--- a/drivers/video/ps3fb.c
+++ b/drivers/video/ps3fb.c
@@ -1277,7 +1277,7 @@ static int __init ps3fb_setup(void)
 			break;
 		if (!*this_opt)
 			continue;
-		if (!strncmp(this_opt, "mode:", 5))
+		if (!memcmp(this_opt, "mode:", 5))
 			ps3fb_mode = simple_strtoul(this_opt + 5, NULL, 0);
 		else
 			mode_option = this_opt;
diff --git a/drivers/video/pvr2fb.c b/drivers/video/pvr2fb.c
index f997510..14cd883 100644
--- a/drivers/video/pvr2fb.c
+++ b/drivers/video/pvr2fb.c
@@ -1035,13 +1035,13 @@ static int __init pvr2fb_setup(char *options)
 			continue;
 		if (!strcmp(this_opt, "inverse")) {
 			fb_invert_cmaps();
-		} else if (!strncmp(this_opt, "cable:", 6)) {
+		} else if (!memcmp(this_opt, "cable:", 6)) {
 			strcpy(cable_arg, this_opt + 6);
-		} else if (!strncmp(this_opt, "output:", 7)) {
+		} else if (!memcmp(this_opt, "output:", 7)) {
 			strcpy(output_arg, this_opt + 7);
-		} else if (!strncmp(this_opt, "nopan", 5)) {
+		} else if (!memcmp(this_opt, "nopan", 5)) {
 			nopan = 1;
-		} else if (!strncmp(this_opt, "nowrap", 6)) {
+		} else if (!memcmp(this_opt, "nowrap", 6)) {
 			nowrap = 1;
 		} else {
 			mode_option = this_opt;
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 825b665..f7fc3db 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -1882,32 +1882,32 @@ static int __devinit parse_opt(struct device *dev, char *this_opt)
 
 	s[0] = '\0';
 
-	if (!strncmp(this_opt, "vmem:", 5)) {
+	if (!memcmp(this_opt, "vmem:", 5)) {
 		video_mem_size = memparse(this_opt + 5, NULL);
-	} else if (!strncmp(this_opt, "mode:", 5)) {
+	} else if (!memcmp(this_opt, "mode:", 5)) {
 		return parse_opt_mode(dev, this_opt);
-	} else if (!strncmp(this_opt, "pixclock:", 9)) {
+	} else if (!memcmp(this_opt, "pixclock:", 9)) {
 		mode->pixclock = simple_strtoul(this_opt+9, NULL, 0);
 		sprintf(s, "pixclock: %ld\n", mode->pixclock);
-	} else if (!strncmp(this_opt, "left:", 5)) {
+	} else if (!memcmp(this_opt, "left:", 5)) {
 		mode->left_margin = simple_strtoul(this_opt+5, NULL, 0);
 		sprintf(s, "left: %u\n", mode->left_margin);
-	} else if (!strncmp(this_opt, "right:", 6)) {
+	} else if (!memcmp(this_opt, "right:", 6)) {
 		mode->right_margin = simple_strtoul(this_opt+6, NULL, 0);
 		sprintf(s, "right: %u\n", mode->right_margin);
-	} else if (!strncmp(this_opt, "upper:", 6)) {
+	} else if (!memcmp(this_opt, "upper:", 6)) {
 		mode->upper_margin = simple_strtoul(this_opt+6, NULL, 0);
 		sprintf(s, "upper: %u\n", mode->upper_margin);
-	} else if (!strncmp(this_opt, "lower:", 6)) {
+	} else if (!memcmp(this_opt, "lower:", 6)) {
 		mode->lower_margin = simple_strtoul(this_opt+6, NULL, 0);
 		sprintf(s, "lower: %u\n", mode->lower_margin);
-	} else if (!strncmp(this_opt, "hsynclen:", 9)) {
+	} else if (!memcmp(this_opt, "hsynclen:", 9)) {
 		mode->hsync_len = simple_strtoul(this_opt+9, NULL, 0);
 		sprintf(s, "hsynclen: %u\n", mode->hsync_len);
-	} else if (!strncmp(this_opt, "vsynclen:", 9)) {
+	} else if (!memcmp(this_opt, "vsynclen:", 9)) {
 		mode->vsync_len = simple_strtoul(this_opt+9, NULL, 0);
 		sprintf(s, "vsynclen: %u\n", mode->vsync_len);
-	} else if (!strncmp(this_opt, "hsync:", 6)) {
+	} else if (!memcmp(this_opt, "hsync:", 6)) {
 		if (simple_strtoul(this_opt+6, NULL, 0) == 0) {
 			sprintf(s, "hsync: Active Low\n");
 			mode->sync &= ~FB_SYNC_HOR_HIGH_ACT;
@@ -1915,7 +1915,7 @@ static int __devinit parse_opt(struct device *dev, char *this_opt)
 			sprintf(s, "hsync: Active High\n");
 			mode->sync |= FB_SYNC_HOR_HIGH_ACT;
 		}
-	} else if (!strncmp(this_opt, "vsync:", 6)) {
+	} else if (!memcmp(this_opt, "vsync:", 6)) {
 		if (simple_strtoul(this_opt+6, NULL, 0) == 0) {
 			sprintf(s, "vsync: Active Low\n");
 			mode->sync &= ~FB_SYNC_VERT_HIGH_ACT;
@@ -1923,7 +1923,7 @@ static int __devinit parse_opt(struct device *dev, char *this_opt)
 			sprintf(s, "vsync: Active High\n");
 			mode->sync |= FB_SYNC_VERT_HIGH_ACT;
 		}
-	} else if (!strncmp(this_opt, "dpc:", 4)) {
+	} else if (!memcmp(this_opt, "dpc:", 4)) {
 		if (simple_strtoul(this_opt+4, NULL, 0) == 0) {
 			sprintf(s, "double pixel clock: false\n");
 			inf->lccr3 &= ~LCCR3_DPC;
@@ -1931,7 +1931,7 @@ static int __devinit parse_opt(struct device *dev, char *this_opt)
 			sprintf(s, "double pixel clock: true\n");
 			inf->lccr3 |= LCCR3_DPC;
 		}
-	} else if (!strncmp(this_opt, "outputen:", 9)) {
+	} else if (!memcmp(this_opt, "outputen:", 9)) {
 		if (simple_strtoul(this_opt+9, NULL, 0) == 0) {
 			sprintf(s, "output enable: active low\n");
 			inf->lccr3 = (inf->lccr3 & ~LCCR3_OEP) | LCCR3_OutEnL;
@@ -1939,7 +1939,7 @@ static int __devinit parse_opt(struct device *dev, char *this_opt)
 			sprintf(s, "output enable: active high\n");
 			inf->lccr3 = (inf->lccr3 & ~LCCR3_OEP) | LCCR3_OutEnH;
 		}
-	} else if (!strncmp(this_opt, "pixclockpol:", 12)) {
+	} else if (!memcmp(this_opt, "pixclockpol:", 12)) {
 		if (simple_strtoul(this_opt+12, NULL, 0) == 0) {
 			sprintf(s, "pixel clock polarity: falling edge\n");
 			inf->lccr3 = (inf->lccr3 & ~LCCR3_PCP) | LCCR3_PixFlEdg;
@@ -1947,21 +1947,21 @@ static int __devinit parse_opt(struct device *dev, char *this_opt)
 			sprintf(s, "pixel clock polarity: rising edge\n");
 			inf->lccr3 = (inf->lccr3 & ~LCCR3_PCP) | LCCR3_PixRsEdg;
 		}
-	} else if (!strncmp(this_opt, "color", 5)) {
+	} else if (!memcmp(this_opt, "color", 5)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_CMS) | LCCR0_Color;
-	} else if (!strncmp(this_opt, "mono", 4)) {
+	} else if (!memcmp(this_opt, "mono", 4)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_CMS) | LCCR0_Mono;
-	} else if (!strncmp(this_opt, "active", 6)) {
+	} else if (!memcmp(this_opt, "active", 6)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_PAS) | LCCR0_Act;
-	} else if (!strncmp(this_opt, "passive", 7)) {
+	} else if (!memcmp(this_opt, "passive", 7)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_PAS) | LCCR0_Pas;
-	} else if (!strncmp(this_opt, "single", 6)) {
+	} else if (!memcmp(this_opt, "single", 6)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_SDS) | LCCR0_Sngl;
-	} else if (!strncmp(this_opt, "dual", 4)) {
+	} else if (!memcmp(this_opt, "dual", 4)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_SDS) | LCCR0_Dual;
-	} else if (!strncmp(this_opt, "4pix", 4)) {
+	} else if (!memcmp(this_opt, "4pix", 4)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_DPD) | LCCR0_4PixMono;
-	} else if (!strncmp(this_opt, "8pix", 4)) {
+	} else if (!memcmp(this_opt, "8pix", 4)) {
 		inf->lccr0 = (inf->lccr0 & ~LCCR0_DPD) | LCCR0_8PixMono;
 	} else {
 		dev_err(dev, "unknown option: %s\n", this_opt);
diff --git a/drivers/video/riva/fbdev.c b/drivers/video/riva/fbdev.c
index 618f36b..6a68dd1 100644
--- a/drivers/video/riva/fbdev.c
+++ b/drivers/video/riva/fbdev.c
@@ -1762,7 +1762,7 @@ static int __devinit riva_get_EDID_OF(struct fb_info *info, struct pci_dev *pd)
 		disptype = of_get_property(dp, "display-type", NULL);
 		if (disptype == NULL)
 			continue;
-		if (strncmp(disptype, "LCD", 3) != 0)
+		if (memcmp(disptype, "LCD", 3) != 0)
 			continue;
 		for (i = 0; propnames[i] != NULL; ++i) {
 			pedid = of_get_property(dp, propnames[i], NULL);
@@ -2154,7 +2154,7 @@ static int __devinit rivafb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "forceCRTC", 9)) {
+		if (!memcmp(this_opt, "forceCRTC", 9)) {
 			char *p;
 			
 			p = this_opt + 9;
@@ -2162,17 +2162,17 @@ static int __devinit rivafb_setup(char *options)
 			forceCRTC = *p - '0';
 			if (forceCRTC < 0 || forceCRTC > 1) 
 				forceCRTC = -1;
-		} else if (!strncmp(this_opt, "flatpanel", 9)) {
+		} else if (!memcmp(this_opt, "flatpanel", 9)) {
 			flatpanel = 1;
-		} else if (!strncmp(this_opt, "backlight:", 10)) {
+		} else if (!memcmp(this_opt, "backlight:", 10)) {
 			backlight = simple_strtoul(this_opt+10, NULL, 0);
 #ifdef CONFIG_MTRR
-		} else if (!strncmp(this_opt, "nomtrr", 6)) {
+		} else if (!memcmp(this_opt, "nomtrr", 6)) {
 			nomtrr = 1;
 #endif
-		} else if (!strncmp(this_opt, "strictmode", 10)) {
+		} else if (!memcmp(this_opt, "strictmode", 10)) {
 			strictmode = 1;
-		} else if (!strncmp(this_opt, "noaccel", 7)) {
+		} else if (!memcmp(this_opt, "noaccel", 7)) {
 			noaccel = 1;
 		} else
 			mode_option = this_opt;
diff --git a/drivers/video/s3fb.c b/drivers/video/s3fb.c
index dce8c97..95dded1 100644
--- a/drivers/video/s3fb.c
+++ b/drivers/video/s3fb.c
@@ -1223,10 +1223,10 @@ static int  __init s3fb_setup(char *options)
 		if (!*opt)
 			continue;
 #ifdef CONFIG_MTRR
-		else if (!strncmp(opt, "mtrr:", 5))
+		else if (!memcmp(opt, "mtrr:", 5))
 			mtrr = simple_strtoul(opt + 5, NULL, 0);
 #endif
-		else if (!strncmp(opt, "fasttext:", 9))
+		else if (!memcmp(opt, "fasttext:", 9))
 			fasttext = simple_strtoul(opt + 9, NULL, 0);
 		else
 			mode_option = opt;
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c
index e8b76d6..5a6a754 100644
--- a/drivers/video/sa1100fb.c
+++ b/drivers/video/sa1100fb.c
@@ -1527,20 +1527,20 @@ int __init sa1100fb_setup(char *options)
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
 
-		if (!strncmp(this_opt, "bpp:", 4))
+		if (!memcmp(this_opt, "bpp:", 4))
 			current_par.max_bpp =
 			    simple_strtoul(this_opt + 4, NULL, 0);
 
-		if (!strncmp(this_opt, "lccr0:", 6))
+		if (!memcmp(this_opt, "lccr0:", 6))
 			lcd_shadow.lccr0 =
 			    simple_strtoul(this_opt + 6, NULL, 0);
-		if (!strncmp(this_opt, "lccr1:", 6)) {
+		if (!memcmp(this_opt, "lccr1:", 6)) {
 			lcd_shadow.lccr1 =
 			    simple_strtoul(this_opt + 6, NULL, 0);
 			current_par.max_xres =
 			    (lcd_shadow.lccr1 & 0x3ff) + 16;
 		}
-		if (!strncmp(this_opt, "lccr2:", 6)) {
+		if (!memcmp(this_opt, "lccr2:", 6)) {
 			lcd_shadow.lccr2 =
 			    simple_strtoul(this_opt + 6, NULL, 0);
 			current_par.max_yres =
@@ -1550,7 +1550,7 @@ int __init sa1100fb_setup(char *options)
 						   1) *
 			    2 : ((lcd_shadow.lccr2 & 0x3ff) + 1);
 		}
-		if (!strncmp(this_opt, "lccr3:", 6))
+		if (!memcmp(this_opt, "lccr3:", 6))
 			lcd_shadow.lccr3 =
 			    simple_strtoul(this_opt + 6, NULL, 0);
 	}
diff --git a/drivers/video/sgivwfb.c b/drivers/video/sgivwfb.c
index 53455f2..463ca75 100644
--- a/drivers/video/sgivwfb.c
+++ b/drivers/video/sgivwfb.c
@@ -732,10 +732,10 @@ int __init sgivwfb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "monitor:", 8)) {
-			if (!strncmp(this_opt + 8, "crt", 3))
+		if (!memcmp(this_opt, "monitor:", 8)) {
+			if (!memcmp(this_opt + 8, "crt", 3))
 				flatpanel_id = -1;
-			else if (!strncmp(this_opt + 8, "1600sw", 6))
+			else if (!memcmp(this_opt + 8, "1600sw", 6))
 				flatpanel_id = FLATPANEL_SGI_1600SW;
 		}
 	}
diff --git a/drivers/video/sis/sis_main.c b/drivers/video/sis/sis_main.c
index 7e3370f..31c1334 100644
--- a/drivers/video/sis/sis_main.c
+++ b/drivers/video/sis/sis_main.c
@@ -366,11 +366,11 @@ sisfb_detect_custom_timing(struct sis_video_info *ivideo)
 		if( (mycustomttable[i].chipID == ivideo->chip)			&&
 		    ((!strlen(mycustomttable[i].biosversion)) ||
 		     (ivideo->SiS_Pr.UseROM &&
-		      (!strncmp(mycustomttable[i].biosversion, biosver,
+		      (!memcmp(mycustomttable[i].biosversion, biosver,
 				strlen(mycustomttable[i].biosversion)))))	&&
 		    ((!strlen(mycustomttable[i].biosdate)) ||
 		     (ivideo->SiS_Pr.UseROM &&
-		      (!strncmp(mycustomttable[i].biosdate, biosdate,
+		      (!memcmp(mycustomttable[i].biosdate, biosdate,
 				strlen(mycustomttable[i].biosdate)))))		&&
 		    ((!mycustomttable[i].bioschksum) ||
 		     (ivideo->SiS_Pr.UseROM &&
diff --git a/drivers/video/sstfb.c b/drivers/video/sstfb.c
index dee64c3..a50703d 100644
--- a/drivers/video/sstfb.c
+++ b/drivers/video/sstfb.c
@@ -1295,9 +1295,9 @@ static int  __devinit sstfb_setup(char *options)
 		        slowpci = 0;
 		else if (!strcmp(this_opt, "slowpci"))
 		        slowpci = 1;
-		else if (!strncmp(this_opt, "mem:",4))
+		else if (!memcmp(this_opt, "mem:",4))
 			mem = simple_strtoul (this_opt+4, NULL, 0);
-		else if (!strncmp(this_opt, "gfxclk:",7))
+		else if (!memcmp(this_opt, "gfxclk:",7))
 			gfxclk = simple_strtoul (this_opt+7, NULL, 0);
 		else
 			mode_option = this_opt;
diff --git a/drivers/video/stifb.c b/drivers/video/stifb.c
index 876648e..77e6d5c 100644
--- a/drivers/video/stifb.c
+++ b/drivers/video/stifb.c
@@ -1393,12 +1393,12 @@ stifb_setup(char *options)
 	if (!options || !*options)
 		return 1;
 	
-	if (strncmp(options, "off", 3) == 0) {
+	if (memcmp(options, "off", 3) == 0) {
 		stifb_disabled = 1;
 		options += 3;
 	}
 
-	if (strncmp(options, "bpp", 3) == 0) {
+	if (memcmp(options, "bpp", 3) == 0) {
 		options += 3;
 		for (i = 0; i < MAX_STI_ROMS; i++) {
 			if (*options++ != ':')
diff --git a/drivers/video/tdfxfb.c b/drivers/video/tdfxfb.c
index 3ee5e63..4262889 100644
--- a/drivers/video/tdfxfb.c
+++ b/drivers/video/tdfxfb.c
@@ -1604,10 +1604,10 @@ static void __init tdfxfb_setup(char *options)
 			nopan = 1;
 		} else if (!strcmp(this_opt, "nowrap")) {
 			nowrap = 1;
-		} else if (!strncmp(this_opt, "hwcursor=", 9)) {
+		} else if (!memcmp(this_opt, "hwcursor=", 9)) {
 			hwcursor = simple_strtoul(this_opt + 9, NULL, 0);
 #ifdef CONFIG_MTRR
-		} else if (!strncmp(this_opt, "nomtrr", 6)) {
+		} else if (!memcmp(this_opt, "nomtrr", 6)) {
 			nomtrr = 1;
 #endif
 		} else {
diff --git a/drivers/video/tgafb.c b/drivers/video/tgafb.c
index aba7686..863ad3c 100644
--- a/drivers/video/tgafb.c
+++ b/drivers/video/tgafb.c
@@ -1738,7 +1738,7 @@ tgafb_setup(char *arg)
 		while ((this_opt = strsep(&arg, ","))) {
 			if (!*this_opt)
 				continue;
-			if (!strncmp(this_opt, "mode:", 5))
+			if (!memcmp(this_opt, "mode:", 5))
 				mode_option = this_opt+5;
 			else
 				printk(KERN_ERR
diff --git a/drivers/video/tridentfb.c b/drivers/video/tridentfb.c
index c6c7756..998defb 100644
--- a/drivers/video/tridentfb.c
+++ b/drivers/video/tridentfb.c
@@ -1608,23 +1608,23 @@ static int __init tridentfb_setup(char *options)
 	while ((opt = strsep(&options, ",")) != NULL) {
 		if (!*opt)
 			continue;
-		if (!strncmp(opt, "noaccel", 7))
+		if (!memcmp(opt, "noaccel", 7))
 			noaccel = 1;
-		else if (!strncmp(opt, "fp", 2))
+		else if (!memcmp(opt, "fp", 2))
 			fp = 1;
-		else if (!strncmp(opt, "crt", 3))
+		else if (!memcmp(opt, "crt", 3))
 			fp = 0;
-		else if (!strncmp(opt, "bpp=", 4))
+		else if (!memcmp(opt, "bpp=", 4))
 			bpp = simple_strtoul(opt + 4, NULL, 0);
-		else if (!strncmp(opt, "center", 6))
+		else if (!memcmp(opt, "center", 6))
 			center = 1;
-		else if (!strncmp(opt, "stretch", 7))
+		else if (!memcmp(opt, "stretch", 7))
 			stretch = 1;
-		else if (!strncmp(opt, "memsize=", 8))
+		else if (!memcmp(opt, "memsize=", 8))
 			memsize = simple_strtoul(opt + 8, NULL, 0);
-		else if (!strncmp(opt, "memdiff=", 8))
+		else if (!memcmp(opt, "memdiff=", 8))
 			memdiff = simple_strtoul(opt + 8, NULL, 0);
-		else if (!strncmp(opt, "nativex=", 8))
+		else if (!memcmp(opt, "nativex=", 8))
 			nativex = simple_strtoul(opt + 8, NULL, 0);
 		else
 			mode_option = opt;
diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
index 52ec095..c62ee86 100644
--- a/drivers/video/uvesafb.c
+++ b/drivers/video/uvesafb.c
@@ -1864,7 +1864,7 @@ static int __devinit uvesafb_setup(char *options)
 			pmi_setpal = 0;
 		else if (!strcmp(this_opt, "pmipal"))
 			pmi_setpal = 1;
-		else if (!strncmp(this_opt, "mtrr:", 5))
+		else if (!memcmp(this_opt, "mtrr:", 5))
 			mtrr = simple_strtoul(this_opt+5, NULL, 0);
 		else if (!strcmp(this_opt, "nomtrr"))
 			mtrr = 0;
@@ -1874,17 +1874,17 @@ static int __devinit uvesafb_setup(char *options)
 			noedid = 1;
 		else if (!strcmp(this_opt, "noblank"))
 			blank = 0;
-		else if (!strncmp(this_opt, "vtotal:", 7))
+		else if (!memcmp(this_opt, "vtotal:", 7))
 			vram_total = simple_strtoul(this_opt + 7, NULL, 0);
-		else if (!strncmp(this_opt, "vremap:", 7))
+		else if (!memcmp(this_opt, "vremap:", 7))
 			vram_remap = simple_strtoul(this_opt + 7, NULL, 0);
-		else if (!strncmp(this_opt, "maxhf:", 6))
+		else if (!memcmp(this_opt, "maxhf:", 6))
 			maxhf = simple_strtoul(this_opt + 6, NULL, 0);
-		else if (!strncmp(this_opt, "maxvf:", 6))
+		else if (!memcmp(this_opt, "maxvf:", 6))
 			maxvf = simple_strtoul(this_opt + 6, NULL, 0);
-		else if (!strncmp(this_opt, "maxclk:", 7))
+		else if (!memcmp(this_opt, "maxclk:", 7))
 			maxclk = simple_strtoul(this_opt + 7, NULL, 0);
-		else if (!strncmp(this_opt, "vbemode:", 8))
+		else if (!memcmp(this_opt, "vbemode:", 8))
 			vbemode = simple_strtoul(this_opt + 8, NULL, 0);
 		else if (this_opt[0] >= '0' && this_opt[0] <= '9') {
 			mode_option = this_opt;
diff --git a/drivers/video/valkyriefb.c b/drivers/video/valkyriefb.c
index 6b52bf6..71f00e4 100644
--- a/drivers/video/valkyriefb.c
+++ b/drivers/video/valkyriefb.c
@@ -565,12 +565,12 @@ int __init valkyriefb_setup(char *options)
 		return 0;
 
 	while ((this_opt = strsep(&options, ",")) != NULL) {
-		if (!strncmp(this_opt, "vmode:", 6)) {
+		if (!memcmp(this_opt, "vmode:", 6)) {
 	    		int vmode = simple_strtoul(this_opt+6, NULL, 0);
 			if (vmode > 0 && vmode <= VMODE_MAX)
 				default_vmode = vmode;
 		}
-		else if (!strncmp(this_opt, "cmode:", 6)) {
+		else if (!memcmp(this_opt, "cmode:", 6)) {
 			int depth = simple_strtoul(this_opt+6, NULL, 0);
 			switch (depth) {
 			case 8:
diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
index 6a069d0..0f1a478 100644
--- a/drivers/video/vesafb.c
+++ b/drivers/video/vesafb.c
@@ -213,13 +213,13 @@ static int __init vesafb_setup(char *options)
 			pmi_setpal=0;
 		else if (! strcmp(this_opt, "pmipal"))
 			pmi_setpal=1;
-		else if (! strncmp(this_opt, "mtrr:", 5))
+		else if (! memcmp(this_opt, "mtrr:", 5))
 			mtrr = simple_strtoul(this_opt+5, NULL, 0);
 		else if (! strcmp(this_opt, "nomtrr"))
 			mtrr=0;
-		else if (! strncmp(this_opt, "vtotal:", 7))
+		else if (! memcmp(this_opt, "vtotal:", 7))
 			vram_total = simple_strtoul(this_opt+7, NULL, 0);
-		else if (! strncmp(this_opt, "vremap:", 7))
+		else if (! memcmp(this_opt, "vremap:", 7))
 			vram_remap = simple_strtoul(this_opt+7, NULL, 0);
 	}
 	return 0;
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
index 36d73f9..9e82f9b 100644
--- a/drivers/video/via/hw.c
+++ b/drivers/video/via/hw.c
@@ -1180,7 +1180,7 @@ u32 via_parse_odev(char *input, char **end)
 		next = false;
 		for (i = 0; i < ARRAY_SIZE(device_mapping); i++) {
 			len = strlen(device_mapping[i].name);
-			if (!strncmp(ptr, device_mapping[i].name, len)) {
+			if (!memcmp(ptr, device_mapping[i].name, len)) {
 				odev |= device_mapping[i].device;
 				ptr += len;
 				if (*ptr == ',') {
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c
index d298cfc..9c790dc 100644
--- a/drivers/video/via/viafbdev.c
+++ b/drivers/video/via/viafbdev.c
@@ -1060,15 +1060,15 @@ static int __init parse_active_dev(void)
 
 static int __devinit parse_port(char *opt_str, int *output_interface)
 {
-	if (!strncmp(opt_str, "DVP0", 4))
+	if (!memcmp(opt_str, "DVP0", 4))
 		*output_interface = INTERFACE_DVP0;
-	else if (!strncmp(opt_str, "DVP1", 4))
+	else if (!memcmp(opt_str, "DVP1", 4))
 		*output_interface = INTERFACE_DVP1;
-	else if (!strncmp(opt_str, "DFP_HIGHLOW", 11))
+	else if (!memcmp(opt_str, "DFP_HIGHLOW", 11))
 		*output_interface = INTERFACE_DFP;
-	else if (!strncmp(opt_str, "DFP_HIGH", 8))
+	else if (!memcmp(opt_str, "DFP_HIGH", 8))
 		*output_interface = INTERFACE_DFP_HIGH;
-	else if (!strncmp(opt_str, "DFP_LOW", 7))
+	else if (!memcmp(opt_str, "DFP_LOW", 7))
 		*output_interface = INTERFACE_DFP_LOW;
 	else
 		*output_interface = INTERFACE_NONE;
@@ -1943,60 +1943,60 @@ static int __init viafb_setup(char *options)
 		if (!*this_opt)
 			continue;
 
-		if (!strncmp(this_opt, "viafb_mode1=", 12))
+		if (!memcmp(this_opt, "viafb_mode1=", 12))
 			viafb_mode1 = kstrdup(this_opt + 12, GFP_KERNEL);
-		else if (!strncmp(this_opt, "viafb_mode=", 11))
+		else if (!memcmp(this_opt, "viafb_mode=", 11))
 			viafb_mode = kstrdup(this_opt + 11, GFP_KERNEL);
-		else if (!strncmp(this_opt, "viafb_bpp1=", 11))
+		else if (!memcmp(this_opt, "viafb_bpp1=", 11))
 			strict_strtoul(this_opt + 11, 0,
 				(unsigned long *)&viafb_bpp1);
-		else if (!strncmp(this_opt, "viafb_bpp=", 10))
+		else if (!memcmp(this_opt, "viafb_bpp=", 10))
 			strict_strtoul(this_opt + 10, 0,
 				(unsigned long *)&viafb_bpp);
-		else if (!strncmp(this_opt, "viafb_refresh1=", 15))
+		else if (!memcmp(this_opt, "viafb_refresh1=", 15))
 			strict_strtoul(this_opt + 15, 0,
 				(unsigned long *)&viafb_refresh1);
-		else if (!strncmp(this_opt, "viafb_refresh=", 14))
+		else if (!memcmp(this_opt, "viafb_refresh=", 14))
 			strict_strtoul(this_opt + 14, 0,
 				(unsigned long *)&viafb_refresh);
-		else if (!strncmp(this_opt, "viafb_lcd_dsp_method=", 21))
+		else if (!memcmp(this_opt, "viafb_lcd_dsp_method=", 21))
 			strict_strtoul(this_opt + 21, 0,
 				(unsigned long *)&viafb_lcd_dsp_method);
-		else if (!strncmp(this_opt, "viafb_lcd_panel_id=", 19))
+		else if (!memcmp(this_opt, "viafb_lcd_panel_id=", 19))
 			strict_strtoul(this_opt + 19, 0,
 				(unsigned long *)&viafb_lcd_panel_id);
-		else if (!strncmp(this_opt, "viafb_accel=", 12))
+		else if (!memcmp(this_opt, "viafb_accel=", 12))
 			strict_strtoul(this_opt + 12, 0,
 				(unsigned long *)&viafb_accel);
-		else if (!strncmp(this_opt, "viafb_SAMM_ON=", 14))
+		else if (!memcmp(this_opt, "viafb_SAMM_ON=", 14))
 			strict_strtoul(this_opt + 14, 0,
 				(unsigned long *)&viafb_SAMM_ON);
-		else if (!strncmp(this_opt, "viafb_active_dev=", 17))
+		else if (!memcmp(this_opt, "viafb_active_dev=", 17))
 			viafb_active_dev = kstrdup(this_opt + 17, GFP_KERNEL);
-		else if (!strncmp(this_opt,
+		else if (!memcmp(this_opt,
 			"viafb_display_hardware_layout=", 30))
 			strict_strtoul(this_opt + 30, 0,
 			(unsigned long *)&viafb_display_hardware_layout);
-		else if (!strncmp(this_opt, "viafb_second_size=", 18))
+		else if (!memcmp(this_opt, "viafb_second_size=", 18))
 			strict_strtoul(this_opt + 18, 0,
 				(unsigned long *)&viafb_second_size);
-		else if (!strncmp(this_opt,
+		else if (!memcmp(this_opt,
 			"viafb_platform_epia_dvi=", 24))
 			strict_strtoul(this_opt + 24, 0,
 				(unsigned long *)&viafb_platform_epia_dvi);
-		else if (!strncmp(this_opt,
+		else if (!memcmp(this_opt,
 			"viafb_device_lcd_dualedge=", 26))
 			strict_strtoul(this_opt + 26, 0,
 				(unsigned long *)&viafb_device_lcd_dualedge);
-		else if (!strncmp(this_opt, "viafb_bus_width=", 16))
+		else if (!memcmp(this_opt, "viafb_bus_width=", 16))
 			strict_strtoul(this_opt + 16, 0,
 				(unsigned long *)&viafb_bus_width);
-		else if (!strncmp(this_opt, "viafb_lcd_mode=", 15))
+		else if (!memcmp(this_opt, "viafb_lcd_mode=", 15))
 			strict_strtoul(this_opt + 15, 0,
 				(unsigned long *)&viafb_lcd_mode);
-		else if (!strncmp(this_opt, "viafb_lcd_port=", 15))
+		else if (!memcmp(this_opt, "viafb_lcd_port=", 15))
 			viafb_lcd_port = kstrdup(this_opt + 15, GFP_KERNEL);
-		else if (!strncmp(this_opt, "viafb_dvi_port=", 15))
+		else if (!memcmp(this_opt, "viafb_dvi_port=", 15))
 			viafb_dvi_port = kstrdup(this_opt + 15, GFP_KERNEL);
 	}
 	return 0;
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index deb9c4b..a7b79c0 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -216,7 +216,7 @@ static void otherend_changed(struct xenbus_watch *watch,
 	/* Protect us against watches firing on old details when the otherend
 	   details change, say immediately after a resume. */
 	if (!dev->otherend ||
-	    strncmp(dev->otherend, vec[XS_WATCH_PATH],
+	    memcmp(dev->otherend, vec[XS_WATCH_PATH],
 		    strlen(dev->otherend))) {
 		dev_dbg(&dev->dev, "Ignoring watch at %s\n",
 			vec[XS_WATCH_PATH]);
@@ -425,7 +425,7 @@ static int cleanup_dev(struct device *dev, void *data)
 	DPRINTK("%s", info->nodename);
 
 	/* Match the info->nodename path, or any subdirectory of that path. */
-	if (strncmp(xendev->nodename, info->nodename, len))
+	if (memcmp(xendev->nodename, info->nodename, len))
 		return 0;
 
 	/* If the node name is longer, ensure it really is a subdirectory. */
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index 34bf71b..0e80d5e 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -1383,7 +1383,7 @@ v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode,
 			strncpy(ext, stat->extension, sizeof(ext));
 			/* HARDLINKCOUNT %u */
 			sscanf(ext, "%13s %u", tag_name, &i_nlink);
-			if (!strncmp(tag_name, "HARDLINKCOUNT", 13))
+			if (!memcmp(tag_name, "HARDLINKCOUNT", 13))
 				inode->i_nlink = i_nlink;
 		}
 	}
diff --git a/fs/affs/namei.c b/fs/affs/namei.c
index 914d1c0..5dace65 100644
--- a/fs/affs/namei.c
+++ b/fs/affs/namei.c
@@ -132,7 +132,7 @@ affs_intl_compare_dentry(struct dentry *dentry, struct qstr *a, struct qstr *b)
 }
 
 /*
- * NOTE! unlike strncmp, affs_match returns 1 for success, 0 for failure.
+ * NOTE! unlike memcmp, affs_match returns 1 for success, 0 for failure.
  */
 
 static inline int
diff --git a/fs/afs/cell.c b/fs/afs/cell.c
index 0d5eead..779908d 100644
--- a/fs/afs/cell.c
+++ b/fs/afs/cell.c
@@ -278,7 +278,7 @@ struct afs_cell *afs_cell_lookup(const char *name, unsigned namesz,
 	if (name) {
 		/* if the cell was named, look for it in the cell record list */
 		list_for_each_entry(cell, &afs_cells, link) {
-			if (strncmp(cell->name, name, namesz) == 0) {
+			if (memcmp(cell->name, name, namesz) == 0) {
 				afs_get_cell(cell);
 				goto found;
 			}
diff --git a/fs/befs/btree.c b/fs/befs/btree.c
index 4202db7..098a2e0 100644
--- a/fs/befs/btree.c
+++ b/fs/befs/btree.c
@@ -716,7 +716,7 @@ befs_compare_strings(const void *key1, int keylen1,
 		     const void *key2, int keylen2)
 {
 	int len = min_t(int, keylen1, keylen2);
-	int result = strncmp(key1, key2, len);
+	int result = memcmp(key1, key2, len);
 	if (result == 0)
 		result = keylen1 - keylen2;
 	return result;
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
index 811384b..1b40b6e 100644
--- a/fs/binfmt_flat.c
+++ b/fs/binfmt_flat.c
@@ -453,7 +453,7 @@ static int load_flat_file(struct linux_binprm * bprm,
 	flags     = ntohl(hdr->flags);
 	rev       = ntohl(hdr->rev);
 
-	if (strncmp(hdr->magic, "bFLT", 4)) {
+	if (memcmp(hdr->magic, "bFLT", 4)) {
 		/*
 		 * Previously, here was a printk to tell people
 		 *   "BINFMT_FLAT: bad header magic".
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index fb827d0..d8a6249 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -1814,7 +1814,7 @@ struct btrfs_root *open_ctree(struct super_block *sb,
 	sb->s_blocksize = sectorsize;
 	sb->s_blocksize_bits = blksize_bits(sectorsize);
 
-	if (strncmp((char *)(&disk_super->magic), BTRFS_MAGIC,
+	if (memcmp((char *)(&disk_super->magic), BTRFS_MAGIC,
 		    sizeof(disk_super->magic))) {
 		printk(KERN_INFO "btrfs: valid FS not found on %s\n", sb->s_id);
 		goto fail_sb_buffer;
@@ -2105,7 +2105,7 @@ struct buffer_head *btrfs_read_dev_super(struct block_device *bdev)
 
 		super = (struct btrfs_super_block *)bh->b_data;
 		if (btrfs_super_bytenr(super) != bytenr ||
-		    strncmp((char *)(&super->magic), BTRFS_MAGIC,
+		    memcmp((char *)(&super->magic), BTRFS_MAGIC,
 			    sizeof(super->magic))) {
 			brelse(bh);
 			continue;
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 463d91b..7871658 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1351,7 +1351,7 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
 	vol_args->name[BTRFS_PATH_NAME_MAX] = '\0';
 	namelen = strlen(vol_args->name);
 	if (strchr(vol_args->name, '/') ||
-	    strncmp(vol_args->name, "..", namelen) == 0) {
+	    memcmp(vol_args->name, "..", namelen) == 0) {
 		err = -EINVAL;
 		goto out;
 	}
diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c
index 698fdd2..7c32bee 100644
--- a/fs/btrfs/xattr.c
+++ b/fs/btrfs/xattr.c
@@ -290,11 +290,11 @@ const struct xattr_handler *btrfs_xattr_handlers[] = {
  */
 static bool btrfs_is_valid_xattr(const char *name)
 {
-	return !strncmp(name, XATTR_SECURITY_PREFIX,
+	return !memcmp(name, XATTR_SECURITY_PREFIX,
 			XATTR_SECURITY_PREFIX_LEN) ||
-	       !strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN) ||
-	       !strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) ||
-	       !strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN);
+	       !memcmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN) ||
+	       !memcmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) ||
+	       !memcmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN);
 }
 
 ssize_t btrfs_getxattr(struct dentry *dentry, const char *name,
@@ -305,7 +305,7 @@ ssize_t btrfs_getxattr(struct dentry *dentry, const char *name,
 	 * namespace use the generic infrastructure to resolve a handler
 	 * for it via sb->s_xattr.
 	 */
-	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+	if (!memcmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
 		return generic_getxattr(dentry, name, buffer, size);
 
 	if (!btrfs_is_valid_xattr(name))
@@ -321,7 +321,7 @@ int btrfs_setxattr(struct dentry *dentry, const char *name, const void *value,
 	 * namespace use the generic infrastructure to resolve a handler
 	 * for it via sb->s_xattr.
 	 */
-	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+	if (!memcmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
 		return generic_setxattr(dentry, name, value, size, flags);
 
 	if (!btrfs_is_valid_xattr(name))
@@ -341,7 +341,7 @@ int btrfs_removexattr(struct dentry *dentry, const char *name)
 	 * namespace use the generic infrastructure to resolve a handler
 	 * for it via sb->s_xattr.
 	 */
-	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+	if (!memcmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
 		return generic_removexattr(dentry, name);
 
 	if (!btrfs_is_valid_xattr(name))
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
index 7d447af..c270189 100644
--- a/fs/ceph/dir.c
+++ b/fs/ceph/dir.c
@@ -528,7 +528,7 @@ struct dentry *ceph_finish_lookup(struct ceph_mds_request *req,
 static int is_root_ceph_dentry(struct inode *inode, struct dentry *dentry)
 {
 	return ceph_ino(inode) == CEPH_INO_ROOT &&
-		strncmp(dentry->d_name.name, ".ceph", 5) == 0;
+		memcmp(dentry->d_name.name, ".ceph", 5) == 0;
 }
 
 /*
@@ -570,7 +570,7 @@ static struct dentry *ceph_lookup(struct inode *dir, struct dentry *dentry,
 
 		spin_lock(&dir->i_lock);
 		dout(" dir %p flags are %d\n", dir, ci->i_ceph_flags);
-		if (strncmp(dentry->d_name.name,
+		if (memcmp(dentry->d_name.name,
 			    fsc->mount_options->snapdir_name,
 			    dentry->d_name.len) &&
 		    !is_root_ceph_dentry(dir, dentry) &&
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index bf12865..c05b426 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -978,7 +978,7 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req,
 	 * will have trouble splicing in the virtual snapdir later
 	 */
 	if (rinfo->head->is_dentry && !req->r_aborted &&
-	    (rinfo->head->is_target || strncmp(req->r_dentry->d_name.name,
+	    (rinfo->head->is_target || memcmp(req->r_dentry->d_name.name,
 					       fsc->mount_options->snapdir_name,
 					       req->r_dentry->d_name.len))) {
 		/*
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
index 6e12a6b..c3d397d 100644
--- a/fs/ceph/xattr.c
+++ b/fs/ceph/xattr.c
@@ -10,11 +10,11 @@
 
 static bool ceph_is_valid_xattr(const char *name)
 {
-	return !strncmp(name, "ceph.", 5) ||
-	       !strncmp(name, XATTR_SECURITY_PREFIX,
+	return !memcmp(name, "ceph.", 5) ||
+	       !memcmp(name, XATTR_SECURITY_PREFIX,
 			XATTR_SECURITY_PREFIX_LEN) ||
-	       !strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) ||
-	       !strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN);
+	       !memcmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) ||
+	       !memcmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN);
 }
 
 /*
@@ -152,7 +152,7 @@ static int __set_xattr(struct ceph_inode_info *ci,
 	while (*p) {
 		parent = *p;
 		xattr = rb_entry(parent, struct ceph_inode_xattr, node);
-		c = strncmp(name, xattr->name, min(name_len, xattr->name_len));
+		c = memcmp(name, xattr->name, min(name_len, xattr->name_len));
 		if (c < 0)
 			p = &(*p)->rb_left;
 		else if (c > 0)
@@ -225,7 +225,7 @@ static struct ceph_inode_xattr *__get_xattr(struct ceph_inode_info *ci,
 	while (*p) {
 		parent = *p;
 		xattr = rb_entry(parent, struct ceph_inode_xattr, node);
-		c = strncmp(name, xattr->name, xattr->name_len);
+		c = memcmp(name, xattr->name, xattr->name_len);
 		if (c < 0)
 			p = &(*p)->rb_left;
 		else if (c > 0)
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c
index c68a056..0160b39 100644
--- a/fs/cifs/cifs_dfs_ref.c
+++ b/fs/cifs/cifs_dfs_ref.c
@@ -158,7 +158,7 @@ char *cifs_compose_mount_options(const char *sb_mountdata,
 
 	/* copy all options except of unc,ip,prefixpath */
 	off = 0;
-	if (strncmp(sb_mountdata, "sep=", 4) == 0) {
+	if (memcmp(sb_mountdata, "sep=", 4) == 0) {
 			sep = sb_mountdata[4];
 			strncpy(mountdata, sb_mountdata, 5);
 			off += 5;
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 2f2632b..5a7a6f4 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -5598,7 +5598,7 @@ QAllEAsRetry:
 		}
 
 		if (ea_name) {
-			if (strncmp(ea_name, temp_ptr, name_len) == 0) {
+			if (memcmp(ea_name, temp_ptr, name_len) == 0) {
 				temp_ptr += name_len + 1;
 				rc = value_len;
 				if (buf_size == 0)
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 251a17c..6728255 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -843,7 +843,7 @@ cifs_parse_mount_options(char *options, const char *devname,
 	if (!options)
 		return 1;
 
-	if (strncmp(options, "sep=", 4) == 0) {
+	if (memcmp(options, "sep=", 4) == 0) {
 		if (options[4] != 0) {
 			separator[0] = options[4];
 			options += 5;
@@ -1029,10 +1029,10 @@ cifs_parse_mount_options(char *options, const char *devname,
 				if (vol->UNC == NULL)
 					return 1;
 				strcpy(vol->UNC, value);
-				if (strncmp(vol->UNC, "//", 2) == 0) {
+				if (memcmp(vol->UNC, "//", 2) == 0) {
 					vol->UNC[0] = '\\';
 					vol->UNC[1] = '\\';
-				} else if (strncmp(vol->UNC, "\\\\", 2) != 0) {
+				} else if (memcmp(vol->UNC, "\\\\", 2) != 0) {
 					printk(KERN_WARNING
 					       "CIFS: UNC Path does not begin "
 					       "with // or \\\\ \n");
@@ -1372,10 +1372,10 @@ cifs_parse_mount_options(char *options, const char *devname,
 			if (vol->UNC == NULL)
 				return 1;
 			strcpy(vol->UNC, devname);
-			if (strncmp(vol->UNC, "//", 2) == 0) {
+			if (memcmp(vol->UNC, "//", 2) == 0) {
 				vol->UNC[0] = '\\';
 				vol->UNC[1] = '\\';
-			} else if (strncmp(vol->UNC, "\\\\", 2) != 0) {
+			} else if (memcmp(vol->UNC, "\\\\", 2) != 0) {
 				printk(KERN_WARNING "CIFS: UNC Path does not "
 						    "begin with // or \\\\ \n");
 				return 1;
@@ -1730,12 +1730,12 @@ cifs_find_smb_ses(struct TCP_Server_Info *server, struct smb_vol *vol)
 			break;
 		default:
 			/* anything else takes username/password */
-			if (strncmp(ses->userName, vol->username,
+			if (memcmp(ses->userName, vol->username,
 				    MAX_USERNAME_SIZE))
 				continue;
 			if (strlen(vol->username) != 0 &&
 			    ses->password != NULL &&
-			    strncmp(ses->password,
+			    memcmp(ses->password,
 				    vol->password ? vol->password : "",
 				    MAX_PASSWORD_SIZE))
 				continue;
@@ -1880,7 +1880,7 @@ cifs_find_tcon(struct cifsSesInfo *ses, const char *unc)
 		tcon = list_entry(tmp, struct cifsTconInfo, tcon_list);
 		if (tcon->tidStatus == CifsExiting)
 			continue;
-		if (strncmp(tcon->treeName, unc, MAX_TREE_SIZE))
+		if (memcmp(tcon->treeName, unc, MAX_TREE_SIZE))
 			continue;
 
 		++tcon->tc_count;
diff --git a/fs/cifs/link.c b/fs/cifs/link.c
index 85cdbf8..53a7dc5 100644
--- a/fs/cifs/link.c
+++ b/fs/cifs/link.c
@@ -78,7 +78,7 @@ CIFSParseMFSymlink(const u8 *buf,
 		 CIFS_MF_SYMLINK_MD5_FORMAT,
 		 CIFS_MF_SYMLINK_MD5_ARGS(md5_hash));
 
-	if (strncmp(md5_str1, md5_str2, 17) != 0)
+	if (memcmp(md5_str1, md5_str2, 17) != 0)
 		return -EINVAL;
 
 	if (_link_str) {
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index 7b01d3f..e247e75 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -342,7 +342,7 @@ static int decode_ascii_ssetup(char **pbcc_area, int bleft,
 	ses->serverOS = kzalloc(len + 1, GFP_KERNEL);
 	if (ses->serverOS)
 		strncpy(ses->serverOS, bcc_ptr, len);
-	if (strncmp(ses->serverOS, "OS/2", 4) == 0) {
+	if (memcmp(ses->serverOS, "OS/2", 4) == 0) {
 			cFYI(1, "OS/2 server");
 			ses->flags |= CIFS_SES_OS2;
 	}
diff --git a/fs/cifs/xattr.c b/fs/cifs/xattr.c
index a264b74..f37c39d 100644
--- a/fs/cifs/xattr.c
+++ b/fs/cifs/xattr.c
@@ -75,8 +75,8 @@ int cifs_removexattr(struct dentry *direntry, const char *ea_name)
 	}
 	if (ea_name == NULL) {
 		cFYI(1, "Null xattr names not supported");
-	} else if (strncmp(ea_name, CIFS_XATTR_USER_PREFIX, 5)
-		&& (strncmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4))) {
+	} else if (memcmp(ea_name, CIFS_XATTR_USER_PREFIX, 5)
+		&& (memcmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4))) {
 		cFYI(1,
 		     "illegal xattr request %s (only user namespace supported)",
 		     ea_name);
@@ -147,17 +147,17 @@ int cifs_setxattr(struct dentry *direntry, const char *ea_name,
 
 	if (ea_name == NULL) {
 		cFYI(1, "Null xattr names not supported");
-	} else if (strncmp(ea_name, CIFS_XATTR_USER_PREFIX, 5) == 0) {
+	} else if (memcmp(ea_name, CIFS_XATTR_USER_PREFIX, 5) == 0) {
 		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
 			goto set_ea_exit;
-		if (strncmp(ea_name, CIFS_XATTR_DOS_ATTRIB, 14) == 0)
+		if (memcmp(ea_name, CIFS_XATTR_DOS_ATTRIB, 14) == 0)
 			cFYI(1, "attempt to set cifs inode metadata");
 
 		ea_name += 5; /* skip past user. prefix */
 		rc = CIFSSMBSetEA(xid, pTcon, full_path, ea_name, ea_value,
 			(__u16)value_size, cifs_sb->local_nls,
 			cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
-	} else if (strncmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4) == 0) {
+	} else if (memcmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4) == 0) {
 		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
 			goto set_ea_exit;
 
@@ -167,7 +167,7 @@ int cifs_setxattr(struct dentry *direntry, const char *ea_name,
 			cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
 	} else {
 		int temp;
-		temp = strncmp(ea_name, POSIX_ACL_XATTR_ACCESS,
+		temp = memcmp(ea_name, POSIX_ACL_XATTR_ACCESS,
 			strlen(POSIX_ACL_XATTR_ACCESS));
 		if (temp == 0) {
 #ifdef CONFIG_CIFS_POSIX
@@ -181,7 +181,7 @@ int cifs_setxattr(struct dentry *direntry, const char *ea_name,
 #else
 			cFYI(1, "set POSIX ACL not supported");
 #endif
-		} else if (strncmp(ea_name, POSIX_ACL_XATTR_DEFAULT,
+		} else if (memcmp(ea_name, POSIX_ACL_XATTR_DEFAULT,
 				   strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
 #ifdef CONFIG_CIFS_POSIX
 			if (sb->s_flags & MS_POSIXACL)
@@ -248,11 +248,11 @@ ssize_t cifs_getxattr(struct dentry *direntry, const char *ea_name,
 	/* return alt name if available as pseudo attr */
 	if (ea_name == NULL) {
 		cFYI(1, "Null xattr names not supported");
-	} else if (strncmp(ea_name, CIFS_XATTR_USER_PREFIX, 5) == 0) {
+	} else if (memcmp(ea_name, CIFS_XATTR_USER_PREFIX, 5) == 0) {
 		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
 			goto get_ea_exit;
 
-		if (strncmp(ea_name, CIFS_XATTR_DOS_ATTRIB, 14) == 0) {
+		if (memcmp(ea_name, CIFS_XATTR_DOS_ATTRIB, 14) == 0) {
 			cFYI(1, "attempt to query cifs inode metadata");
 			/* revalidate/getattr then populate from inode */
 		} /* BB add else when above is implemented */
@@ -260,7 +260,7 @@ ssize_t cifs_getxattr(struct dentry *direntry, const char *ea_name,
 		rc = CIFSSMBQAllEAs(xid, pTcon, full_path, ea_name, ea_value,
 			buf_size, cifs_sb->local_nls,
 			cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
-	} else if (strncmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4) == 0) {
+	} else if (memcmp(ea_name, CIFS_XATTR_OS2_PREFIX, 4) == 0) {
 		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
 			goto get_ea_exit;
 
@@ -268,7 +268,7 @@ ssize_t cifs_getxattr(struct dentry *direntry, const char *ea_name,
 		rc = CIFSSMBQAllEAs(xid, pTcon, full_path, ea_name, ea_value,
 			buf_size, cifs_sb->local_nls,
 			cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
-	} else if (strncmp(ea_name, POSIX_ACL_XATTR_ACCESS,
+	} else if (memcmp(ea_name, POSIX_ACL_XATTR_ACCESS,
 			  strlen(POSIX_ACL_XATTR_ACCESS)) == 0) {
 #ifdef CONFIG_CIFS_POSIX
 		if (sb->s_flags & MS_POSIXACL)
@@ -301,7 +301,7 @@ ssize_t cifs_getxattr(struct dentry *direntry, const char *ea_name,
 #else
 		cFYI(1, "query POSIX ACL not supported yet");
 #endif /* CONFIG_CIFS_POSIX */
-	} else if (strncmp(ea_name, POSIX_ACL_XATTR_DEFAULT,
+	} else if (memcmp(ea_name, POSIX_ACL_XATTR_DEFAULT,
 			  strlen(POSIX_ACL_XATTR_DEFAULT)) == 0) {
 #ifdef CONFIG_CIFS_POSIX
 		if (sb->s_flags & MS_POSIXACL)
@@ -313,10 +313,10 @@ ssize_t cifs_getxattr(struct dentry *direntry, const char *ea_name,
 #else
 		cFYI(1, "query POSIX default ACL not supported yet");
 #endif
-	} else if (strncmp(ea_name,
+	} else if (memcmp(ea_name,
 		  CIFS_XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) == 0) {
 		cFYI(1, "Trusted xattr namespace not supported yet");
-	} else if (strncmp(ea_name,
+	} else if (memcmp(ea_name,
 		  CIFS_XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) == 0) {
 		cFYI(1, "Security xattr namespace not supported yet");
 	} else
diff --git a/fs/coda/coda_linux.c b/fs/coda/coda_linux.c
index bf4a3fd..110c81a 100644
--- a/fs/coda/coda_linux.c
+++ b/fs/coda/coda_linux.c
@@ -38,7 +38,7 @@ char * coda_f2s(struct CodaFid *f)
 int coda_iscontrol(const char *name, size_t length)
 {
 	return ((CODA_CONTROLLEN == length) && 
-                (strncmp(name, CODA_CONTROL, CODA_CONTROLLEN) == 0));
+                (memcmp(name, CODA_CONTROL, CODA_CONTROLLEN) == 0));
 }
 
 /* recognize /coda inode */
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index cbadc1b..acdefbd 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -2219,7 +2219,7 @@ int ecryptfs_decode_and_decrypt_filename(char **plaintext_name,
 	if ((mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES)
 	    && !(mount_crypt_stat->flags & ECRYPTFS_ENCRYPTED_VIEW_ENABLED)
 	    && (name_size > ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX_SIZE)
-	    && (strncmp(name, ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX,
+	    && (memcmp(name, ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX,
 			ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX_SIZE) == 0)) {
 		const char *orig_name = name;
 		size_t orig_name_size = name_size;
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index d89e0b6..0bdc900 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -357,7 +357,7 @@ static unsigned long get_sb_block(void **data)
 	unsigned long 	sb_block;
 	char 		*options = (char *) *data;
 
-	if (!options || strncmp(options, "sb=", 3) != 0)
+	if (!options || memcmp(options, "sb=", 3) != 0)
 		return 1;	/* Default location */
 	options += 3;
 	sb_block = simple_strtoul(options, &options, 0);
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c
index bce9dce..3e0b430 100644
--- a/fs/ext3/namei.c
+++ b/fs/ext3/namei.c
@@ -2379,7 +2379,7 @@ static int ext3_rename (struct inode * old_dir, struct dentry *old_dentry,
 	 */
 	if (le32_to_cpu(old_de->inode) != old_inode->i_ino ||
 	    old_de->name_len != old_dentry->d_name.len ||
-	    strncmp(old_de->name, old_dentry->d_name.name, old_de->name_len) ||
+	    memcmp(old_de->name, old_dentry->d_name.name, old_de->name_len) ||
 	    (retval = ext3_delete_entry(handle, old_dir,
 					old_de, old_bh)) == -ENOENT) {
 		/* old_de could have moved from under us during htree split, so
diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index acf8695..1a50401 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -861,7 +861,7 @@ static ext3_fsblk_t get_sb_block(void **data, struct super_block *sb)
 	ext3_fsblk_t	sb_block;
 	char		*options = (char *) *data;
 
-	if (!options || strncmp(options, "sb=", 3) != 0)
+	if (!options || memcmp(options, "sb=", 3) != 0)
 		return 1;	/* Default location */
 	options += 3;
 	/*todo: use simple_strtoll with >32bit ext3 */
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 92203b8..e1437f1 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -2424,7 +2424,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
 	 */
 	if (le32_to_cpu(old_de->inode) != old_inode->i_ino ||
 	    old_de->name_len != old_dentry->d_name.len ||
-	    strncmp(old_de->name, old_dentry->d_name.name, old_de->name_len) ||
+	    memcmp(old_de->name, old_dentry->d_name.name, old_de->name_len) ||
 	    (retval = ext4_delete_entry(handle, old_dir,
 					old_de, old_bh)) == -ENOENT) {
 		/* old_de could have moved from under us during htree split, so
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index e32195d..483aa2a 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1326,7 +1326,7 @@ static ext4_fsblk_t get_sb_block(void **data)
 	ext4_fsblk_t	sb_block;
 	char		*options = (char *) *data;
 
-	if (!options || strncmp(options, "sb=", 3) != 0)
+	if (!options || memcmp(options, "sb=", 3) != 0)
 		return 1;	/* Default location */
 
 	options += 3;
diff --git a/fs/fat/dir.c b/fs/fat/dir.c
index ee42b9e..fa54b22 100644
--- a/fs/fat/dir.c
+++ b/fs/fat/dir.c
@@ -863,7 +863,7 @@ int fat_get_dotdot_entry(struct inode *dir, struct buffer_head **bh,
 	offset = 0;
 	*bh = NULL;
 	while (fat_get_short_entry(dir, &offset, bh, de) >= 0) {
-		if (!strncmp((*de)->name, MSDOS_DOTDOT, MSDOS_NAME)) {
+		if (!memcmp((*de)->name, MSDOS_DOTDOT, MSDOS_NAME)) {
 			*i_pos = fat_make_i_pos(dir->i_sb, *bh, *de);
 			return 0;
 		}
@@ -884,8 +884,8 @@ int fat_dir_empty(struct inode *dir)
 	bh = NULL;
 	cpos = 0;
 	while (fat_get_short_entry(dir, &cpos, &bh, &de) >= 0) {
-		if (strncmp(de->name, MSDOS_DOT   , MSDOS_NAME) &&
-		    strncmp(de->name, MSDOS_DOTDOT, MSDOS_NAME)) {
+		if (memcmp(de->name, MSDOS_DOT   , MSDOS_NAME) &&
+		    memcmp(de->name, MSDOS_DOTDOT, MSDOS_NAME)) {
 			result = -ENOTEMPTY;
 			break;
 		}
@@ -930,7 +930,7 @@ int fat_scan(struct inode *dir, const unsigned char *name,
 	sinfo->bh = NULL;
 	while (fat_get_short_entry(dir, &sinfo->slot_off, &sinfo->bh,
 				   &sinfo->de) >= 0) {
-		if (!strncmp(sinfo->de->name, name, MSDOS_NAME)) {
+		if (!memcmp(sinfo->de->name, name, MSDOS_NAME)) {
 			sinfo->slot_off -= sizeof(*sinfo->de);
 			sinfo->nr_slots = 1;
 			sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de);
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index ad6998a..c1a82b5 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -330,7 +330,7 @@ static int is_exec(unsigned char *extension)
 	unsigned char *exe_extensions = "EXECOMBAT", *walk;
 
 	for (walk = exe_extensions; *walk; walk += 3)
-		if (!strncmp(extension, walk, 3))
+		if (!memcmp(extension, walk, 3))
 			return 1;
 	return 0;
 }
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c
index b936703..2f0d4fc 100644
--- a/fs/fat/namei_vfat.c
+++ b/fs/fat/namei_vfat.c
@@ -159,7 +159,7 @@ static int vfat_cmp(struct dentry *dentry, struct qstr *a, struct qstr *b)
 	alen = vfat_striptail_len(a);
 	blen = vfat_striptail_len(b);
 	if (alen == blen) {
-		if (strncmp(a->name, b->name, alen) == 0)
+		if (memcmp(a->name, b->name, alen) == 0)
 			return 0;
 	}
 	return 1;
diff --git a/fs/filesystems.c b/fs/filesystems.c
index 68ba492..fda5632 100644
--- a/fs/filesystems.c
+++ b/fs/filesystems.c
@@ -48,7 +48,7 @@ static struct file_system_type **find_filesystem(const char *name, unsigned len)
 	struct file_system_type **p;
 	for (p=&file_systems; *p; p=&(*p)->next)
 		if (strlen((*p)->name) == len &&
-		    strncmp((*p)->name, name, len) == 0)
+		    memcmp((*p)->name, name, len) == 0)
 			break;
 	return p;
 }
diff --git a/fs/isofs/dir.c b/fs/isofs/dir.c
index 0542b6e..9337d1c 100644
--- a/fs/isofs/dir.c
+++ b/fs/isofs/dir.c
@@ -61,7 +61,7 @@ int get_acorn_filename(struct iso_directory_record *de,
 	if ((*((unsigned char *) de) - std) != 32)
 		return retnamlen;
 	chr = ((unsigned char *) de) + std;
-	if (strncmp(chr, "ARCHIMEDES", 10))
+	if (memcmp(chr, "ARCHIMEDES", 10))
 		return retnamlen;
 	if ((*retname == '_') && ((chr[19] & 1) == 1))
 		*retname = '!';
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
index bfdeb82..353e156 100644
--- a/fs/isofs/inode.c
+++ b/fs/isofs/inode.c
@@ -247,7 +247,7 @@ static int isofs_dentry_cmp_common(struct dentry *dentry, struct qstr *a,
 			blen--;
 	}
 	if (alen == blen) {
-		if (strncmp(a->name, b->name, alen) == 0)
+		if (memcmp(a->name, b->name, alen) == 0)
 			return 0;
 	}
 	return 1;
@@ -637,7 +637,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
 		 * ISO CDs can match hdp->id==HS_STANDARD_ID as well. To ensure
 		 * proper identification in this case, we first check for ISO.
 		 */
-		if (strncmp (vdp->id, ISO_STANDARD_ID, sizeof vdp->id) == 0) {
+		if (memcmp (vdp->id, ISO_STANDARD_ID, sizeof vdp->id) == 0) {
 			if (isonum_711(vdp->type) == ISO_VD_END)
 				break;
 			if (isonum_711(vdp->type) == ISO_VD_PRIMARY) {
@@ -672,7 +672,7 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent)
 			}
 #endif
 		} else {
-			if (strncmp (hdp->id, HS_STANDARD_ID, sizeof hdp->id) == 0) {
+			if (memcmp (hdp->id, HS_STANDARD_ID, sizeof hdp->id) == 0) {
 				if (isonum_711(hdp->type) != ISO_VD_PRIMARY)
 					goto out_freebh;
 
diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c
index 9297865..b8d923c 100644
--- a/fs/jffs2/dir.c
+++ b/fs/jffs2/dir.c
@@ -95,7 +95,7 @@ static struct dentry *jffs2_lookup(struct inode *dir_i, struct dentry *target,
 		if (fd_list->nhash == target->d_name.hash &&
 		    (!fd || fd_list->version > fd->version) &&
 		    strlen(fd_list->name) == target->d_name.len &&
-		    !strncmp(fd_list->name, target->d_name.name, target->d_name.len)) {
+		    !memcmp(fd_list->name, target->d_name.name, target->d_name.len)) {
 			fd = fd_list;
 		}
 	}
diff --git a/fs/jfs/jfs_mount.c b/fs/jfs/jfs_mount.c
index 9895595..dc195d3 100644
--- a/fs/jfs/jfs_mount.c
+++ b/fs/jfs/jfs_mount.c
@@ -318,7 +318,7 @@ static int chkSuper(struct super_block *sb)
 	 * validate superblock
 	 */
 	/* validate fs signature */
-	if (strncmp(j_sb->s_magic, JFS_MAGIC, 4) ||
+	if (memcmp(j_sb->s_magic, JFS_MAGIC, 4) ||
 	    le32_to_cpu(j_sb->s_version) > JFS_VERSION) {
 		rc = -EINVAL;
 		goto out;
diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c
index 2d7f165..8b77507 100644
--- a/fs/jfs/xattr.c
+++ b/fs/jfs/xattr.c
@@ -88,10 +88,10 @@ struct ea_buffer {
 
 static int is_known_namespace(const char *name)
 {
-	if (strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN) &&
-	    strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) &&
-	    strncmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) &&
-	    strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN))
+	if (memcmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN) &&
+	    memcmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) &&
+	    memcmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) &&
+	    memcmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN))
 		return false;
 
 	return true;
@@ -740,10 +740,10 @@ static int can_set_system_xattr(struct inode *inode, const char *name,
 static int can_set_xattr(struct inode *inode, const char *name,
 			 const void *value, size_t value_len)
 {
-	if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+	if (!memcmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
 		return can_set_system_xattr(inode, name, value, value_len);
 
-	if (!strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN)) {
+	if (!memcmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN)) {
 		/*
 		 * This makes sure that we aren't trying to set an
 		 * attribute in a different namespace by prefixing it
@@ -757,9 +757,9 @@ static int can_set_xattr(struct inode *inode, const char *name,
 	/*
 	 * Don't allow setting an attribute in an unknown namespace.
 	 */
-	if (strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) &&
-	    strncmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) &&
-	    strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN))
+	if (memcmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) &&
+	    memcmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) &&
+	    memcmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN))
 		return -EOPNOTSUPP;
 
 	return 0;
@@ -780,7 +780,7 @@ int __jfs_setxattr(tid_t tid, struct inode *inode, const char *name,
 	int rc;
 	int length;
 
-	if (strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN) == 0) {
+	if (memcmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN) == 0) {
 		os2name = kmalloc(namelen - XATTR_OS2_PREFIX_LEN + 1,
 				  GFP_KERNEL);
 		if (!os2name)
@@ -988,7 +988,7 @@ ssize_t jfs_getxattr(struct dentry *dentry, const char *name, void *data,
 {
 	int err;
 
-	if (strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN) == 0) {
+	if (memcmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN) == 0) {
 		/*
 		 * skip past "os2." prefix
 		 */
@@ -1011,7 +1011,7 @@ ssize_t jfs_getxattr(struct dentry *dentry, const char *name, void *data,
  */
 static inline int can_list(struct jfs_ea *ea)
 {
-	return (strncmp(ea->name, XATTR_TRUSTED_PREFIX,
+	return (memcmp(ea->name, XATTR_TRUSTED_PREFIX,
 			    XATTR_TRUSTED_PREFIX_LEN) ||
 		capable(CAP_SYS_ADMIN));
 }
diff --git a/fs/logfs/super.c b/fs/logfs/super.c
index 33435e4..ca9a179 100644
--- a/fs/logfs/super.c
+++ b/fs/logfs/super.c
@@ -603,7 +603,7 @@ static struct dentry *logfs_mount(struct file_system_type *type, int flags,
 
 	if (!devname)
 		err = logfs_get_sb_bdev(super, type, devname);
-	else if (strncmp(devname, "mtd", 3))
+	else if (memcmp(devname, "mtd", 3))
 		err = logfs_get_sb_bdev(super, type, devname);
 	else {
 		char *garbage;
diff --git a/fs/ncpfs/dir.c b/fs/ncpfs/dir.c
index f22b12e..50836ff 100644
--- a/fs/ncpfs/dir.c
+++ b/fs/ncpfs/dir.c
@@ -151,7 +151,7 @@ ncp_compare_dentry(struct dentry *dentry, struct qstr *a, struct qstr *b)
 		return 1;
 
 	if (ncp_case_sensitive(dentry))
-		return strncmp(a->name, b->name, a->len);
+		return memcmp(a->name, b->name, a->len);
 
 	return ncp_strnicmp(NCP_IO_TABLE(dentry), a->name, b->name, a->len);
 }
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index 8ea4a41..ef3714a 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -401,7 +401,7 @@ int nfs_same_file(struct dentry *dentry, struct nfs_entry *entry)
 	node = NFS_I(dentry->d_inode);
 	if (node->fh.size != entry->fh->size)
 		goto different;
-	if (strncmp(node->fh.data, entry->fh->data, node->fh.size) != 0)
+	if (memcmp(node->fh.data, entry->fh->data, node->fh.size) != 0)
 		goto different;
 	return 1;
 different:
diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c
index 3c2a172..79204bc 100644
--- a/fs/nfs/nfs4namespace.c
+++ b/fs/nfs/nfs4namespace.c
@@ -88,7 +88,7 @@ static int nfs4_validate_fspath(const struct vfsmount *mnt_parent,
 	if (IS_ERR(fs_path))
 		return PTR_ERR(fs_path);
 
-	if (strncmp(path, fs_path, strlen(fs_path)) != 0) {
+	if (memcmp(path, fs_path, strlen(fs_path)) != 0) {
 		dprintk("%s: path %s does not begin with fsroot %s\n",
 			__func__, path, fs_path);
 		return -ENOENT;
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index f35a94a..cbe3331 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -1614,7 +1614,7 @@ static char *nfsd4_path(struct svc_rqst *rqstp, struct svc_export *exp, __be32 *
 	path = exp->ex_pathname;
 
 	rootlen = strlen(rootpath);
-	if (strncmp(path, rootpath, rootlen)) {
+	if (memcmp(path, rootpath, rootlen)) {
 		dprintk("nfsd: fs_locations failed;"
 			"%s is not contained in %s\n", path, rootpath);
 		*stat = nfserr_notsupp;
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index c49f6de..71f5a2c 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -279,8 +279,8 @@ static void ocfs2_dx_dir_name_hash(struct inode *dir, const char *name, int len,
 	 * XXX: Is this really necessary, if the index is never looked
 	 * at by readdir? Is a hash value of '0' a bad idea?
 	 */
-	if ((len == 1 && !strncmp(".", name, 1)) ||
-	    (len == 2 && !strncmp("..", name, 2))) {
+	if ((len == 1 && !memcmp(".", name, 1)) ||
+	    (len == 2 && !memcmp("..", name, 2))) {
 		buf[0] = buf[1] = 0;
 		goto out;
 	}
@@ -2151,12 +2151,12 @@ static int ocfs2_empty_dir_filldir(void *priv, const char *name, int name_len,
 	 * entries). This allows us to double check for existing
 	 * entries which might not have been found in the index.
 	 */
-	if (name_len == 1 && !strncmp(".", name, 1) && pos == 0) {
+	if (name_len == 1 && !memcmp(".", name, 1) && pos == 0) {
 		p->seen_dot = 1;
 		return 0;
 	}
 
-	if (name_len == 2 && !strncmp("..", name, 2) &&
+	if (name_len == 2 && !memcmp("..", name, 2) &&
 	    pos == OCFS2_DIR_REC_LEN(1)) {
 		p->seen_dot_dot = 1;
 
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index faa2303..24dd2b0 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1991,9 +1991,9 @@ static int ocfs2_orphan_filldir(void *priv, const char *name, int name_len,
 	struct ocfs2_orphan_filldir_priv *p = priv;
 	struct inode *iter;
 
-	if (name_len == 1 && !strncmp(".", name, 1))
+	if (name_len == 1 && !memcmp(".", name, 1))
 		return 0;
-	if (name_len == 2 && !strncmp("..", name, 2))
+	if (name_len == 2 && !memcmp("..", name, 2))
 		return 0;
 
 	/* Skip bad inodes so that recovery can continue */
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c
index 252e7c8..792a351 100644
--- a/fs/ocfs2/stack_user.c
+++ b/fs/ocfs2/stack_user.c
@@ -186,7 +186,7 @@ static struct ocfs2_live_connection *ocfs2_connection_find(const char *name)
 
 	list_for_each_entry(c, &ocfs2_live_connection_list, oc_list) {
 		if ((c->oc_conn->cc_namelen == len) &&
-		    !strncmp(c->oc_conn->cc_name, name, len))
+		    !memcmp(c->oc_conn->cc_name, name, len))
 			return c;
 	}
 
@@ -269,7 +269,7 @@ static ssize_t ocfs2_control_validate_protocol(struct file *file,
 	if (ret)
 		return ret;
 
-	if (strncmp(kbuf, OCFS2_CONTROL_PROTO, OCFS2_CONTROL_PROTO_LEN))
+	if (memcmp(kbuf, OCFS2_CONTROL_PROTO, OCFS2_CONTROL_PROTO_LEN))
 		return -EINVAL;
 
 	ocfs2_control_set_handshake_state(file,
@@ -373,7 +373,7 @@ static int ocfs2_control_do_setnode_msg(struct file *file,
 	    OCFS2_CONTROL_HANDSHAKE_PROTOCOL)
 		return -EINVAL;
 
-	if (strncmp(msg->tag, OCFS2_CONTROL_MESSAGE_SETNODE_OP,
+	if (memcmp(msg->tag, OCFS2_CONTROL_MESSAGE_SETNODE_OP,
 		    OCFS2_CONTROL_MESSAGE_OP_LEN))
 		return -EINVAL;
 
@@ -406,7 +406,7 @@ static int ocfs2_control_do_setversion_msg(struct file *file,
 	    OCFS2_CONTROL_HANDSHAKE_PROTOCOL)
 		return -EINVAL;
 
-	if (strncmp(msg->tag, OCFS2_CONTROL_MESSAGE_SETVERSION_OP,
+	if (memcmp(msg->tag, OCFS2_CONTROL_MESSAGE_SETVERSION_OP,
 		    OCFS2_CONTROL_MESSAGE_OP_LEN))
 		return -EINVAL;
 
@@ -453,7 +453,7 @@ static int ocfs2_control_do_down_msg(struct file *file,
 	    OCFS2_CONTROL_HANDSHAKE_VALID)
 		return -EINVAL;
 
-	if (strncmp(msg->tag, OCFS2_CONTROL_MESSAGE_DOWN_OP,
+	if (memcmp(msg->tag, OCFS2_CONTROL_MESSAGE_DOWN_OP,
 		    OCFS2_CONTROL_MESSAGE_OP_LEN))
 		return -EINVAL;
 
@@ -492,15 +492,15 @@ static ssize_t ocfs2_control_message(struct file *file,
 		goto out;
 
 	if ((count == OCFS2_CONTROL_MESSAGE_SETNODE_TOTAL_LEN) &&
-	    !strncmp(msg.tag, OCFS2_CONTROL_MESSAGE_SETNODE_OP,
+	    !memcmp(msg.tag, OCFS2_CONTROL_MESSAGE_SETNODE_OP,
 		     OCFS2_CONTROL_MESSAGE_OP_LEN))
 		ret = ocfs2_control_do_setnode_msg(file, &msg.u_setn);
 	else if ((count == OCFS2_CONTROL_MESSAGE_SETVERSION_TOTAL_LEN) &&
-		 !strncmp(msg.tag, OCFS2_CONTROL_MESSAGE_SETVERSION_OP,
+		 !memcmp(msg.tag, OCFS2_CONTROL_MESSAGE_SETVERSION_OP,
 			  OCFS2_CONTROL_MESSAGE_OP_LEN))
 		ret = ocfs2_control_do_setversion_msg(file, &msg.u_setv);
 	else if ((count == OCFS2_CONTROL_MESSAGE_DOWN_TOTAL_LEN) &&
-		 !strncmp(msg.tag, OCFS2_CONTROL_MESSAGE_DOWN_OP,
+		 !memcmp(msg.tag, OCFS2_CONTROL_MESSAGE_DOWN_OP,
 			  OCFS2_CONTROL_MESSAGE_OP_LEN))
 		ret = ocfs2_control_do_down_msg(file, &msg.u_down);
 	else
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index 39abf89..61dd94f 100644
--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -576,7 +576,7 @@ static ssize_t ocfs2_cluster_stack_store(struct kobject *kobj,
 
 	spin_lock(&ocfs2_stack_lock);
 	if (active_stack) {
-		if (!strncmp(buf, cluster_stack_name, len))
+		if (!memcmp(buf, cluster_stack_name, len))
 			ret = count;
 		else
 			ret = -EBUSY;
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index cfeab7c..901aef0 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -877,7 +877,7 @@ static int ocfs2_verify_userspace_stack(struct ocfs2_super *osb,
 	}
 
 	if (ocfs2_userspace_stack(osb) &&
-	    strncmp(osb->osb_cluster_stack, mopt->cluster_stack,
+	    memcmp(osb->osb_cluster_stack, mopt->cluster_stack,
 		    OCFS2_STACK_LABEL_LEN)) {
 		mlog(ML_ERROR,
 		     "cluster stack passed to mount (\"%s\") does not "
diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c
index 393f3f6..50fbc60 100644
--- a/fs/omfs/dir.c
+++ b/fs/omfs/dir.c
@@ -53,7 +53,7 @@ static struct buffer_head *omfs_scan_list(struct inode *dir, u64 block,
 			goto err;
 		}
 
-		if (strncmp(oi->i_name, name, namelen) == 0)
+		if (memcmp(oi->i_name, name, namelen) == 0)
 			return bh;
 
 		*prev_block = block;
diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c
index 911e61f..e355c59 100644
--- a/fs/openpromfs/inode.c
+++ b/fs/openpromfs/inode.c
@@ -202,7 +202,7 @@ static struct dentry *openpromfs_lookup(struct inode *dir, struct dentry *dentry
 		int n = strlen(child->path_component_name);
 
 		if (len == n &&
-		    !strncmp(child->path_component_name, name, len)) {
+		    !memcmp(child->path_component_name, name, len)) {
 			ent_type = op_inode_node;
 			ent_data.node = child;
 			ino = child->unique_id;
@@ -215,7 +215,7 @@ static struct dentry *openpromfs_lookup(struct inode *dir, struct dentry *dentry
 	while (prop) {
 		int n = strlen(prop->name);
 
-		if (len == n && !strncmp(prop->name, name, len)) {
+		if (len == n && !memcmp(prop->name, name, len)) {
 			ent_type = op_inode_prop;
 			ent_data.prop = prop;
 			ino = prop->unique_id;
@@ -246,7 +246,7 @@ found:
 		break;
 	case op_inode_prop:
 		if (!strcmp(dp->name, "options") && (len == 17) &&
-		    !strncmp (name, "security-password", 17))
+		    !memcmp (name, "security-password", 17))
 			inode->i_mode = S_IFREG | S_IRUSR | S_IWUSR;
 		else
 			inode->i_mode = S_IFREG | S_IRUGO;
diff --git a/fs/partitions/ibm.c b/fs/partitions/ibm.c
index d513a07..f185227 100644
--- a/fs/partitions/ibm.c
+++ b/fs/partitions/ibm.c
@@ -139,7 +139,7 @@ int ibm_partition(struct parsed_partitions *state)
 	 * unformated disks we do not have to care about
 	 */
 	if (info->format == DASD_FORMAT_LDL) {
-		if (strncmp(type, "CMS1", 4) == 0) {
+		if (memcmp(type, "CMS1", 4) == 0) {
 			/*
 			 * VM style CMS1 labeled disk
 			 */
@@ -161,7 +161,7 @@ int ibm_partition(struct parsed_partitions *state)
 			put_partition(state, 1, offset*(blocksize >> 9),
 				      size-offset*(blocksize >> 9));
 		} else {
-			if (strncmp(type, "LNX1", 4) == 0) {
+			if (memcmp(type, "LNX1", 4) == 0) {
 				snprintf(tmp, sizeof(tmp), "LNX1/%8s:", name);
 				strlcat(state->pp_buf, tmp, PAGE_SIZE);
 				if (label->lnx.ldl_version == 0xf2) {
@@ -200,7 +200,7 @@ int ibm_partition(struct parsed_partitions *state)
 		 * check if VOL1 label is available
 		 * if not, something is wrong, skipping partition detection
 		 */
-		if (strncmp(type, "VOL1",  4) == 0) {
+		if (memcmp(type, "VOL1",  4) == 0) {
 			snprintf(tmp, sizeof(tmp), "VOL1/%8s:", name);
 			strlcat(state->pp_buf, tmp, PAGE_SIZE);
 			/*
diff --git a/fs/partitions/ldm.c b/fs/partitions/ldm.c
index 789c625..208c4ed 100644
--- a/fs/partitions/ldm.c
+++ b/fs/partitions/ldm.c
@@ -200,7 +200,7 @@ static bool ldm_parse_tocblock (const u8 *data, struct tocblock *toc)
 	toc->bitmap1_start = get_unaligned_be64(data + 0x2E);
 	toc->bitmap1_size  = get_unaligned_be64(data + 0x36);
 
-	if (strncmp (toc->bitmap1_name, TOC_BITMAP1,
+	if (memcmp (toc->bitmap1_name, TOC_BITMAP1,
 			sizeof (toc->bitmap1_name)) != 0) {
 		ldm_crit ("TOCBLOCK's first bitmap is '%s', should be '%s'.",
 				TOC_BITMAP1, toc->bitmap1_name);
@@ -210,7 +210,7 @@ static bool ldm_parse_tocblock (const u8 *data, struct tocblock *toc)
 	toc->bitmap2_name[sizeof (toc->bitmap2_name) - 1] = 0;
 	toc->bitmap2_start = get_unaligned_be64(data + 0x50);
 	toc->bitmap2_size  = get_unaligned_be64(data + 0x58);
-	if (strncmp (toc->bitmap2_name, TOC_BITMAP2,
+	if (memcmp (toc->bitmap2_name, TOC_BITMAP2,
 			sizeof (toc->bitmap2_name)) != 0) {
 		ldm_crit ("TOCBLOCK's second bitmap is '%s', should be '%s'.",
 				TOC_BITMAP2, toc->bitmap2_name);
@@ -301,9 +301,9 @@ static bool ldm_compare_tocblocks (const struct tocblock *toc1,
 		(toc1->bitmap1_size  == toc2->bitmap1_size)	&&
 		(toc1->bitmap2_start == toc2->bitmap2_start)	&&
 		(toc1->bitmap2_size  == toc2->bitmap2_size)	&&
-		!strncmp (toc1->bitmap1_name, toc2->bitmap1_name,
+		!memcmp (toc1->bitmap1_name, toc2->bitmap1_name,
 			sizeof (toc1->bitmap1_name))		&&
-		!strncmp (toc1->bitmap2_name, toc2->bitmap2_name,
+		!memcmp (toc1->bitmap2_name, toc2->bitmap2_name,
 			sizeof (toc1->bitmap2_name)));
 }
 
diff --git a/fs/proc/proc_devtree.c b/fs/proc/proc_devtree.c
index d9396a4..d70ba1c 100644
--- a/fs/proc/proc_devtree.c
+++ b/fs/proc/proc_devtree.c
@@ -70,12 +70,12 @@ __proc_device_tree_add_prop(struct proc_dir_entry *de, struct property *pp,
 	 * at the beginning of the list.  So we rearrange them.
 	 */
 	ent = proc_create_data(name,
-			       strncmp(name, "security-", 9) ? S_IRUGO : S_IRUSR,
+			       memcmp(name, "security-", 9) ? S_IRUGO : S_IRUSR,
 			       de, &property_proc_fops, pp);
 	if (ent == NULL)
 		return NULL;
 
-	if (!strncmp(name, "security-", 9))
+	if (!memcmp(name, "security-", 9))
 		ent->size = 0; /* don't leak number of password chars */
 	else
 		ent->size = pp->length;
diff --git a/fs/qnx4/namei.c b/fs/qnx4/namei.c
index 275327b..f2249bd 100644
--- a/fs/qnx4/namei.c
+++ b/fs/qnx4/namei.c
@@ -49,7 +49,7 @@ static int qnx4_match(int len, const char *name,
 	if (len != thislen) {
 		return 0;
 	}
-	if (strncmp(name, de->di_fname, len) == 0) {
+	if (memcmp(name, de->di_fname, len) == 0) {
 		if ((de->di_status & (QNX4_FILE_USED|QNX4_FILE_LINK)) != 0) {
 			return 1;
 		}
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index b243117..73c42da 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -37,19 +37,19 @@ static const char reiserfs_jr_magic_string[] = REISER2FS_JR_SUPER_MAGIC_STRING;
 
 int is_reiserfs_3_5(struct reiserfs_super_block *rs)
 {
-	return !strncmp(rs->s_v1.s_magic, reiserfs_3_5_magic_string,
+	return !memcmp(rs->s_v1.s_magic, reiserfs_3_5_magic_string,
 			strlen(reiserfs_3_5_magic_string));
 }
 
 int is_reiserfs_3_6(struct reiserfs_super_block *rs)
 {
-	return !strncmp(rs->s_v1.s_magic, reiserfs_3_6_magic_string,
+	return !memcmp(rs->s_v1.s_magic, reiserfs_3_6_magic_string,
 			strlen(reiserfs_3_6_magic_string));
 }
 
 int is_reiserfs_jr(struct reiserfs_super_block *rs)
 {
-	return !strncmp(rs->s_v1.s_magic, reiserfs_jr_magic_string,
+	return !memcmp(rs->s_v1.s_magic, reiserfs_jr_magic_string,
 			strlen(reiserfs_jr_magic_string));
 }
 
@@ -759,7 +759,7 @@ static int reiserfs_getopt(struct super_block *s, char **cur, opt_desc_t * opts,
 		(*cur)++;
 	}
 
-	if (!strncmp(p, "alloc=", 6)) {
+	if (!memcmp(p, "alloc=", 6)) {
 		/* Ugly special case, probably we should redo options parser so that
 		   it can understand several arguments for some options, also so that
 		   it can fill several bitfields with option values. */
@@ -772,7 +772,7 @@ static int reiserfs_getopt(struct super_block *s, char **cur, opt_desc_t * opts,
 
 	/* for every option in the list */
 	for (opt = opts; opt->option_name; opt++) {
-		if (!strncmp(p, opt->option_name, strlen(opt->option_name))) {
+		if (!memcmp(p, opt->option_name, strlen(opt->option_name))) {
 			if (bit_flags) {
 				if (opt->clrmask ==
 				    (1 << REISERFS_UNSUPPORTED_OPT))
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index 5d04a78..96cf91e 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -730,7 +730,7 @@ find_xattr_handler_prefix(const struct xattr_handler **handlers,
 		return NULL;
 
 	for_each_xattr_handler(handlers, xah) {
-		if (strncmp(xah->prefix, name, strlen(xah->prefix)) == 0)
+		if (memcmp(xah->prefix, name, strlen(xah->prefix)) == 0)
 			break;
 	}
 
diff --git a/fs/squashfs/namei.c b/fs/squashfs/namei.c
index 7a9464d..3c35b3b 100644
--- a/fs/squashfs/namei.c
+++ b/fs/squashfs/namei.c
@@ -197,7 +197,7 @@ static struct dentry *squashfs_lookup(struct inode *dir, struct dentry *dentry,
 			if (name[0] < dire->name[0])
 				goto exit_lookup;
 
-			if (len == size && !strncmp(name, dire->name, len)) {
+			if (len == size && !memcmp(name, dire->name, len)) {
 				unsigned int blk, off, ino_num;
 				long long ino;
 				blk = le32_to_cpu(dirh.start_block);
diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c
index 3876c36..855754e 100644
--- a/fs/squashfs/xattr.c
+++ b/fs/squashfs/xattr.c
@@ -155,7 +155,7 @@ static int squashfs_xattr_get(struct inode *inode, int name_index,
 			goto failed;
 
 		if (prefix == name_index && name_size == name_len &&
-					strncmp(target, name, name_size) == 0) {
+					memcmp(target, name, name_size) == 0) {
 			/* found xattr */
 			if (type & SQUASHFS_XATTR_VALUE_OOL) {
 				__le64 xattr_val;
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
index cffb1fd..86dbc5f 100644
--- a/fs/sysfs/inode.c
+++ b/fs/sysfs/inode.c
@@ -163,7 +163,7 @@ int sysfs_setxattr(struct dentry *dentry, const char *name, const void *value,
 	if (!sd)
 		return -EINVAL;
 
-	if (!strncmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN)) {
+	if (!memcmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN)) {
 		const char *suffix = name + XATTR_SECURITY_PREFIX_LEN;
 		error = security_inode_setsecurity(dentry->d_inode, suffix,
 						value, size, flags);
diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c
index c74400f..d79c17d 100644
--- a/fs/ubifs/xattr.c
+++ b/fs/ubifs/xattr.c
@@ -257,17 +257,17 @@ static int check_namespace(const struct qstr *nm)
 	if (nm->len > UBIFS_MAX_NLEN)
 		return -ENAMETOOLONG;
 
-	if (!strncmp(nm->name, XATTR_TRUSTED_PREFIX,
+	if (!memcmp(nm->name, XATTR_TRUSTED_PREFIX,
 		     XATTR_TRUSTED_PREFIX_LEN)) {
 		if (nm->name[sizeof(XATTR_TRUSTED_PREFIX) - 1] == '\0')
 			return -EINVAL;
 		type = TRUSTED_XATTR;
-	} else if (!strncmp(nm->name, XATTR_USER_PREFIX,
+	} else if (!memcmp(nm->name, XATTR_USER_PREFIX,
 				      XATTR_USER_PREFIX_LEN)) {
 		if (nm->name[XATTR_USER_PREFIX_LEN] == '\0')
 			return -EINVAL;
 		type = USER_XATTR;
-	} else if (!strncmp(nm->name, XATTR_SECURITY_PREFIX,
+	} else if (!memcmp(nm->name, XATTR_SECURITY_PREFIX,
 				     XATTR_SECURITY_PREFIX_LEN)) {
 		if (nm->name[sizeof(XATTR_SECURITY_PREFIX) - 1] == '\0')
 			return -EINVAL;
diff --git a/fs/udf/namei.c b/fs/udf/namei.c
index 6d8dc02..c993d81 100644
--- a/fs/udf/namei.c
+++ b/fs/udf/namei.c
@@ -266,7 +266,7 @@ static struct dentry *udf_lookup(struct inode *dir, struct dentry *dentry,
 	lock_kernel();
 #ifdef UDF_RECOVERY
 	/* temporary shorthand for specifying files by inode number */
-	if (!strncmp(dentry->d_name.name, ".B=", 3)) {
+	if (!memcmp(dentry->d_name.name, ".B=", 3)) {
 		struct kernel_lb_addr lb = {
 			.logicalBlockNum = 0,
 			.partitionReferenceNum =
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 4a5c7c6..368efa9 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -631,7 +631,7 @@ static loff_t udf_check_vsd(struct super_block *sb)
 		if (vsd->stdIdent[0] == 0) {
 			brelse(bh);
 			break;
-		} else if (!strncmp(vsd->stdIdent, VSD_STD_ID_CD001,
+		} else if (!memcmp(vsd->stdIdent, VSD_STD_ID_CD001,
 				    VSD_STD_ID_LEN)) {
 			switch (vsd->structType) {
 			case 0:
@@ -658,17 +658,17 @@ static loff_t udf_check_vsd(struct super_block *sb)
 					  vsd->structType);
 				break;
 			}
-		} else if (!strncmp(vsd->stdIdent, VSD_STD_ID_BEA01,
+		} else if (!memcmp(vsd->stdIdent, VSD_STD_ID_BEA01,
 				    VSD_STD_ID_LEN))
 			; /* nothing */
-		else if (!strncmp(vsd->stdIdent, VSD_STD_ID_TEA01,
+		else if (!memcmp(vsd->stdIdent, VSD_STD_ID_TEA01,
 				    VSD_STD_ID_LEN)) {
 			brelse(bh);
 			break;
-		} else if (!strncmp(vsd->stdIdent, VSD_STD_ID_NSR02,
+		} else if (!memcmp(vsd->stdIdent, VSD_STD_ID_NSR02,
 				    VSD_STD_ID_LEN))
 			nsr02 = sector;
-		else if (!strncmp(vsd->stdIdent, VSD_STD_ID_NSR03,
+		else if (!memcmp(vsd->stdIdent, VSD_STD_ID_NSR03,
 				    VSD_STD_ID_LEN))
 			nsr03 = sector;
 		brelse(bh);
@@ -1279,7 +1279,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
 		} else if (type == 2) {
 			struct udfPartitionMap2 *upm2 =
 						(struct udfPartitionMap2 *)gpm;
-			if (!strncmp(upm2->partIdent.ident, UDF_ID_VIRTUAL,
+			if (!memcmp(upm2->partIdent.ident, UDF_ID_VIRTUAL,
 						strlen(UDF_ID_VIRTUAL))) {
 				u16 suf =
 					le16_to_cpu(((__le16 *)upm2->partIdent.
@@ -1295,7 +1295,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
 					map->s_partition_func =
 							udf_get_pblock_virt20;
 				}
-			} else if (!strncmp(upm2->partIdent.ident,
+			} else if (!memcmp(upm2->partIdent.ident,
 						UDF_ID_SPARABLE,
 						strlen(UDF_ID_SPARABLE))) {
 				uint32_t loc;
@@ -1320,7 +1320,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
 						continue;
 
 					st = (struct sparingTable *)bh2->b_data;
-					if (ident != 0 || strncmp(
+					if (ident != 0 || memcmp(
 						st->sparingIdent.ident,
 						UDF_ID_SPARING,
 						strlen(UDF_ID_SPARING))) {
@@ -1330,7 +1330,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
 					}
 				}
 				map->s_partition_func = udf_get_pblock_spar15;
-			} else if (!strncmp(upm2->partIdent.ident,
+			} else if (!memcmp(upm2->partIdent.ident,
 						UDF_ID_METADATA,
 						strlen(UDF_ID_METADATA))) {
 				struct udf_meta_data *mdata =
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c
index dbc9099..35f32e7 100644
--- a/fs/ufs/dir.c
+++ b/fs/ufs/dir.c
@@ -26,7 +26,7 @@
 #include "util.h"
 
 /*
- * NOTE! unlike strncmp, ufs_match returns 1 for success, 0 for failure.
+ * NOTE! unlike memcmp, ufs_match returns 1 for success, 0 for failure.
  *
  * len <= UFS_MAXNAMLEN and de != NULL are guaranteed by caller.
  */
diff --git a/fs/xattr.c b/fs/xattr.c
index 01bb813..a22581f 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -41,21 +41,21 @@ xattr_permission(struct inode *inode, const char *name, int mask)
 	 * No restriction for security.* and system.* from the VFS.  Decision
 	 * on these is left to the underlying filesystem / security module.
 	 */
-	if (!strncmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) ||
-	    !strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
+	if (!memcmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN) ||
+	    !memcmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
 		return 0;
 
 	/*
 	 * The trusted.* namespace can only be accessed by a privileged user.
 	 */
-	if (!strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN))
+	if (!memcmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN))
 		return (capable(CAP_SYS_ADMIN) ? 0 : -EPERM);
 
 	/* In user.* namespace, only regular files and directories can have
 	 * extended attributes. For sticky directories, only the owner and
 	 * privileged user can write attributes.
 	 */
-	if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
+	if (!memcmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
 		if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode))
 			return -EPERM;
 		if (S_ISDIR(inode->i_mode) && (inode->i_mode & S_ISVTX) &&
@@ -95,7 +95,7 @@ int __vfs_setxattr_noperm(struct dentry *dentry, const char *name,
 			security_inode_post_setxattr(dentry, name, value,
 						     size, flags);
 		}
-	} else if (!strncmp(name, XATTR_SECURITY_PREFIX,
+	} else if (!memcmp(name, XATTR_SECURITY_PREFIX,
 				XATTR_SECURITY_PREFIX_LEN)) {
 		const char *suffix = name + XATTR_SECURITY_PREFIX_LEN;
 		error = security_inode_setsecurity(inode, suffix, value,
@@ -173,7 +173,7 @@ vfs_getxattr(struct dentry *dentry, const char *name, void *value, size_t size)
 	if (error)
 		return error;
 
-	if (!strncmp(name, XATTR_SECURITY_PREFIX,
+	if (!memcmp(name, XATTR_SECURITY_PREFIX,
 				XATTR_SECURITY_PREFIX_LEN)) {
 		const char *suffix = name + XATTR_SECURITY_PREFIX_LEN;
 		int ret = xattr_getsecurity(inode, suffix, value, size);
diff --git a/include/linux/string.h b/include/linux/string.h
index a716ee2..4da0786 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -140,7 +140,7 @@ extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos,
  */
 static inline bool strstarts(const char *str, const char *prefix)
 {
-	return strncmp(str, prefix, strlen(prefix)) == 0;
+	return memcmp(str, prefix, strlen(prefix)) == 0;
 }
 #endif
 #endif /* _LINUX_STRING_H_ */
diff --git a/init/do_mounts.c b/init/do_mounts.c
index 830aaec..c69a895 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -141,7 +141,7 @@ dev_t name_to_dev_t(char *name)
 	int part;
 
 #ifdef CONFIG_BLOCK
-	if (strncmp(name, "PARTUUID=", 9) == 0) {
+	if (memcmp(name, "PARTUUID=", 9) == 0) {
 		name += 9;
 		if (strlen(name) != 36)
 			goto fail;
@@ -152,7 +152,7 @@ dev_t name_to_dev_t(char *name)
 	}
 #endif
 
-	if (strncmp(name, "/dev/", 5) != 0) {
+	if (memcmp(name, "/dev/", 5) != 0) {
 		unsigned maj, min;
 
 		if (sscanf(name, "%u:%u", &maj, &min) == 2) {
@@ -456,13 +456,13 @@ void __init prepare_namespace(void)
 
 	if (saved_root_name[0]) {
 		root_device_name = saved_root_name;
-		if (!strncmp(root_device_name, "mtd", 3) ||
-		    !strncmp(root_device_name, "ubi", 3)) {
+		if (!memcmp(root_device_name, "mtd", 3) ||
+		    !memcmp(root_device_name, "ubi", 3)) {
 			mount_block_root(root_device_name, root_mountflags);
 			goto out;
 		}
 		ROOT_DEV = name_to_dev_t(root_device_name);
-		if (strncmp(root_device_name, "/dev/", 5) == 0)
+		if (memcmp(root_device_name, "/dev/", 5) == 0)
 			root_device_name += 5;
 	}
 
diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
index 32c4799..00a2fac 100644
--- a/init/do_mounts_md.c
+++ b/init/do_mounts_md.c
@@ -146,7 +146,7 @@ static void __init md_setup_drive(void)
 				*p++ = 0;
 
 			dev = name_to_dev_t(devname);
-			if (strncmp(devname, "/dev/", 5) == 0)
+			if (memcmp(devname, "/dev/", 5) == 0)
 				devname += 5;
 			snprintf(comp_name, 63, "/dev/%s", devname);
 			rdev = bstat(comp_name);
@@ -254,13 +254,13 @@ static int __init raid_setup(char *str)
 			wlen = (comma-str)-pos;
 		else	wlen = (len-1)-pos;
 
-		if (!strncmp(str, "noautodetect", wlen))
+		if (!memcmp(str, "noautodetect", wlen))
 			raid_noautodetect = 1;
-		if (!strncmp(str, "autodetect", wlen))
+		if (!memcmp(str, "autodetect", wlen))
 			raid_noautodetect = 0;
-		if (strncmp(str, "partitionable", wlen)==0)
+		if (memcmp(str, "partitionable", wlen)==0)
 			raid_autopart = 1;
-		if (strncmp(str, "part", wlen)==0)
+		if (memcmp(str, "part", wlen)==0)
 			raid_autopart = 1;
 		pos += wlen+1;
 	}
diff --git a/init/main.c b/init/main.c
index 8646401..28c97aa 100644
--- a/init/main.c
+++ b/init/main.c
@@ -210,7 +210,7 @@ static int __init obsolete_checksetup(char *line)
 	p = __setup_start;
 	do {
 		int n = strlen(p->str);
-		if (!strncmp(line, p->str, n)) {
+		if (!memcmp(line, p->str, n)) {
 			if (p->early) {
 				/* Already done in parse_early_param?
 				 * (Needs exact match on param part).
@@ -300,7 +300,7 @@ static int __init unknown_bootoption(char *param, char *val)
 				panic_later = "Too many boot env vars at `%s'";
 				panic_param = param;
 			}
-			if (!strncmp(param, envp_init[i], val - param))
+			if (!memcmp(param, envp_init[i], val - param))
 				break;
 		}
 		envp_init[i] = param;
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
index add2819..096f6a0 100644
--- a/kernel/auditfilter.c
+++ b/kernel/auditfilter.c
@@ -1226,7 +1226,7 @@ int audit_compare_dname_path(const char *dname, const char *path,
 	/* return length of path's directory component */
 	if (dirlen)
 		*dirlen = p - path;
-	return strncmp(p, dname, dlen);
+	return memcmp(p, dname, dlen);
 }
 
 static int audit_filter_user_rules(struct netlink_skb_parms *cb,
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 66a416b..edf55d8 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1111,7 +1111,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
 			opts->clone_children = true;
 			continue;
 		}
-		if (!strncmp(token, "release_agent=", 14)) {
+		if (!memcmp(token, "release_agent=", 14)) {
 			/* Specifying two release agents is forbidden */
 			if (opts->release_agent)
 				return -EINVAL;
@@ -1121,7 +1121,7 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
 				return -ENOMEM;
 			continue;
 		}
-		if (!strncmp(token, "name=", 5)) {
+		if (!memcmp(token, "name=", 5)) {
 			const char *name = token + 5;
 			/* Can't specify an empty name */
 			if (!strlen(name))
diff --git a/kernel/debug/gdbstub.c b/kernel/debug/gdbstub.c
index 481a7bd..15933f4 100644
--- a/kernel/debug/gdbstub.c
+++ b/kernel/debug/gdbstub.c
@@ -761,7 +761,7 @@ static void gdb_cmd_query(struct kgdb_state *ks)
 		break;
 #ifdef CONFIG_KGDB_KDB
 	case 'R':
-		if (strncmp(remcom_in_buffer, "qRcmd,", 6) == 0) {
+		if (memcmp(remcom_in_buffer, "qRcmd,", 6) == 0) {
 			int len = strlen(remcom_in_buffer + 6);
 
 			if ((len % 2) != 0) {
diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c
index 96fdaac..453a2c3 100644
--- a/kernel/debug/kdb/kdb_io.c
+++ b/kernel/debug/kdb/kdb_io.c
@@ -34,9 +34,9 @@ int kdb_trap_printk;
 static void kgdb_transition_check(char *buffer)
 {
 	int slen = strlen(buffer);
-	if (strncmp(buffer, "$?#3f", slen) != 0 &&
-	    strncmp(buffer, "$qSupported#37", slen) != 0 &&
-	    strncmp(buffer, "+$qSupported#37", slen) != 0) {
+	if (memcmp(buffer, "$?#3f", slen) != 0 &&
+	    memcmp(buffer, "$qSupported#37", slen) != 0 &&
+	    memcmp(buffer, "+$qSupported#37", slen) != 0) {
 		KDB_STATE_SET(KGDB_TRANS);
 		kdb_printf("%s", buffer);
 	}
@@ -517,16 +517,16 @@ static int kdb_search_string(char *searched, char *searchfor)
 	if (kdb_grep_leading && kdb_grep_trailing && len1 != len2)
 		return 0;
 	if (kdb_grep_leading) {
-		if (!strncmp(searched, searchfor, len2))
+		if (!memcmp(searched, searchfor, len2))
 			return 1;
 	} else if (kdb_grep_trailing) {
-		if (!strncmp(searched+len1-len2, searchfor, len2))
+		if (!memcmp(searched+len1-len2, searchfor, len2))
 			return 1;
 	} else {
 		firstchar = *searchfor;
 		cp = searched;
 		while ((cp = strchr(cp, firstchar))) {
-			if (!strncmp(cp, searchfor, len2))
+			if (!memcmp(cp, searchfor, len2))
 				return 1;
 			cp++;
 		}
@@ -614,7 +614,7 @@ int vkdb_printf(const char *fmt, va_list ap)
 				 */
 				cp2 = kdb_buffer;
 				len = strlen(kdb_prompt_str);
-				if (!strncmp(cp2, kdb_prompt_str, len)) {
+				if (!memcmp(cp2, kdb_prompt_str, len)) {
 					/*
 					 * We're about to start a new
 					 * command, so we can go back
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
index a6e7297..cd42cfe 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -207,7 +207,7 @@ char *kdbgetenv(const char *match)
 		if (!e)
 			continue;
 
-		if ((strncmp(match, e, matchlen) == 0)
+		if ((memcmp(match, e, matchlen) == 0)
 		 && ((e[matchlen] == '\0')
 		   || (e[matchlen] == '='))) {
 			char *cp = strchr(e, '=');
@@ -404,7 +404,7 @@ int kdb_set(int argc, const char **argv)
 
 	for (i = 0; i < __nenv; i++) {
 		if (__env[i]
-		 && ((strncmp(__env[i], argv[1], varlen) == 0)
+		 && ((memcmp(__env[i], argv[1], varlen) == 0)
 		   && ((__env[i][varlen] == '\0')
 		    || (__env[i][varlen] == '=')))) {
 			__env[i] = ep;
@@ -769,7 +769,7 @@ static void parse_grep(const char *str)
 	cp++;
 	while (isspace(*cp))
 		cp++;
-	if (strncmp(cp, "grep ", 5)) {
+	if (memcmp(cp, "grep ", 5)) {
 		kdb_printf("invalid 'pipe', see grephelp\n");
 		return;
 	}
@@ -955,7 +955,7 @@ int kdb_parse(const char *cmdstr)
 
 			if (tp->cmd_minlen
 			 && (strlen(argv[0]) <= tp->cmd_minlen)) {
-				if (strncmp(argv[0],
+				if (memcmp(argv[0],
 					    tp->cmd_name,
 					    tp->cmd_minlen) == 0) {
 					break;
@@ -975,7 +975,7 @@ int kdb_parse(const char *cmdstr)
 	if (i == kdb_max_commands) {
 		for_each_kdbcmd(tp, i) {
 			if (tp->cmd_name) {
-				if (strncmp(argv[0],
+				if (memcmp(argv[0],
 					    tp->cmd_name,
 					    strlen(tp->cmd_name)) == 0) {
 					break;
diff --git a/kernel/debug/kdb/kdb_support.c b/kernel/debug/kdb/kdb_support.c
index 6b2485d..7fa68c9 100644
--- a/kernel/debug/kdb/kdb_support.c
+++ b/kernel/debug/kdb/kdb_support.c
@@ -191,7 +191,7 @@ int kallsyms_symbol_complete(char *prefix_name, int max_len)
 	const char *name;
 
 	while ((name = kdb_walk_kallsyms(&pos))) {
-		if (strncmp(name, prefix_name, prefix_len) == 0) {
+		if (memcmp(name, prefix_name, prefix_len) == 0) {
 			strcpy(ks_namebuf, name);
 			/* Work out the longest name that matches the prefix */
 			if (++number == 1) {
@@ -235,7 +235,7 @@ int kallsyms_symbol_next(char *prefix_name, int flag)
 		pos = 0;
 
 	while ((name = kdb_walk_kallsyms(&pos))) {
-		if (strncmp(name, prefix_name, prefix_len) == 0) {
+		if (memcmp(name, prefix_name, prefix_len) == 0) {
 			strncpy(prefix_name, name, strlen(name)+1);
 			return 1;
 		}
diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c
index 9bd0934..bf11351 100644
--- a/kernel/gcov/fs.c
+++ b/kernel/gcov/fs.c
@@ -332,7 +332,7 @@ static char *get_link_target(const char *filename, const struct gcov_link *ext)
 	const char *rel;
 	char *result;
 
-	if (strncmp(filename, objtree, strlen(objtree)) == 0) {
+	if (memcmp(filename, objtree, strlen(objtree)) == 0) {
 		rel = filename + strlen(objtree) + 1;
 		if (ext->dir == SRC_TREE)
 			result = link_target(srctree, rel, ext->ext);
@@ -354,7 +354,7 @@ static char *get_link_target(const char *filename, const struct gcov_link *ext)
  */
 static const char *deskew(const char *basename)
 {
-	if (strncmp(basename, SKEW_PREFIX, sizeof(SKEW_PREFIX) - 1) == 0)
+	if (memcmp(basename, SKEW_PREFIX, sizeof(SKEW_PREFIX) - 1) == 0)
 		return basename + sizeof(SKEW_PREFIX) - 1;
 	return basename;
 }
diff --git a/kernel/module.c b/kernel/module.c
index d190664..8df3d38 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1841,7 +1841,7 @@ static char *get_modinfo(struct load_info *info, const char *tag)
 	unsigned long size = infosec->sh_size;
 
 	for (p = (char *)infosec->sh_addr; p; p = next_string(p, &size)) {
-		if (strncmp(p, tag, taglen) == 0 && p[taglen] == '=')
+		if (memcmp(p, tag, taglen) == 0 && p[taglen] == '=')
 			return p + taglen + 1;
 	}
 	return NULL;
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index 657272e..7c01827 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -878,7 +878,7 @@ static ssize_t disk_store(struct kobject *kobj, struct kobj_attribute *attr,
 	mutex_lock(&pm_mutex);
 	for (i = HIBERNATION_FIRST; i <= HIBERNATION_MAX; i++) {
 		if (len == strlen(hibernation_modes[i])
-		    && !strncmp(buf, hibernation_modes[i], len)) {
+		    && !memcmp(buf, hibernation_modes[i], len)) {
 			mode = i;
 			break;
 		}
@@ -1009,9 +1009,9 @@ static int __init resume_offset_setup(char *str)
 
 static int __init hibernate_setup(char *str)
 {
-	if (!strncmp(str, "noresume", 8))
+	if (!memcmp(str, "noresume", 8))
 		noresume = 1;
-	else if (!strncmp(str, "nocompress", 10))
+	else if (!memcmp(str, "nocompress", 10))
 		nocompress = 1;
 	return 1;
 }
diff --git a/kernel/power/main.c b/kernel/power/main.c
index 7b5db6a..188f62f 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -119,7 +119,7 @@ static ssize_t pm_test_store(struct kobject *kobj, struct kobj_attribute *attr,
 
 	level = TEST_FIRST;
 	for (s = &pm_tests[level]; level <= TEST_MAX; s++, level++)
-		if (*s && len == strlen(*s) && !strncmp(buf, *s, len)) {
+		if (*s && len == strlen(*s) && !memcmp(buf, *s, len)) {
 			pm_test_level = level;
 			error = 0;
 			break;
@@ -184,14 +184,14 @@ static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr,
 	len = p ? p - buf : n;
 
 	/* First, check if we are requested to hibernate */
-	if (len == 4 && !strncmp(buf, "disk", len)) {
+	if (len == 4 && !memcmp(buf, "disk", len)) {
 		error = hibernate();
   goto Exit;
 	}
 
 #ifdef CONFIG_SUSPEND
 	for (s = &pm_states[state]; state < PM_SUSPEND_MAX; s++, state++) {
-		if (*s && len == strlen(*s) && !strncmp(buf, *s, len))
+		if (*s && len == strlen(*s) && !memcmp(buf, *s, len))
 			break;
 	}
 	if (state < PM_SUSPEND_MAX && *s)
diff --git a/kernel/profile.c b/kernel/profile.c
index 66f841b..dfabee5 100644
--- a/kernel/profile.c
+++ b/kernel/profile.c
@@ -59,7 +59,7 @@ int profile_setup(char *str)
 	static char kvmstr[] = "kvm";
 	int par;
 
-	if (!strncmp(str, sleepstr, strlen(sleepstr))) {
+	if (!memcmp(str, sleepstr, strlen(sleepstr))) {
 #ifdef CONFIG_SCHEDSTATS
 		prof_on = SLEEP_PROFILING;
 		if (str[strlen(sleepstr)] == ',')
@@ -73,7 +73,7 @@ int profile_setup(char *str)
 		printk(KERN_WARNING
 			"kernel sleep profiling requires CONFIG_SCHEDSTATS\n");
 #endif /* CONFIG_SCHEDSTATS */
-	} else if (!strncmp(str, schedstr, strlen(schedstr))) {
+	} else if (!memcmp(str, schedstr, strlen(schedstr))) {
 		prof_on = SCHED_PROFILING;
 		if (str[strlen(schedstr)] == ',')
 			str += strlen(schedstr) + 1;
@@ -82,7 +82,7 @@ int profile_setup(char *str)
 		printk(KERN_INFO
 			"kernel schedule profiling enabled (shift: %ld)\n",
 			prof_shift);
-	} else if (!strncmp(str, kvmstr, strlen(kvmstr))) {
+	} else if (!memcmp(str, kvmstr, strlen(kvmstr))) {
 		prof_on = KVM_PROFILING;
 		if (str[strlen(kvmstr)] == ',')
 			str += strlen(kvmstr) + 1;
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index f3dadae..9547f14 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1744,7 +1744,7 @@ static int ftrace_match(char *str, char *regex, int len, int type)
 			matched = 1;
 		break;
 	case MATCH_FRONT_ONLY:
-		if (strncmp(str, regex, len) == 0)
+		if (memcmp(str, regex, len) == 0)
 			matched = 1;
 		break;
 	case MATCH_MIDDLE_ONLY:
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index c380612..4fdfcdb 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -806,7 +806,7 @@ __acquires(kernel_lock)
 	if (ret || !default_bootup_tracer)
 		goto out_unlock;
 
-	if (strncmp(default_bootup_tracer, type->name, MAX_TRACER_SIZE))
+	if (memcmp(default_bootup_tracer, type->name, MAX_TRACER_SIZE))
 		goto out_unlock;
 
 	printk(KERN_INFO "Starting tracer '%s'\n", type->name);
@@ -2544,7 +2544,7 @@ tracing_trace_options_write(struct file *filp, const char __user *ubuf,
 	buf[cnt] = 0;
 	cmp = strstrip(buf);
 
-	if (strncmp(cmp, "no", 2) == 0) {
+	if (memcmp(cmp, "no", 2) == 0) {
 		neg = 1;
 		cmp += 2;
 	}
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 0725eea..fa1e9c4 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -696,7 +696,7 @@ static int f_show(struct seq_file *m, void *v)
 	 */
 	array_descriptor = strchr(field->type, '[');
 
-	if (!strncmp(field->type, "__data_loc", 10))
+	if (!memcmp(field->type, "__data_loc", 10))
 		array_descriptor = NULL;
 
 	if (!array_descriptor)
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index 36d4010..52d5add 100644
--- a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -267,14 +267,14 @@ static int filter_pred_none(struct filter_pred *pred, void *event,
 
 static int regex_match_full(char *str, struct regex *r, int len)
 {
-	if (strncmp(str, r->pattern, len) == 0)
+	if (memcmp(str, r->pattern, len) == 0)
 		return 1;
 	return 0;
 }
 
 static int regex_match_front(char *str, struct regex *r, int len)
 {
-	if (strncmp(str, r->pattern, r->len) == 0)
+	if (memcmp(str, r->pattern, r->len) == 0)
 		return 1;
 	return 0;
 }
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 2dec9bc..ff8d829 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -708,7 +708,7 @@ static int parse_probe_vars(char *arg, const struct fetch_type *t,
 			f->fn = t->fetch[FETCH_MTD_retval];
 		else
 			ret = -EINVAL;
-	} else if (strncmp(arg, "stack", 5) == 0) {
+	} else if (memcmp(arg, "stack", 5) == 0) {
 		if (arg[5] == '\0') {
 			if (strcmp(t->name, DEFAULT_FETCH_TYPE_STR) == 0)
 				f->fn = fetch_stack_address;
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index 02272ba..4cdd939 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -374,7 +374,7 @@ static inline const char *kretprobed(const char *name)
 	static const char tramp_name[] = "kretprobe_trampoline";
 	int size = sizeof(tramp_name);
 
-	if (strncmp(tramp_name, name, size) == 0)
+	if (memcmp(tramp_name, name, size) == 0)
 		return "[unknown/kretprobe'd]";
 	return name;
 }
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 6e3c41a..feea9bd 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -55,7 +55,7 @@ static int hardlockup_panic;
 
 static int __init hardlockup_panic_setup(char *str)
 {
-	if (!strncmp(str, "panic", 5))
+	if (!memcmp(str, "panic", 5))
 		hardlockup_panic = 1;
 	return 1;
 }
diff --git a/lib/dma-debug.c b/lib/dma-debug.c
index 4bfb047..6855d46 100644
--- a/lib/dma-debug.c
+++ b/lib/dma-debug.c
@@ -176,7 +176,7 @@ static bool driver_filter(struct device *dev)
 
 	ret = false;
 	if (drv->name &&
-	    strncmp(current_driver_name, drv->name, NAME_MAX_LEN - 1) == 0) {
+	    memcmp(current_driver_name, drv->name, NAME_MAX_LEN - 1) == 0) {
 		current_driver = drv;
 		ret = true;
 	}
@@ -755,7 +755,7 @@ static __init int dma_debug_cmdline(char *str)
 	if (!str)
 		return -EINVAL;
 
-	if (strncmp(str, "off", 3) == 0) {
+	if (memcmp(str, "off", 3) == 0) {
 		pr_info("DMA-API: debugging disabled on kernel command line\n");
 		global_disable = true;
 	}
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index 70af0a7..db33b9c 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -71,7 +71,7 @@ int kobject_action_type(const char *buf, size_t count,
 		goto out;
 
 	for (action = 0; action < ARRAY_SIZE(kobject_actions); action++) {
-		if (strncmp(kobject_actions[action], buf, count) != 0)
+		if (memcmp(kobject_actions[action], buf, count) != 0)
 			continue;
 		if (kobject_actions[action][count] != '\0')
 			continue;
diff --git a/lib/parser.c b/lib/parser.c
index 6e89eca..ce48516 100644
--- a/lib/parser.c
+++ b/lib/parser.c
@@ -36,7 +36,7 @@ static int match_one(char *s, const char *p, substring_t args[])
 		if (!meta)
 			return strcmp(p, s) == 0;
 
-		if (strncmp(p, s, meta-p))
+		if (memcmp(p, s, meta-p))
 			return 0;
 
 		s += meta - p;
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index bd9bc21..0dab2cb 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -1546,17 +1546,17 @@ static ssize_t kmemleak_write(struct file *file, const char __user *user_buf,
 	if (ret < 0)
 		return ret;
 
-	if (strncmp(buf, "off", 3) == 0)
+	if (memcmp(buf, "off", 3) == 0)
 		kmemleak_disable();
-	else if (strncmp(buf, "stack=on", 8) == 0)
+	else if (memcmp(buf, "stack=on", 8) == 0)
 		kmemleak_stack_scan = 1;
-	else if (strncmp(buf, "stack=off", 9) == 0)
+	else if (memcmp(buf, "stack=off", 9) == 0)
 		kmemleak_stack_scan = 0;
-	else if (strncmp(buf, "scan=on", 7) == 0)
+	else if (memcmp(buf, "scan=on", 7) == 0)
 		start_scan_thread();
-	else if (strncmp(buf, "scan=off", 8) == 0)
+	else if (memcmp(buf, "scan=off", 8) == 0)
 		stop_scan_thread();
-	else if (strncmp(buf, "scan=", 5) == 0) {
+	else if (memcmp(buf, "scan=", 5) == 0) {
 		unsigned long secs;
 
 		ret = strict_strtoul(buf + 5, 0, &secs);
@@ -1567,11 +1567,11 @@ static ssize_t kmemleak_write(struct file *file, const char __user *user_buf,
 			jiffies_scan_wait = msecs_to_jiffies(secs * 1000);
 			start_scan_thread();
 		}
-	} else if (strncmp(buf, "scan", 4) == 0)
+	} else if (memcmp(buf, "scan", 4) == 0)
 		kmemleak_scan();
-	else if (strncmp(buf, "clear", 5) == 0)
+	else if (memcmp(buf, "clear", 5) == 0)
 		kmemleak_clear();
-	else if (strncmp(buf, "dump=", 5) == 0)
+	else if (memcmp(buf, "dump=", 5) == 0)
 		ret = dump_str_object_info(buf + 5);
 	else
 		ret = -EINVAL;
diff --git a/mm/slub.c b/mm/slub.c
index 981fb73..6d13025 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1052,7 +1052,7 @@ static unsigned long kmem_cache_flags(unsigned long objsize,
 	 * Enable debugging if selected on the kernel commandline.
 	 */
 	if (slub_debug && (!slub_debug_slabs ||
-		!strncmp(slub_debug_slabs, name, strlen(slub_debug_slabs))))
+		!memcmp(slub_debug_slabs, name, strlen(slub_debug_slabs))))
 		flags |= slub_debug;
 
 	return flags;
diff --git a/net/9p/client.c b/net/9p/client.c
index a848bca..9a6fdea 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -76,13 +76,13 @@ static int get_protocol_version(const substring_t *name)
 {
 	int version = -EINVAL;
 
-	if (!strncmp("9p2000", name->from, name->to-name->from)) {
+	if (!memcmp("9p2000", name->from, name->to-name->from)) {
 		version = p9_proto_legacy;
 		P9_DPRINTK(P9_DEBUG_9P, "Protocol version: Legacy\n");
-	} else if (!strncmp("9p2000.u", name->from, name->to-name->from)) {
+	} else if (!memcmp("9p2000.u", name->from, name->to-name->from)) {
 		version = p9_proto_2000u;
 		P9_DPRINTK(P9_DEBUG_9P, "Protocol version: 9P2000.u\n");
-	} else if (!strncmp("9p2000.L", name->from, name->to-name->from)) {
+	} else if (!memcmp("9p2000.L", name->from, name->to-name->from)) {
 		version = p9_proto_2000L;
 		P9_DPRINTK(P9_DEBUG_9P, "Protocol version: 9P2000.L\n");
 	} else {
@@ -724,11 +724,11 @@ static int p9_client_version(struct p9_client *c)
 	}
 
 	P9_DPRINTK(P9_DEBUG_9P, "<<< RVERSION msize %d %s\n", msize, version);
-	if (!strncmp(version, "9P2000.L", 8))
+	if (!memcmp(version, "9P2000.L", 8))
 		c->proto_version = p9_proto_2000L;
-	else if (!strncmp(version, "9P2000.u", 8))
+	else if (!memcmp(version, "9P2000.u", 8))
 		c->proto_version = p9_proto_2000u;
-	else if (!strncmp(version, "9P2000", 6))
+	else if (!memcmp(version, "9P2000", 6))
 		c->proto_version = p9_proto_legacy;
 	else {
 		err = -EREMOTEIO;
diff --git a/net/9p/mod.c b/net/9p/mod.c
index cf8a412..988411d 100644
--- a/net/9p/mod.c
+++ b/net/9p/mod.c
@@ -87,7 +87,7 @@ struct p9_trans_module *v9fs_get_trans_by_name(const substring_t *name)
 	spin_lock(&v9fs_trans_lock);
 
 	list_for_each_entry(t, &v9fs_trans_list, list)
-		if (strncmp(t->name, name->from, name->to-name->from) == 0 &&
+		if (memcmp(t->name, name->from, name->to-name->from) == 0 &&
 		    try_module_get(t->owner)) {
 			found = t;
 			break;
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index c8f3f72..fa97569 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -374,7 +374,7 @@ p9_virtio_create(struct p9_client *client, const char *devname, char *args)
 
 	mutex_lock(&virtio_9p_lock);
 	list_for_each_entry(chan, &virtio_chan_list, chan_list) {
-		if (!strncmp(devname, chan->tag, chan->tag_len) &&
+		if (!memcmp(devname, chan->tag, chan->tag_len) &&
 		    strlen(devname) == chan->tag_len) {
 			if (!chan->inuse) {
 				chan->inuse = true;
diff --git a/net/atm/br2684.c b/net/atm/br2684.c
index ad2b232..62b22ce 100644
--- a/net/atm/br2684.c
+++ b/net/atm/br2684.c
@@ -131,7 +131,7 @@ static struct net_device *br2684_find_dev(const struct br2684_if_spec *s)
 	case BR2684_FIND_BYIFNAME:
 		list_for_each(lh, &br2684_devs) {
 			net_dev = list_entry_brdev(lh);
-			if (!strncmp(net_dev->name, s->spec.ifname, IFNAMSIZ))
+			if (!memcmp(net_dev->name, s->spec.ifname, IFNAMSIZ))
 				return net_dev;
 		}
 		break;
diff --git a/net/atm/mpc.c b/net/atm/mpc.c
index 74bcc66..fc0d2d0 100644
--- a/net/atm/mpc.c
+++ b/net/atm/mpc.c
@@ -1012,7 +1012,7 @@ static int mpoa_event_listener(struct notifier_block *mpoa_notifier,
 	if (!net_eq(dev_net(dev), &init_net))
 		return NOTIFY_DONE;
 
-	if (dev->name == NULL || strncmp(dev->name, "lec", 3))
+	if (dev->name == NULL || memcmp(dev->name, "lec", 3))
 		return NOTIFY_DONE; /* we are only interested in lec:s */
 
 	switch (event) {
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index 5fce3d6..108aa9e 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -110,7 +110,7 @@ static void add_conn(struct work_struct *work)
  */
 static int __match_tty(struct device *dev, void *data)
 {
-	return !strncmp(dev_name(dev), "rfcomm", 6);
+	return !memcmp(dev_name(dev), "rfcomm", 6);
 }
 
 static void del_conn(struct work_struct *work)
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 89ad25a..52020a3 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -51,10 +51,10 @@ static int port_cost(struct net_device *dev)
 	}
 
 	/* Old silly heuristics based on name */
-	if (!strncmp(dev->name, "lec", 3))
+	if (!memcmp(dev->name, "lec", 3))
 		return 7;
 
-	if (!strncmp(dev->name, "plip", 4))
+	if (!memcmp(dev->name, "plip", 4))
 		return 2500;
 
 	return 100;	/* assume old 10Mbps */
diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c
index fd5799c..8e771a9 100644
--- a/net/bridge/br_sysfs_if.c
+++ b/net/bridge/br_sysfs_if.c
@@ -278,7 +278,7 @@ int br_sysfs_renameif(struct net_bridge_port *p)
 	/* If a rename fails, the rollback will cause another
 	 * rename call with the existing name.
 	 */
-	if (!strncmp(p->sysfs_name, p->dev->name, IFNAMSIZ))
+	if (!memcmp(p->sysfs_name, p->dev->name, IFNAMSIZ))
 		return 0;
 
 	err = sysfs_rename_link(br->ifobj, &p->kobj,
diff --git a/net/core/dev.c b/net/core/dev.c
index 0dd54a6..44d9940 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -608,7 +608,7 @@ struct net_device *__dev_get_by_name(struct net *net, const char *name)
 	struct hlist_head *head = dev_name_hash(net, name);
 
 	hlist_for_each_entry(dev, p, head, name_hlist)
-		if (!strncmp(dev->name, name, IFNAMSIZ))
+		if (!memcmp(dev->name, name, IFNAMSIZ))
 			return dev;
 
 	return NULL;
@@ -634,7 +634,7 @@ struct net_device *dev_get_by_name_rcu(struct net *net, const char *name)
 	struct hlist_head *head = dev_name_hash(net, name);
 
 	hlist_for_each_entry_rcu(dev, p, head, name_hlist)
-		if (!strncmp(dev->name, name, IFNAMSIZ))
+		if (!memcmp(dev->name, name, IFNAMSIZ))
 			return dev;
 
 	return NULL;
@@ -900,7 +900,7 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
 
 			/*  avoid cases where sscanf is not exact inverse of printf */
 			snprintf(buf, IFNAMSIZ, name, i);
-			if (!strncmp(buf, d->name, IFNAMSIZ))
+			if (!memcmp(buf, d->name, IFNAMSIZ))
 				set_bit(i, inuse);
 		}
 
@@ -991,7 +991,7 @@ int dev_change_name(struct net_device *dev, const char *newname)
 	if (dev->flags & IFF_UP)
 		return -EBUSY;
 
-	if (strncmp(newname, dev->name, IFNAMSIZ) == 0)
+	if (memcmp(newname, dev->name, IFNAMSIZ) == 0)
 		return 0;
 
 	memcpy(oldname, dev->name, IFNAMSIZ);
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 33bc382..cb4056a 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -3645,7 +3645,7 @@ static struct pktgen_dev *pktgen_find_dev(struct pktgen_thread *t,
 
 	if_lock(t);
 	list_for_each_entry(p, &t->if_list, list)
-		if (strncmp(p->odevname, ifname, len) == 0) {
+		if (memcmp(p->odevname, ifname, len) == 0) {
 			if (p->odevname[len]) {
 				if (exact || p->odevname[len] != '@')
 					continue;
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 3a6e1ec..b8add8f 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -193,7 +193,7 @@ static bool __init ic_device_match(struct net_device *dev)
 	if (user_dev_name[0] ? !strcmp(dev->name, user_dev_name) :
 	    (!(dev->flags & IFF_LOOPBACK) &&
 	     (dev->flags & (IFF_POINTOPOINT|IFF_BROADCAST)) &&
-	     strncmp(dev->name, "dummy", 5)))
+	     memcmp(dev->name, "dummy", 5)))
 		return true;
 	return false;
 }
diff --git a/net/irda/irnet/irnet_irda.c b/net/irda/irnet/irnet_irda.c
index 7f17a80..532699c 100644
--- a/net/irda/irnet/irnet_irda.c
+++ b/net/irda/irnet/irnet_irda.c
@@ -471,7 +471,7 @@ irnet_dname_to_daddr(irnet_socket *	self)
   for(i = 0; i < number; i++)
     {
       /* Does the name match ? */
-      if(!strncmp(discoveries[i].info, self->rname, NICKNAME_MAX_LEN))
+      if(!memcmp(discoveries[i].info, self->rname, NICKNAME_MAX_LEN))
 	{
 	  /* Yes !!! Get it.. */
 	  self->daddr = discoveries[i].daddr;
diff --git a/net/irda/irnet/irnet_ppp.c b/net/irda/irnet/irnet_ppp.c
index 7c567b8..662b508 100644
--- a/net/irda/irnet/irnet_ppp.c
+++ b/net/irda/irnet/irnet_ppp.c
@@ -96,7 +96,7 @@ irnet_ctrl_write(irnet_socket *	ap,
        * We can't use "switch" with strings, so hack with "continue" */
 
       /* First command : name -> Requested IrDA nickname */
-      if(!strncmp(start, "name", 4))
+      if(!memcmp(start, "name", 4))
 	{
 	  /* Copy the name only if is included and not "any" */
 	  if((length > 5) && (strcmp(start + 5, "any")))
@@ -119,9 +119,9 @@ irnet_ctrl_write(irnet_socket *	ap,
 
       /* Second command : addr, daddr -> Requested IrDA destination address
        * Also process : saddr -> Requested IrDA source address */
-      if((!strncmp(start, "addr", 4)) ||
-	 (!strncmp(start, "daddr", 5)) ||
-	 (!strncmp(start, "saddr", 5)))
+      if((!memcmp(start, "addr", 4)) ||
+	 (!memcmp(start, "daddr", 5)) ||
+	 (!memcmp(start, "saddr", 5)))
 	{
 	  __u32		addr = DEV_ADDR_ANY;
 
diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c
index 18260aa..2d891bc 100644
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -83,7 +83,7 @@ static ssize_t tsf_write(struct file *file,
 		return -EFAULT;
 	buf[len] = '\0';
 
-	if (strncmp(buf, "reset", 5) == 0) {
+	if (memcmp(buf, "reset", 5) == 0) {
 		if (local->ops->reset_tsf) {
 			drv_reset_tsf(local);
 			wiphy_info(local->hw.wiphy, "debugfs reset TSF\n");
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index cbdf36d..76fcc35 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -203,7 +203,7 @@ static ssize_t ieee80211_if_parse_smps(struct ieee80211_sub_if_data *sdata,
 	enum ieee80211_smps_mode mode;
 
 	for (mode = 0; mode < IEEE80211_SMPS_NUM_MODES; mode++) {
-		if (strncmp(buf, smps_modes[mode], buflen) == 0) {
+		if (memcmp(buf, smps_modes[mode], buflen) == 0) {
 			int err = ieee80211_set_smps(sdata, mode);
 			if (!err)
 				return buflen;
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index 4601fea..56ed3f3 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -167,21 +167,21 @@ static ssize_t sta_agg_status_write(struct file *file, const char __user *userbu
 
 	buf[sizeof(_buf) - 1] = '\0';
 
-	if (strncmp(buf, "tx ", 3) == 0) {
+	if (memcmp(buf, "tx ", 3) == 0) {
 		buf += 3;
 		tx = true;
-	} else if (strncmp(buf, "rx ", 3) == 0) {
+	} else if (memcmp(buf, "rx ", 3) == 0) {
 		buf += 3;
 		tx = false;
 	} else
 		return -EINVAL;
 
-	if (strncmp(buf, "start ", 6) == 0) {
+	if (memcmp(buf, "start ", 6) == 0) {
 		buf += 6;
 		start = true;
 		if (!tx)
 			return -EINVAL;
-	} else if (strncmp(buf, "stop ", 5) == 0) {
+	} else if (memcmp(buf, "stop ", 5) == 0) {
 		buf += 5;
 		start = false;
 	} else
diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
index bcf47eb..f22a502 100644
--- a/net/netfilter/nf_conntrack_sip.c
+++ b/net/netfilter/nf_conntrack_sip.c
@@ -700,7 +700,7 @@ static const char *ct_sdp_header_search(const char *dptr, const char *limit,
 	for (limit -= len; dptr < limit; dptr++) {
 		if (*dptr == '\r' || *dptr == '\n')
 			break;
-		if (strncmp(dptr, needle, len) == 0)
+		if (memcmp(dptr, needle, len) == 0)
 			return dptr;
 	}
 	return NULL;
@@ -963,7 +963,7 @@ static const struct sdp_media_type *sdp_media_type(const char *dptr,
 	for (i = 0; i < ARRAY_SIZE(sdp_media_types); i++) {
 		t = &sdp_media_types[i];
 		if (matchlen < t->len ||
-		    strncmp(dptr + matchoff, t->name, t->len))
+		    memcmp(dptr + matchoff, t->name, t->len))
 			continue;
 		return t;
 	}
diff --git a/net/netfilter/xt_helper.c b/net/netfilter/xt_helper.c
index 9f4ab00..101670d 100644
--- a/net/netfilter/xt_helper.c
+++ b/net/netfilter/xt_helper.c
@@ -49,7 +49,7 @@ helper_mt(const struct sk_buff *skb, struct xt_action_param *par)
 	if (info->name[0] == '\0')
 		ret = !ret;
 	else
-		ret ^= !strncmp(helper->name, info->name,
+		ret ^= !memcmp(helper->name, info->name,
 				strlen(helper->name));
 	return ret;
 }
diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c
index 44059d0..9f0c4b9 100644
--- a/net/netrom/nr_route.c
+++ b/net/netrom/nr_route.c
@@ -601,7 +601,7 @@ struct net_device *nr_dev_first(void)
 	rcu_read_lock();
 	for_each_netdev_rcu(&init_net, dev) {
 		if ((dev->flags & IFF_UP) && dev->type == ARPHRD_NETROM)
-			if (first == NULL || strncmp(dev->name, first->name, 3) < 0)
+			if (first == NULL || memcmp(dev->name, first->name, 3) < 0)
 				first = dev;
 	}
 	if (first)
diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c
index b4fdaac..8efc690 100644
--- a/net/rose/rose_route.c
+++ b/net/rose/rose_route.c
@@ -612,7 +612,7 @@ struct net_device *rose_dev_first(void)
 	rcu_read_lock();
 	for_each_netdev_rcu(&init_net, dev) {
 		if ((dev->flags & IFF_UP) && dev->type == ARPHRD_ROSE)
-			if (first == NULL || strncmp(dev->name, first->name, 3) < 0)
+			if (first == NULL || memcmp(dev->name, first->name, 3) < 0)
 				first = dev;
 	}
 	rcu_read_unlock();
diff --git a/net/sched/sch_fifo.c b/net/sched/sch_fifo.c
index 4dfecb0..c179243 100644
--- a/net/sched/sch_fifo.c
+++ b/net/sched/sch_fifo.c
@@ -150,7 +150,7 @@ int fifo_set_limit(struct Qdisc *q, unsigned int limit)
 	int ret = -ENOMEM;
 
 	/* Hack to avoid sending change message to non-FIFO */
-	if (strncmp(q->ops->id + 1, "fifo", 4) != 0)
+	if (memcmp(q->ops->id + 1, "fifo", 4) != 0)
 		return 0;
 
 	nla = kmalloc(nla_attr_size(sizeof(struct tc_fifo_qopt)), GFP_KERNEL);
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index 6359c42..099aa9d 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -78,13 +78,13 @@ param_set_pool_mode(const char *val, struct kernel_param *kp)
 		goto out;
 
 	err = 0;
-	if (!strncmp(val, "auto", 4))
+	if (!memcmp(val, "auto", 4))
 		*ip = SVC_POOL_AUTO;
-	else if (!strncmp(val, "global", 6))
+	else if (!memcmp(val, "global", 6))
 		*ip = SVC_POOL_GLOBAL;
-	else if (!strncmp(val, "percpu", 6))
+	else if (!memcmp(val, "percpu", 6))
 		*ip = SVC_POOL_PERCPU;
-	else if (!strncmp(val, "pernode", 7))
+	else if (!memcmp(val, "pernode", 7))
 		*ip = SVC_POOL_PERNODE;
 	else
 		err = -EINVAL;
diff --git a/net/tipc/eth_media.c b/net/tipc/eth_media.c
index 6e988ba..6b8b29f 100644
--- a/net/tipc/eth_media.c
+++ b/net/tipc/eth_media.c
@@ -149,7 +149,7 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
 	/* Find device with specified name */
 
 	for_each_netdev(&init_net, pdev){
-		if (!strncmp(pdev->name, driver_name, IFNAMSIZ)) {
+		if (!memcmp(pdev->name, driver_name, IFNAMSIZ)) {
 			dev = pdev;
 			break;
 		}
diff --git a/scripts/conmakehash.c b/scripts/conmakehash.c
index 263a44d..783694a 100644
--- a/scripts/conmakehash.c
+++ b/scripts/conmakehash.c
@@ -184,7 +184,7 @@ int main(int argc, char *argv[])
 	     same length */
 	  while (*p == ' ' || *p == '\t')
 	    p++;
-	  if (!strncmp(p, "idem", 4))
+	  if (!memcmp(p, "idem", 4))
 	    {
 	      for (i=fp0; i<=fp1; i++)
 		addpair(i,i);
diff --git a/scripts/dtc/dtc.h b/scripts/dtc/dtc.h
index 08d54c8..881ecbf 100644
--- a/scripts/dtc/dtc.h
+++ b/scripts/dtc/dtc.h
@@ -77,7 +77,7 @@ typedef uint32_t cell_t;
 
 
 #define streq(a, b)	(strcmp((a), (b)) == 0)
-#define strneq(a, b, n)	(strncmp((a), (b), (n)) == 0)
+#define strneq(a, b, n)	(memcmp((a), (b), (n)) == 0)
 
 #define ALIGN(x, a)	(((x) + (a) - 1) & ~((a) - 1))
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 60dd3eb..3c2d62d 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -638,7 +638,7 @@ int main(int argc, char **argv)
 		for (i = 1; i < argc; i++) {
 			if(strcmp(argv[i], "--all-symbols") == 0)
 				all_symbols = 1;
-			else if (strncmp(argv[i], "--symbol-prefix=", 16) == 0) {
+			else if (memcmp(argv[i], "--symbol-prefix=", 16) == 0) {
 				char *p = &argv[i][16];
 				/* skip quote */
 				if ((*p == '"' && *(p+2) == '"') || (*p == '\'' && *(p+2) == '\''))
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 9df8011..443136b 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -253,7 +253,7 @@ load:
 			if (!p)
 				continue;
 			*p++ = 0;
-			if (strncmp(p, "is not set", 10))
+			if (memcmp(p, "is not set", 10))
 				continue;
 			if (def == S_DEF_USER) {
 				sym = sym_find(line + 2 + strlen(CONFIG_));
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 33122ca..ca973b9 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -546,15 +546,15 @@ static int ignore_undef_symbol(struct elf_info *info, const char *symname)
 		return 1;
 	if (info->hdr->e_machine == EM_PPC)
 		/* Special register function linked on all modules during final link of .ko */
-		if (strncmp(symname, "_restgpr_", sizeof("_restgpr_") - 1) == 0 ||
-		    strncmp(symname, "_savegpr_", sizeof("_savegpr_") - 1) == 0 ||
-		    strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 ||
-		    strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0)
+		if (memcmp(symname, "_restgpr_", sizeof("_restgpr_") - 1) == 0 ||
+		    memcmp(symname, "_savegpr_", sizeof("_savegpr_") - 1) == 0 ||
+		    memcmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 ||
+		    memcmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0)
 			return 1;
 	if (info->hdr->e_machine == EM_PPC64)
 		/* Special register function linked on all modules during final link of .ko */
-		if (strncmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 ||
-		    strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0)
+		if (memcmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 ||
+		    memcmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0)
 			return 1;
 	/* Do not ignore this symbol */
 	return 0;
@@ -575,7 +575,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
 		break;
 	case SHN_ABS:
 		/* CRC'd symbol */
-		if (strncmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) {
+		if (memcmp(symname, CRC_PFX, strlen(CRC_PFX)) == 0) {
 			crc = (unsigned int) sym->st_value;
 			sym_update_crc(symname + strlen(CRC_PFX), mod, crc,
 					export);
@@ -619,7 +619,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
 		break;
 	default:
 		/* All exported symbols */
-		if (strncmp(symname, KSYMTAB_PFX, strlen(KSYMTAB_PFX)) == 0) {
+		if (memcmp(symname, KSYMTAB_PFX, strlen(KSYMTAB_PFX)) == 0) {
 			sym_add_exported(symname + strlen(KSYMTAB_PFX), mod,
 					export);
 		}
@@ -665,7 +665,7 @@ static char *get_next_modinfo(void *modinfo, unsigned long modinfo_len,
 	}
 
 	for (p = modinfo; p; p = next_string(p, &size)) {
-		if (strncmp(p, tag, taglen) == 0 && p[taglen] == '=')
+		if (memcmp(p, tag, taglen) == 0 && p[taglen] == '=')
 			return p + taglen + 1;
 	}
 	return NULL;
@@ -765,12 +765,12 @@ static int match(const char *sym, const char * const pat[])
 		}
 		/* "foo*" */
 		else if (*endp == '*') {
-			if (strncmp(sym, p, strlen(p) - 1) == 0)
+			if (memcmp(sym, p, strlen(p) - 1) == 0)
 				return 1;
 		}
 		/* "foo$" */
 		else if (*endp == '$') {
-			if (strncmp(sym, p, strlen(p) - 1) == 0) {
+			if (memcmp(sym, p, strlen(p) - 1) == 0) {
 				if (number_prefix(sym + strlen(p) - 1))
 					return 1;
 			}
@@ -1073,13 +1073,13 @@ static int secref_whitelist(const struct sectioncheck *mismatch,
 	/* Check for pattern 1 */
 	if (match(tosec, init_data_sections) &&
 	    match(fromsec, data_sections) &&
-	    (strncmp(fromsym, "__param", strlen("__param")) == 0))
+	    (memcmp(fromsym, "__param", strlen("__param")) == 0))
 		return 0;
 
 	/* Check for pattern 1a */
 	if (strcmp(tosec, ".init.text") == 0 &&
 	    match(fromsec, data_sections) &&
-	    (strncmp(fromsym, "__param_ops_", strlen("__param_ops_")) == 0))
+	    (memcmp(fromsym, "__param_ops_", strlen("__param_ops_")) == 0))
 		return 0;
 
 	/* Check for pattern 2 */
@@ -1822,7 +1822,7 @@ static void add_staging_flag(struct buffer *b, const char *name)
 {
 	static const char *staging_dir = "drivers/staging";
 
-	if (strncmp(staging_dir, name, strlen(staging_dir)) == 0)
+	if (memcmp(staging_dir, name, strlen(staging_dir)) == 0)
 		buf_printf(b, "\nMODULE_INFO(staging, \"Y\");\n");
 }
 
diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
index ecf9c7d..150bc0e 100644
--- a/scripts/mod/sumversion.c
+++ b/scripts/mod/sumversion.c
@@ -340,7 +340,7 @@ static int parse_source_files(const char *objfile, struct md4_ctx *md)
 	*/
 	while ((line = get_next_line(&pos, file, flen)) != NULL) {
 		char* p = line;
-		if (strncmp(line, "deps_", sizeof("deps_")-1) == 0) {
+		if (memcmp(line, "deps_", sizeof("deps_")-1) == 0) {
 			check_files = 1;
 			continue;
 		}
@@ -468,7 +468,7 @@ static int strip_rcs_crap(char *version)
 {
 	unsigned int len, full_len;
 
-	if (strncmp(version, "$Revision", strlen("$Revision")) != 0)
+	if (memcmp(version, "$Revision", strlen("$Revision")) != 0)
 		return 0;
 
 	/* Space for version string follows. */
diff --git a/scripts/unifdef.c b/scripts/unifdef.c
index 44d3978..1620ffa 100644
--- a/scripts/unifdef.c
+++ b/scripts/unifdef.c
@@ -566,7 +566,7 @@ parseline(void)
 		cp = skipsym(cp);
 		kwlen = cp - keyword;
 		/* no way can we deal with a continuation inside a keyword */
-		if (strncmp(cp, "\\\n", 2) == 0)
+		if (memcmp(cp, "\\\n", 2) == 0)
 			Eioccc();
 		if (strlcmp("ifdef", keyword, kwlen) == 0 ||
 		    strlcmp("ifndef", keyword, kwlen) == 0) {
@@ -753,7 +753,7 @@ eval_unary(const struct ops *ops, int *valp, const char **cpp)
 			return (LT_ERROR);
 		lt = *valp ? LT_TRUE : LT_FALSE;
 		cp = skipsym(cp);
-	} else if (strncmp(cp, "defined", 7) == 0 && endsym(cp[7])) {
+	} else if (memcmp(cp, "defined", 7) == 0 && endsym(cp[7])) {
 		cp = skipcomment(cp+7);
 		debug("eval%d defined", ops - eval_ops);
 		if (*cp == '(') {
@@ -821,7 +821,7 @@ eval_table(const struct ops *ops, int *valp, const char **cpp)
 	for (;;) {
 		cp = skipcomment(cp);
 		for (op = ops->op; op->str != NULL; op++)
-			if (strncmp(cp, op->str, strlen(op->str)) == 0)
+			if (memcmp(cp, op->str, strlen(op->str)) == 0)
 				break;
 		if (op->str == NULL)
 			break;
@@ -875,28 +875,28 @@ skipcomment(const char *cp)
 	}
 	while (*cp != '\0')
 		/* don't reset to LS_START after a line continuation */
-		if (strncmp(cp, "\\\n", 2) == 0)
+		if (memcmp(cp, "\\\n", 2) == 0)
 			cp += 2;
 		else switch (incomment) {
 		case NO_COMMENT:
-			if (strncmp(cp, "/\\\n", 3) == 0) {
+			if (memcmp(cp, "/\\\n", 3) == 0) {
 				incomment = STARTING_COMMENT;
 				cp += 3;
-			} else if (strncmp(cp, "/*", 2) == 0) {
+			} else if (memcmp(cp, "/*", 2) == 0) {
 				incomment = C_COMMENT;
 				cp += 2;
-			} else if (strncmp(cp, "//", 2) == 0) {
+			} else if (memcmp(cp, "//", 2) == 0) {
 				incomment = CXX_COMMENT;
 				cp += 2;
-			} else if (strncmp(cp, "\'", 1) == 0) {
+			} else if (memcmp(cp, "\'", 1) == 0) {
 				incomment = CHAR_LITERAL;
 				linestate = LS_DIRTY;
 				cp += 1;
-			} else if (strncmp(cp, "\"", 1) == 0) {
+			} else if (memcmp(cp, "\"", 1) == 0) {
 				incomment = STRING_LITERAL;
 				linestate = LS_DIRTY;
 				cp += 1;
-			} else if (strncmp(cp, "\n", 1) == 0) {
+			} else if (memcmp(cp, "\n", 1) == 0) {
 				linestate = LS_START;
 				cp += 1;
 			} else if (strchr(" \t", *cp) != NULL) {
@@ -905,7 +905,7 @@ skipcomment(const char *cp)
 				return (cp);
 			continue;
 		case CXX_COMMENT:
-			if (strncmp(cp, "\n", 1) == 0) {
+			if (memcmp(cp, "\n", 1) == 0) {
 				incomment = NO_COMMENT;
 				linestate = LS_START;
 			}
@@ -922,7 +922,7 @@ skipcomment(const char *cp)
 					cp += 1;
 				else
 					cp += 2;
-			} else if (strncmp(cp, "\n", 1) == 0) {
+			} else if (memcmp(cp, "\n", 1) == 0) {
 				if (incomment == CHAR_LITERAL)
 					error("unterminated char literal");
 				else
@@ -931,10 +931,10 @@ skipcomment(const char *cp)
 				cp += 1;
 			continue;
 		case C_COMMENT:
-			if (strncmp(cp, "*\\\n", 3) == 0) {
+			if (memcmp(cp, "*\\\n", 3) == 0) {
 				incomment = FINISHING_COMMENT;
 				cp += 3;
-			} else if (strncmp(cp, "*/", 2) == 0) {
+			} else if (memcmp(cp, "*/", 2) == 0) {
 				incomment = NO_COMMENT;
 				cp += 2;
 			} else
diff --git a/security/apparmor/include/apparmor.h b/security/apparmor/include/apparmor.h
index 38ccaea..1bb6cb0 100644
--- a/security/apparmor/include/apparmor.h
+++ b/security/apparmor/include/apparmor.h
@@ -65,7 +65,7 @@ void kvfree(void *buffer);
  */
 static inline bool aa_strneq(const char *str, const char *sub, int len)
 {
-	return !strncmp(str, sub, len) && !str[len];
+	return !memcmp(str, sub, len) && !str[len];
 }
 
 /**
diff --git a/security/apparmor/path.c b/security/apparmor/path.c
index 36cc0cc..0afebae 100644
--- a/security/apparmor/path.c
+++ b/security/apparmor/path.c
@@ -114,7 +114,7 @@ static int d_namespace_path(struct path *path, char *buf, int buflen,
 	if (!connected) {
 		/* is the disconnect path a sysctl? */
 		if (tmp.dentry->d_sb->s_magic == PROC_SUPER_MAGIC &&
-		    strncmp(*name, "/sys/", 5) == 0) {
+		    memcmp(*name, "/sys/", 5) == 0) {
 			/* TODO: convert over to using a per namespace
 			 * control instead of hard coded /proc
 			 */
diff --git a/security/commoncap.c b/security/commoncap.c
index 64c2ed9..7d08fb4 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -568,7 +568,7 @@ int cap_inode_setxattr(struct dentry *dentry, const char *name,
 		return 0;
 	}
 
-	if (!strncmp(name, XATTR_SECURITY_PREFIX,
+	if (!memcmp(name, XATTR_SECURITY_PREFIX,
 		     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
 	    !capable(CAP_SYS_ADMIN))
 		return -EPERM;
@@ -594,7 +594,7 @@ int cap_inode_removexattr(struct dentry *dentry, const char *name)
 		return 0;
 	}
 
-	if (!strncmp(name, XATTR_SECURITY_PREFIX,
+	if (!memcmp(name, XATTR_SECURITY_PREFIX,
 		     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
 	    !capable(CAP_SYS_ADMIN))
 		return -EPERM;
diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c
index 203de97..066d910 100644
--- a/security/integrity/ima/ima_main.c
+++ b/security/integrity/ima/ima_main.c
@@ -30,7 +30,7 @@ int ima_initialized;
 char *ima_hash = "sha1";
 static int __init hash_setup(char *str)
 {
-	if (strncmp(str, "md5", 3) == 0)
+	if (memcmp(str, "md5", 3) == 0)
 		ima_hash = "md5";
 	return 1;
 }
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 65fa8bf..86ff933 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -401,7 +401,7 @@ static int sb_finish_set_opts(struct super_block *sb)
 		sbsec->flags &= ~SE_SBLABELSUPP;
 
 	/* Special handling for sysfs. Is genfs but also has setxattr handler*/
-	if (strncmp(sb->s_type->name, "sysfs", sizeof("sysfs")) == 0)
+	if (memcmp(sb->s_type->name, "sysfs", sizeof("sysfs")) == 0)
 		sbsec->flags |= SE_SBLABELSUPP;
 
 	/* Initialize the root inode. */
@@ -2681,7 +2681,7 @@ static int selinux_inode_setotherxattr(struct dentry *dentry, const char *name)
 {
 	const struct cred *cred = current_cred();
 
-	if (!strncmp(name, XATTR_SECURITY_PREFIX,
+	if (!memcmp(name, XATTR_SECURITY_PREFIX,
 		     sizeof XATTR_SECURITY_PREFIX - 1)) {
 		if (!strcmp(name, XATTR_NAME_CAPS)) {
 			if (!capable(CAP_SETFCAP))
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index 223c1ff..13fe7de 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -2235,7 +2235,7 @@ int security_genfs_sid(const char *fstype,
 	for (c = genfs->head; c; c = c->next) {
 		len = strlen(c->u.name);
 		if ((!c->v.sclass || sclass == c->v.sclass) &&
-		    (strncmp(c->u.name, path, len) == 0))
+		    (memcmp(c->u.name, path, len) == 0))
 			break;
 	}
 
diff --git a/security/smack/smack_access.c b/security/smack/smack_access.c
index f4fac64..0f11888 100644
--- a/security/smack/smack_access.c
+++ b/security/smack/smack_access.c
@@ -336,7 +336,7 @@ struct smack_known *smk_import_entry(const char *string, int len)
 
 	found = 0;
 	list_for_each_entry_rcu(skp, &smack_known_list, list) {
-		if (strncmp(skp->smk_known, smack, SMK_MAXLEN) == 0) {
+		if (memcmp(skp->smk_known, smack, SMK_MAXLEN) == 0) {
 			found = 1;
 			break;
 		}
@@ -423,7 +423,7 @@ u32 smack_to_secid(const char *smack)
 
 	rcu_read_lock();
 	list_for_each_entry_rcu(skp, &smack_known_list, list) {
-		if (strncmp(skp->smk_known, smack, SMK_MAXLEN) == 0) {
+		if (memcmp(skp->smk_known, smack, SMK_MAXLEN) == 0) {
 			rcu_read_unlock();
 			return skp->smk_secid;
 		}
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index 489a85a..556e96d 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -290,23 +290,23 @@ static int smack_sb_kern_mount(struct super_block *sb, int flags, void *data)
 		if (commap != NULL)
 			*commap++ = '\0';
 
-		if (strncmp(op, SMK_FSHAT, strlen(SMK_FSHAT)) == 0) {
+		if (memcmp(op, SMK_FSHAT, strlen(SMK_FSHAT)) == 0) {
 			op += strlen(SMK_FSHAT);
 			nsp = smk_import(op, 0);
 			if (nsp != NULL)
 				sp->smk_hat = nsp;
-		} else if (strncmp(op, SMK_FSFLOOR, strlen(SMK_FSFLOOR)) == 0) {
+		} else if (memcmp(op, SMK_FSFLOOR, strlen(SMK_FSFLOOR)) == 0) {
 			op += strlen(SMK_FSFLOOR);
 			nsp = smk_import(op, 0);
 			if (nsp != NULL)
 				sp->smk_floor = nsp;
-		} else if (strncmp(op, SMK_FSDEFAULT,
+		} else if (memcmp(op, SMK_FSDEFAULT,
 				   strlen(SMK_FSDEFAULT)) == 0) {
 			op += strlen(SMK_FSDEFAULT);
 			nsp = smk_import(op, 0);
 			if (nsp != NULL)
 				sp->smk_default = nsp;
-		} else if (strncmp(op, SMK_FSROOT, strlen(SMK_FSROOT)) == 0) {
+		} else if (memcmp(op, SMK_FSROOT, strlen(SMK_FSROOT)) == 0) {
 			op += strlen(SMK_FSROOT);
 			nsp = smk_import(op, 0);
 			if (nsp != NULL)
diff --git a/security/tomoyo/common.c b/security/tomoyo/common.c
index 7556315..e266b95 100644
--- a/security/tomoyo/common.c
+++ b/security/tomoyo/common.c
@@ -306,9 +306,9 @@ static s8 tomoyo_find_yesno(const char *string, const char *find)
 	const char *cp = strstr(string, find);
 	if (cp) {
 		cp += strlen(find);
-		if (!strncmp(cp, "=yes", 4))
+		if (!memcmp(cp, "=yes", 4))
 			return 1;
-		else if (!strncmp(cp, "=no", 3))
+		else if (!memcmp(cp, "=no", 3))
 			return 0;
 	}
 	return -1;
@@ -757,7 +757,7 @@ static bool tomoyo_select_one(struct tomoyo_io_buffer *head, const char *data)
 			domain = tomoyo_real_domain(p);
 		read_unlock(&tasklist_lock);
 		rcu_read_unlock();
-	} else if (!strncmp(data, "domain=", 7)) {
+	} else if (!memcmp(data, "domain=", 7)) {
 		if (tomoyo_domain_def(data + 7))
 			domain = tomoyo_find_domain(data + 7);
 	} else
diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c
index 9d32f18..f1eb003 100644
--- a/security/tomoyo/file.c
+++ b/security/tomoyo/file.c
@@ -1145,7 +1145,7 @@ int tomoyo_write_file(char *data, struct tomoyo_domain_info *domain,
 	u8 type;
 	if (!tomoyo_tokenize(data, w, sizeof(w)) || !w[1][0])
 		return -EINVAL;
-	if (strncmp(w[0], "allow_", 6))
+	if (memcmp(w[0], "allow_", 6))
 		goto out;
 	w[0] += 6;
 	for (type = 0; type < TOMOYO_MAX_PATH_OPERATION; type++) {
diff --git a/security/tomoyo/util.c b/security/tomoyo/util.c
index 9bfc1ee..b9f29ca 100644
--- a/security/tomoyo/util.c
+++ b/security/tomoyo/util.c
@@ -200,7 +200,7 @@ bool tomoyo_str_starts(char **src, const char *find)
 	const int len = strlen(find);
 	char *tmp = *src;
 
-	if (strncmp(tmp, find, len))
+	if (memcmp(tmp, find, len))
 		return false;
 	tmp += len;
 	*src = tmp;
@@ -377,7 +377,7 @@ bool tomoyo_correct_path(const char *filename)
  */
 bool tomoyo_correct_domain(const unsigned char *domainname)
 {
-	if (!domainname || strncmp(domainname, TOMOYO_ROOT_NAME,
+	if (!domainname || memcmp(domainname, TOMOYO_ROOT_NAME,
 				   TOMOYO_ROOT_NAME_LEN))
 		goto out;
 	domainname += TOMOYO_ROOT_NAME_LEN;
@@ -408,7 +408,7 @@ bool tomoyo_correct_domain(const unsigned char *domainname)
  */
 bool tomoyo_domain_def(const unsigned char *buffer)
 {
-	return !strncmp(buffer, TOMOYO_ROOT_NAME, TOMOYO_ROOT_NAME_LEN);
+	return !memcmp(buffer, TOMOYO_ROOT_NAME, TOMOYO_ROOT_NAME_LEN);
 }
 
 /**
@@ -557,7 +557,7 @@ static bool tomoyo_file_matches_pattern2(const char *filename,
 		case '2':
 		case '3':
 			if (c == '\\' && tomoyo_byte_range(filename + 1)
-			    && strncmp(filename + 1, pattern, 3) == 0) {
+			    && memcmp(filename + 1, pattern, 3) == 0) {
 				filename += 3;
 				pattern += 2;
 				break;
@@ -757,7 +757,7 @@ bool tomoyo_path_matches_pattern(const struct tomoyo_path_info *filename,
 	if (filename->is_dir != pattern->is_dir)
 		return false;
 	/* Compare the initial length without patterns. */
-	if (strncmp(f, p, len))
+	if (memcmp(f, p, len))
 		return false;
 	f += len;
 	p += len;
diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c
index 3ff8cc5..0f03dc1 100644
--- a/sound/aoa/soundbus/i2sbus/core.c
+++ b/sound/aoa/soundbus/i2sbus/core.c
@@ -172,7 +172,7 @@ static int i2sbus_add_dev(struct macio_dev *macio,
 
 	if (strlen(np->name) != 5)
 		return 0;
-	if (strncmp(np->name, "i2s-", 4))
+	if (memcmp(np->name, "i2s-", 4))
 		return 0;
 
 	dev = kzalloc(sizeof(struct i2sbus_dev), GFP_KERNEL);
diff --git a/sound/core/control.c b/sound/core/control.c
index 45a8180..2eabf6f 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -551,7 +551,7 @@ struct snd_kcontrol *snd_ctl_find_id(struct snd_card *card,
 			continue;
 		if (kctl->id.subdevice != id->subdevice)
 			continue;
-		if (strncmp(kctl->id.name, id->name, sizeof(kctl->id.name)))
+		if (memcmp(kctl->id.name, id->name, sizeof(kctl->id.name)))
 			continue;
 		if (kctl->id.index > id->index)
 			continue;
diff --git a/sound/core/info.c b/sound/core/info.c
index 7077f60..a26d2e6 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -62,7 +62,7 @@ int snd_info_check_reserved_words(const char *str)
 			return 0;
 		xstr++;
 	}
-	if (!strncmp(str, "card", 4))
+	if (!memcmp(str, "card", 4))
 		return 0;
 	return 1;
 }
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index e7a8e9e..74e941d 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -240,7 +240,7 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
 
 	for (i = 0; i < SNDRV_SEQ_MAX_QUEUES; i++) {
 		if ((q = queueptr(i)) != NULL) {
-			if (strncmp(q->name, name, sizeof(q->name)) == 0)
+			if (memcmp(q->name, name, sizeof(q->name)) == 0)
 				return q;
 			queuefree(q);
 		}
diff --git a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c
index c7b80e4..3ee7b1f 100644
--- a/sound/isa/gus/interwave.c
+++ b/sound/isa/gus/interwave.c
@@ -447,7 +447,7 @@ static void __devinit snd_interwave_detect_memory(struct snd_gus_card * gus)
 		       iwave[0], iwave[1], iwave[2], iwave[3],
 		       iwave[4], iwave[5], iwave[6], iwave[7]);
 #endif
-		if (strncmp(iwave, "INTRWAVE", 8))
+		if (memcmp(iwave, "INTRWAVE", 8))
 			continue;	/* first check */
 		csum = 0;
 		for (i = 0; i < sizeof(struct rom_hdr); i++)
diff --git a/sound/isa/sc6000.c b/sound/isa/sc6000.c
index 9a8bbf6..848fec5 100644
--- a/sound/isa/sc6000.c
+++ b/sound/isa/sc6000.c
@@ -414,7 +414,7 @@ static int __devinit sc6000_init_board(char __iomem *vport,
 	 * My SC-6000 card return "SC-6000" in DSPCopyright, so
 	 * if we have something different, we have to be warned.
 	 */
-	if (strncmp("SC-6000", answer, 7))
+	if (memcmp("SC-6000", answer, 7))
 		snd_printk(KERN_WARNING "Warning: non SC-6000 audio card!\n");
 
 	if (sc6000_dsp_get_answer(vport, GET_DSP_VERSION, version, 2) < 2) {
diff --git a/sound/isa/sscape.c b/sound/isa/sscape.c
index e2d5d2d..a154163 100644
--- a/sound/isa/sscape.c
+++ b/sound/isa/sscape.c
@@ -1269,7 +1269,7 @@ static int __devinit sscape_pnp_detect(struct pnp_card_link *pcard,
 	/*
 	 * Identify card model ...
 	 */
-	if (!strncmp("ENS4081", pid->id, 7))
+	if (!memcmp("ENS4081", pid->id, 7))
 		sscape->type = SSCAPE_VIVO;
 	else
 		sscape->type = SSCAPE_PNP;
diff --git a/sound/oss/au1550_ac97.c b/sound/oss/au1550_ac97.c
index a8f626d..03cf294 100644
--- a/sound/oss/au1550_ac97.c
+++ b/sound/oss/au1550_ac97.c
@@ -2134,7 +2134,7 @@ au1550_setup(char *options)
 	while ((this_opt = strsep(&options, ","))) {
 		if (!*this_opt)
 			continue;
-		if (!strncmp(this_opt, "vra", 3)) {
+		if (!memcmp(this_opt, "vra", 3)) {
 			vra = 1;
 		}
 	}
diff --git a/sound/oss/sb_card.c b/sound/oss/sb_card.c
index 84ef4d0..d9303b5 100644
--- a/sound/oss/sb_card.c
+++ b/sound/oss/sb_card.c
@@ -177,7 +177,7 @@ static void sb_dev2cfg(struct pnp_dev *dev, struct sb_card_config *scc)
 
 	/* All clones layout their PnP tables differently and some use
 	   different logical devices for the MPU */
-	if(!strncmp("CTL",scc->card_id,3)) {
+	if(!memcmp("CTL",scc->card_id,3)) {
 		scc->conf.io_base   = pnp_port_start(dev,0);
 		scc->conf.irq       = pnp_irq(dev,0);
 		scc->conf.dma       = pnp_dma(dev,0);
@@ -185,14 +185,14 @@ static void sb_dev2cfg(struct pnp_dev *dev, struct sb_card_config *scc)
 		scc->mpucnf.io_base = pnp_port_start(dev,1);
 		return;
 	}
-	if(!strncmp("tBA",scc->card_id,3)) {
+	if(!memcmp("tBA",scc->card_id,3)) {
 		scc->conf.io_base   = pnp_port_start(dev,0);
 		scc->conf.irq       = pnp_irq(dev,0);
 		scc->conf.dma       = pnp_dma(dev,0);
 		scc->conf.dma2      = pnp_dma(dev,1);
 		return;
 	}
-	if(!strncmp("ESS",scc->card_id,3)) {
+	if(!memcmp("ESS",scc->card_id,3)) {
 		scc->conf.io_base   = pnp_port_start(dev,0);
 		scc->conf.irq       = pnp_irq(dev,0);
 		scc->conf.dma       = pnp_dma(dev,0);
@@ -200,21 +200,21 @@ static void sb_dev2cfg(struct pnp_dev *dev, struct sb_card_config *scc)
 	       	scc->mpucnf.io_base = pnp_port_start(dev,2);
 		return;
 	}
-	if(!strncmp("CMI",scc->card_id,3)) {
+	if(!memcmp("CMI",scc->card_id,3)) {
 		scc->conf.io_base = pnp_port_start(dev,0);
 		scc->conf.irq     = pnp_irq(dev,0);
 		scc->conf.dma     = pnp_dma(dev,0);
 		scc->conf.dma2    = pnp_dma(dev,1);
 		return;
 	}
-	if(!strncmp("RWB",scc->card_id,3)) {
+	if(!memcmp("RWB",scc->card_id,3)) {
 		scc->conf.io_base = pnp_port_start(dev,0);
 		scc->conf.irq     = pnp_irq(dev,0);
 		scc->conf.dma     = pnp_dma(dev,0);
 		return;
 	}
-	if(!strncmp("ALS",scc->card_id,3)) {
-		if(!strncmp("ALS0007",scc->card_id,7)) {
+	if(!memcmp("ALS",scc->card_id,3)) {
+		if(!memcmp("ALS0007",scc->card_id,7)) {
 			scc->conf.io_base = pnp_port_start(dev,0);
 			scc->conf.irq     = pnp_irq(dev,0);
 			scc->conf.dma     = pnp_dma(dev,0);
@@ -226,7 +226,7 @@ static void sb_dev2cfg(struct pnp_dev *dev, struct sb_card_config *scc)
 		}
 		return;
 	}
-	if(!strncmp("RTL",scc->card_id,3)) {
+	if(!memcmp("RTL",scc->card_id,3)) {
 		scc->conf.io_base = pnp_port_start(dev,0);
 		scc->conf.irq     = pnp_irq(dev,0);
 		scc->conf.dma     = pnp_dma(dev,1);
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 644e3f1..0e65202 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -4785,7 +4785,7 @@ int snd_hda_add_imux_item(struct hda_input_mux *imux, const char *label,
 		return -EINVAL;
 	}
 	for (i = 0; i < imux->num_items; i++) {
-		if (!strncmp(label, imux->items[i].label, strlen(label)))
+		if (!memcmp(label, imux->items[i].label, strlen(label)))
 			label_idx++;
 	}
 	if (type_idx)
diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c
index cb0c23a..1d746de 100644
--- a/sound/pci/hda/hda_eld.c
+++ b/sound/pci/hda/hda_eld.c
@@ -534,7 +534,7 @@ static void hdmi_write_eld_info(struct snd_info_entry *entry,
 			e->spk_alloc = val;
 		else if (!strcmp(name, "sad_count"))
 			e->sad_count = val;
-		else if (!strncmp(name, "sad", 3)) {
+		else if (!memcmp(name, "sad", 3)) {
 			sname = name + 4;
 			n = name[3] - '0';
 			if (name[4] >= '0' && name[4] <= '9') {
diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c
index 2849b36..b84e6ad 100644
--- a/sound/pci/oxygen/oxygen_mixer.c
+++ b/sound/pci/oxygen/oxygen_mixer.c
@@ -972,7 +972,7 @@ static int add_controls(struct oxygen *chip,
 		if (!strcmp(template.name, "Stereo Upmixing") &&
 		    chip->model.dac_channels == 2)
 			continue;
-		if (!strncmp(template.name, "CD Capture ", 11) &&
+		if (!memcmp(template.name, "CD Capture ", 11) &&
 		    !(chip->model.device_config & AC97_CD_INPUT))
 			continue;
 		if (!strcmp(template.name, "Master Playback Volume") &&
diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c
index d491fd6..b165993 100644
--- a/sound/pci/oxygen/xonar_pcm179x.c
+++ b/sound/pci/oxygen/xonar_pcm179x.c
@@ -922,7 +922,7 @@ static const DECLARE_TLV_DB_SCALE(pcm1796_db_scale, -6000, 50, 0);
 
 static int xonar_d2_control_filter(struct snd_kcontrol_new *template)
 {
-	if (!strncmp(template->name, "CD Capture ", 11))
+	if (!memcmp(template->name, "CD Capture ", 11))
 		/* CD in is actually connected to the video in pin */
 		template->private_value ^= AC97_CD ^ AC97_VIDEO;
 	return 0;
diff --git a/sound/ppc/keywest.c b/sound/ppc/keywest.c
index 8f064c7..9a4bfb4 100644
--- a/sound/ppc/keywest.c
+++ b/sound/ppc/keywest.c
@@ -51,7 +51,7 @@ static int keywest_attach_adapter(struct i2c_adapter *adapter)
 	if (! keywest_ctx)
 		return -EINVAL;
 
-	if (strncmp(adapter->name, "mac-io", 6))
+	if (memcmp(adapter->name, "mac-io", 6))
 		return 0; /* ignored */
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c
index 961d982..4402fa7 100644
--- a/sound/ppc/tumbler.c
+++ b/sound/ppc/tumbler.c
@@ -1141,7 +1141,7 @@ static long tumbler_find_device(const char *device, const char *platform,
 	} else {
 		const u32 *prop = NULL;
 		gp->active_state = IS_G4DA
-				&& !strncmp(device, "keywest-gpio1", 13);
+				&& !memcmp(device, "keywest-gpio1", 13);
 		gp->active_val = 0x4;
 		gp->inactive_val = 0x5;
 		/* Here are some crude hacks to extract the GPIO polarity and
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 441285a..4bedf55 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2582,7 +2582,7 @@ int snd_soc_limit_volume(struct snd_soc_codec *codec,
 		return -EINVAL;
 
 	list_for_each_entry(kctl, &card->controls, list) {
-		if (!strncmp(kctl->id.name, name, sizeof(kctl->id.name))) {
+		if (!memcmp(kctl->id.name, name, sizeof(kctl->id.name))) {
 			found = 1;
 			break;
 		}
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c
index 31f60a2..220cdbb 100644
--- a/tools/perf/builtin-kmem.c
+++ b/tools/perf/builtin-kmem.c
@@ -765,7 +765,7 @@ int cmd_kmem(int argc, const char **argv, const char *prefix __used)
 
 	symbol__init();
 
-	if (!strncmp(argv[0], "rec", 3)) {
+	if (!memcmp(argv[0], "rec", 3)) {
 		return __cmd_record(argc, argv);
 	} else if (!strcmp(argv[0], "stat")) {
 		setup_cpunode_map();
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index 34d1e85..f323948 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -127,15 +127,15 @@ int cmd_kvm(int argc, const char **argv, const char *prefix __used)
 		file_name = name_buffer;
 	}
 
-	if (!strncmp(argv[0], "rec", 3))
+	if (!memcmp(argv[0], "rec", 3))
 		return __cmd_record(argc, argv);
-	else if (!strncmp(argv[0], "rep", 3))
+	else if (!memcmp(argv[0], "rep", 3))
 		return __cmd_report(argc, argv);
-	else if (!strncmp(argv[0], "diff", 4))
+	else if (!memcmp(argv[0], "diff", 4))
 		return cmd_diff(argc, argv, NULL);
-	else if (!strncmp(argv[0], "top", 3))
+	else if (!memcmp(argv[0], "top", 3))
 		return cmd_top(argc, argv, NULL);
-	else if (!strncmp(argv[0], "buildid-list", 12))
+	else if (!memcmp(argv[0], "buildid-list", 12))
 		return __cmd_buildid_list(argc, argv);
 	else
 		usage_with_options(kvm_usage, kvm_options);
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
index 821c158..5bfdaea 100644
--- a/tools/perf/builtin-lock.c
+++ b/tools/perf/builtin-lock.c
@@ -971,9 +971,9 @@ int cmd_lock(int argc, const char **argv, const char *prefix __used)
 	if (!argc)
 		usage_with_options(lock_usage, lock_options);
 
-	if (!strncmp(argv[0], "rec", 3)) {
+	if (!memcmp(argv[0], "rec", 3)) {
 		return __cmd_record(argc, argv);
-	} else if (!strncmp(argv[0], "report", 6)) {
+	} else if (!memcmp(argv[0], "report", 6)) {
 		trace_handler = &report_lock_ops;
 		if (argc) {
 			argc = parse_options(argc, argv,
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 5de405d..82b6f8b 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -389,16 +389,16 @@ parse_callchain_opt(const struct option *opt __used, const char *arg,
 		return -1;
 
 	/* get the output mode */
-	if (!strncmp(tok, "graph", strlen(arg)))
+	if (!memcmp(tok, "graph", strlen(arg)))
 		callchain_param.mode = CHAIN_GRAPH_ABS;
 
-	else if (!strncmp(tok, "flat", strlen(arg)))
+	else if (!memcmp(tok, "flat", strlen(arg)))
 		callchain_param.mode = CHAIN_FLAT;
 
-	else if (!strncmp(tok, "fractal", strlen(arg)))
+	else if (!memcmp(tok, "fractal", strlen(arg)))
 		callchain_param.mode = CHAIN_GRAPH_REL;
 
-	else if (!strncmp(tok, "none", strlen(arg))) {
+	else if (!memcmp(tok, "none", strlen(arg))) {
 		callchain_param.mode = CHAIN_NONE;
 		symbol_conf.use_callchain = false;
 
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index 55f3b5d..afd09d5 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -1894,9 +1894,9 @@ int cmd_sched(int argc, const char **argv, const char *prefix __used)
 		return cmd_trace(argc, argv, prefix);
 
 	symbol__init();
-	if (!strncmp(argv[0], "rec", 3)) {
+	if (!memcmp(argv[0], "rec", 3)) {
 		return __cmd_record(argc, argv);
-	} else if (!strncmp(argv[0], "lat", 3)) {
+	} else if (!memcmp(argv[0], "lat", 3)) {
 		trace_handler = &lat_ops;
 		if (argc > 1) {
 			argc = parse_options(argc, argv, latency_options, latency_usage, 0);
@@ -1909,7 +1909,7 @@ int cmd_sched(int argc, const char **argv, const char *prefix __used)
 		trace_handler = &map_ops;
 		setup_sorting();
 		__cmd_map();
-	} else if (!strncmp(argv[0], "rep", 3)) {
+	} else if (!memcmp(argv[0], "rep", 3)) {
 		trace_handler = &replay_ops;
 		if (argc) {
 			argc = parse_options(argc, argv, replay_options, replay_usage, 0);
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 9bcc38f..02551c6 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -1029,7 +1029,7 @@ int cmd_timechart(int argc, const char **argv, const char *prefix __used)
 
 	symbol__init();
 
-	if (argc && !strncmp(argv[0], "rec", 3))
+	if (argc && !memcmp(argv[0], "rec", 3))
 		return __cmd_record(argc, argv);
 	else if (argc)
 		usage_with_options(timechart_usage, options);
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index dd62580..33e6704 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -947,8 +947,8 @@ static int symbol_filter(struct map *map, struct symbol *sym)
 	if (!strcmp(name, "_text") ||
 	    !strcmp(name, "_etext") ||
 	    !strcmp(name, "_sinittext") ||
-	    !strncmp("init_module", name, 11) ||
-	    !strncmp("cleanup_module", name, 14) ||
+	    !memcmp("init_module", name, 11) ||
+	    !memcmp("cleanup_module", name, 14) ||
 	    strstr(name, "_text_start") ||
 	    strstr(name, "_text_end"))
 		return 1;
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 86cfe38..bd0f962 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -387,7 +387,7 @@ static char *ends_with(char *str, const char *suffix)
 
 	if (strlen(str) > suffix_len) {
 		p = str + strlen(str) - suffix_len;
-		if (!strncmp(p, suffix, suffix_len))
+		if (!memcmp(p, suffix, suffix_len))
 			return p;
 	}
 
@@ -429,13 +429,13 @@ static int read_script_info(struct script_desc *desc, const char *filename)
 		if (strlen(p) && p[strlen(p) - 1] == '\n')
 			p[strlen(p) - 1] = '\0';
 
-		if (!strncmp(p, "description:", strlen("description:"))) {
+		if (!memcmp(p, "description:", strlen("description:"))) {
 			p += strlen("description:");
 			desc->half_liner = strdup(ltrim(p));
 			continue;
 		}
 
-		if (!strncmp(p, "args:", strlen("args:"))) {
+		if (!memcmp(p, "args:", strlen("args:"))) {
 			p += strlen("args:");
 			desc->args = strdup(ltrim(p));
 			continue;
@@ -629,13 +629,13 @@ int cmd_trace(int argc, const char **argv, const char *prefix __used)
 	argc = parse_options(argc, argv, options, trace_usage,
 			     PARSE_OPT_STOP_AT_NON_OPTION);
 
-	if (argc > 1 && !strncmp(argv[0], "rec", strlen("rec"))) {
+	if (argc > 1 && !memcmp(argv[0], "rec", strlen("rec"))) {
 		rec_script_path = get_script_path(argv[1], RECORD_SUFFIX);
 		if (!rec_script_path)
 			return cmd_record(argc, argv, NULL);
 	}
 
-	if (argc > 1 && !strncmp(argv[0], "rep", strlen("rep"))) {
+	if (argc > 1 && !memcmp(argv[0], "rep", strlen("rep"))) {
 		rep_script_path = get_script_path(argv[1], REPORT_SUFFIX);
 		if (!rep_script_path) {
 			fprintf(stderr,
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 4af5bd5..a128aef 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -579,7 +579,7 @@ parse_breakpoint_event(const char **strp, struct perf_event_attr *attr)
 	if (!target)
 		return EVT_FAILED;
 
-	if (strncmp(*strp, "mem", target - *strp) != 0)
+	if (memcmp(*strp, "mem", target - *strp) != 0)
 		return EVT_FAILED;
 
 	target++;
@@ -621,12 +621,12 @@ static int check_events(const char *str, unsigned int i)
 	int n;
 
 	n = strlen(event_symbols[i].symbol);
-	if (!strncmp(str, event_symbols[i].symbol, n))
+	if (!memcmp(str, event_symbols[i].symbol, n))
 		return n;
 
 	n = strlen(event_symbols[i].alias);
 	if (n)
-		if (!strncmp(str, event_symbols[i].alias, n))
+		if (!memcmp(str, event_symbols[i].alias, n))
 			return n;
 	return 0;
 }
diff --git a/tools/perf/util/parse-options.c b/tools/perf/util/parse-options.c
index 99d02aa..6a9d9d1 100644
--- a/tools/perf/util/parse-options.c
+++ b/tools/perf/util/parse-options.c
@@ -224,7 +224,7 @@ static int parse_long_opt(struct parse_opt_ctx_t *p, const char *arg,
 		}
 		if (!rest) {
 			/* abbreviated? */
-			if (!strncmp(options->long_name, arg, arg_end - arg)) {
+			if (!memcmp(options->long_name, arg, arg_end - arg)) {
 is_abbreviated:
 				if (abbrev_option) {
 					/*
@@ -248,7 +248,7 @@ is_abbreviated:
 				goto is_abbreviated;
 			}
 			/* negated? */
-			if (strncmp(arg, "no-", 3))
+			if (memcmp(arg, "no-", 3))
 				continue;
 			flags |= OPT_UNSET;
 			rest = skip_prefix(arg + 3, options->long_name);
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 3b6a529..6321fa3 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -117,7 +117,7 @@ const char *kernel_get_module_path(const char *module)
 
 	if (module) {
 		list_for_each_entry(dso, &machine.kernel_dsos, node) {
-			if (strncmp(dso->short_name + 1, module,
+			if (memcmp(dso->short_name + 1, module,
 				    dso->short_name_len - 2) == 0)
 				goto found;
 		}
diff --git a/tools/perf/util/strlist.c b/tools/perf/util/strlist.c
index 6783a20..9297d3e 100644
--- a/tools/perf/util/strlist.c
+++ b/tools/perf/util/strlist.c
@@ -128,7 +128,7 @@ struct str_node *strlist__find(struct strlist *self, const char *entry)
 
 static int strlist__parse_list_entry(struct strlist *self, const char *s)
 {
-	if (strncmp(s, "file://", 7) == 0)
+	if (memcmp(s, "file://", 7) == 0)
 		return strlist__load(self, s + 7);
 
 	return strlist__add(self, s);
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 0500895..9a88de8 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1430,7 +1430,7 @@ int dso__load(struct dso *self, struct map *map, symbol_filter_t filter)
 
 	self->adjust_symbols = 0;
 
-	if (strncmp(self->name, "/tmp/perf-", 10) == 0) {
+	if (memcmp(self->name, "/tmp/perf-", 10) == 0) {
 		ret = dso__load_perf_map(self, map, filter);
 		self->origin = ret > 0 ? DSO__ORIG_JAVA_JIT :
 					 DSO__ORIG_NOT_FOUND;
diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c
index 73a0222..a80c9a0 100644
--- a/tools/perf/util/trace-event-parse.c
+++ b/tools/perf/util/trace-event-parse.c
@@ -756,7 +756,7 @@ static int field_is_string(struct format_field *field)
 
 static int field_is_dynamic(struct format_field *field)
 {
-	if (!strncmp(field->type, "__data_loc", 10))
+	if (!memcmp(field->type, "__data_loc", 10))
 		return 1;
 
 	return 0;
diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
index 7562707..9b43d86 100644
--- a/tools/perf/util/util.h
+++ b/tools/perf/util/util.h
@@ -159,7 +159,7 @@ extern void disable_buildid_cache(void);
 static inline const char *skip_prefix(const char *str, const char *prefix)
 {
 	size_t len = strlen(prefix);
-	return strncmp(str, prefix, len) ? NULL : str + len;
+	return memcmp(str, prefix, len) ? NULL : str + len;
 }
 
 #ifdef __GLIBC_PREREQ

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
@ 2010-11-29  2:21 ` microcai
  2010-11-29  2:29 ` Ming Lei
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 19+ messages in thread
From: microcai @ 2010-11-29  2:21 UTC (permalink / raw)
  To: pavel; +Cc: LKML

2010/11/29 Pavel Vasilyev <pavel@pavlinux.ru>:
>
>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
>
> I test on x86_64 (AMD Opteron 285).
>
> #include <string.h>
> char *A = "0000";
> void test_memcmp(void) {
>        memcmp(A, "TEST", 4);
> }
> void test_strn(void) {
>        strncmp(A, "TEST", 4);
> }
> # gcc -c -O2 test.c
> # objdump -d test.o
> ...
>
> 0000000000000020 <test_strncmp>:
>  20:   f3 c3                   repz retq
>  22:   66 66 66 66 66 2e 0f    data32 data32 data32 data32 nopw
> %cs:0x0(%rax,%rax,1)
>  29:   1f 84 00 00 00 00 00
>
> 0000000000000030 <test_memcmp>:
>  30:   f3 c3                   repz retq
>
> Wow, minus  one commad :)
>

Wow, good, I test that patch ... can't see any performance
improvements.  but... works fine. and mem* generally better than str*
one, right?

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
  2010-11-29  2:21 ` microcai
@ 2010-11-29  2:29 ` Ming Lei
  2010-11-29  3:11   ` Pavel Vasilyev
  2010-11-29  3:10 ` Américo Wang
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Ming Lei @ 2010-11-29  2:29 UTC (permalink / raw)
  To: pavel; +Cc: LKML

Hi,

2010/11/29 Pavel Vasilyev <pavel@pavlinux.ru>:
>
>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
>
> I test on x86_64 (AMD Opteron 285).

In fact, memcmp doesn't handle case of tail of string, so
it is not safe to replace strncmp with memcmp

thanks,
-- 
Lei Ming

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
  2010-11-29  2:21 ` microcai
  2010-11-29  2:29 ` Ming Lei
@ 2010-11-29  3:10 ` Américo Wang
  2010-11-29 10:18 ` Andi Kleen
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 19+ messages in thread
From: Américo Wang @ 2010-11-29  3:10 UTC (permalink / raw)
  To: Pavel Vasilyev; +Cc: LKML

On Mon, Nov 29, 2010 at 05:09:10AM +0300, Pavel Vasilyev wrote:
>
>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
>
>I test on x86_64 (AMD Opteron 285).
>
>#include <string.h>
>char *A = "0000";
>void test_memcmp(void) {
>        memcmp(A, "TEST", 4);
>}
>void test_strn(void) {
>        strncmp(A, "TEST", 4);
>}

This is plain wrong, memcmp() doesn't handle the case that 'a'
is shorter than 'b', it may access beyond '\0'.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:29 ` Ming Lei
@ 2010-11-29  3:11   ` Pavel Vasilyev
  2010-11-29  4:13     ` Dmitry Torokhov
  0 siblings, 1 reply; 19+ messages in thread
From: Pavel Vasilyev @ 2010-11-29  3:11 UTC (permalink / raw)
  To: Ming Lei; +Cc: LKML

On 29.11.2010 05:29, Ming Lei wrote:
> Hi,
>
> 2010/11/29 Pavel Vasilyev <pavel@pavlinux.ru>:
>>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
>>
>> I test on x86_64 (AMD Opteron 285).
> In fact, memcmp doesn't handle case of tail of string, so
> it is not safe to replace strncmp with memcmp
>
#include <stdio.h>
#include <errno.h>

int main() {

   char *STR = "XXXX\0";
   char *XXX = "XXXX";
   int a, b;

     errno = 0; a = memcmp(STR, XXX, 5);  a += errno;
     errno = 0; b = strncmp(STR, XXX, 5); b += errno;
     printf("5 chars: %d %d \n", a, b);
     errno = 0; a = memcmp(STR, XXX, 4);  a += errno;
     errno = 0; b = strncmp(STR, XXX, 4); b += errno;
     printf("4 chars: %d %d \n", a, b);

     printf("SWAP STRINGS\n");

     errno = 0; a = memcmp(XXX, STR, 5);  a += errno;
     errno = 0; b = strncmp(XXX, STR, 5); b += errno;
     printf("5 chars: %d %d \n", a, b);
     errno = 0; a = memcmp(XXX, STR, 4);  a += errno;
     errno = 0; b = strncmp(XXX, STR, 4); b += errno;
     printf("4 chars: %d %d \n", a, b);

return 0;
}
----
# ./a.out
5 chars: 0 0
4 chars: 0 0
SWAP STRINGS
5 chars: 0 0
4 chars: 0 0

But I think the same thing  ;)

-- 

                                                         Pavel.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  3:11   ` Pavel Vasilyev
@ 2010-11-29  4:13     ` Dmitry Torokhov
  2010-11-29  5:26       ` YOSHIFUJI Hideaki
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Torokhov @ 2010-11-29  4:13 UTC (permalink / raw)
  To: Pavel Vasilyev; +Cc: Ming Lei, LKML

On Mon, Nov 29, 2010 at 06:11:21AM +0300, Pavel Vasilyev wrote:
> On 29.11.2010 05:29, Ming Lei wrote:
> > Hi,
> >
> > 2010/11/29 Pavel Vasilyev <pavel@pavlinux.ru>:
> >>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
> >>
> >> I test on x86_64 (AMD Opteron 285).
> > In fact, memcmp doesn't handle case of tail of string, so
> > it is not safe to replace strncmp with memcmp
> >
> #include <stdio.h>
> #include <errno.h>
> 
> int main() {
> 
>    char *STR = "XXXX\0";
>    char *XXX = "XXXX";

Try comparing:

"XXXX\0YYYY" and
"XXXX\0ZZZZ"

and observe the difference.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  4:13     ` Dmitry Torokhov
@ 2010-11-29  5:26       ` YOSHIFUJI Hideaki
  2010-11-29 12:41         ` Pavel Vasilyev
  0 siblings, 1 reply; 19+ messages in thread
From: YOSHIFUJI Hideaki @ 2010-11-29  5:26 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: Pavel Vasilyev, Ming Lei, LKML, yoshfuji

2010-11-28 (Sun) 20:13 -0800, Dmitry Torokhov wrote:
> On Mon, Nov 29, 2010 at 06:11:21AM +0300, Pavel Vasilyev wrote:
> > On 29.11.2010 05:29, Ming Lei wrote:
> > > Hi,
> > >
> > > 2010/11/29 Pavel Vasilyev <pavel@pavlinux.ru>:
> > >>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
> > >>
> > >> I test on x86_64 (AMD Opteron 285).
> > > In fact, memcmp doesn't handle case of tail of string, so
> > > it is not safe to replace strncmp with memcmp
> > >
> > #include <stdio.h>
> > #include <errno.h>
> > 
> > int main() {
> > 
> >    char *STR = "XXXX\0";
> >    char *XXX = "XXXX";
> 
> Try comparing:
> 
> "XXXX\0YYYY" and
> "XXXX\0ZZZZ"
> 
> and observe the difference.
> 

Yes, if both of the strings are NOT known to have enough length.

It is safe to replace strncmp(a,b,n) with memcmp(a,b,n)
if a or b is/are known to have enough length; strlen(a) >= n ||
strlen(b) >= n.

I think some of the replacements in the original patch are valid,
but for even those valid replacement, I think it is worth doing
that in hot code paths only.

--yoshfuji


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
                   ` (2 preceding siblings ...)
  2010-11-29  3:10 ` Américo Wang
@ 2010-11-29 10:18 ` Andi Kleen
  2010-11-29 14:58 ` Steven Rostedt
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 19+ messages in thread
From: Andi Kleen @ 2010-11-29 10:18 UTC (permalink / raw)
  To: pavel; +Cc: LKML

Pavel Vasilyev <pavel@pavlinux.ru> writes:

>     This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).

Those two calls are not equivalent. Think what happens when a or b
are shorter than n and one of them is at the end of a page 
before a memory hole.

-Andi

-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  5:26       ` YOSHIFUJI Hideaki
@ 2010-11-29 12:41         ` Pavel Vasilyev
  0 siblings, 0 replies; 19+ messages in thread
From: Pavel Vasilyev @ 2010-11-29 12:41 UTC (permalink / raw)
  To: YOSHIFUJI Hideaki; +Cc: Dmitry Torokhov, Ming Lei, LKML

[-- Attachment #1: Type: text/plain, Size: 1233 bytes --]

On 29.11.2010 08:26, YOSHIFUJI Hideaki wrote:
> 2010-11-28 (Sun) 20:13 -0800, Dmitry Torokhov wrote:
>> On Mon, Nov 29, 2010 at 06:11:21AM +0300, Pavel Vasilyev wrote:
>>> On 29.11.2010 05:29, Ming Lei wrote:
>>>> 2010/11/29 Pavel Vasilyev <pavel@pavlinux.ru>:
>>>>>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
>>>>> I test on x86_64 (AMD Opteron 285).
>>>> In fact, memcmp doesn't handle case of tail of string, so
>>>> it is not safe to replace strncmp with memcmp
>>> #include <stdio.h>
>>> #include <errno.h>
>>> int main() {
>>>    char *STR = "XXXX\0";
>>>    char *XXX = "XXXX";
>> Try comparing:
>> "XXXX\0YYYY" and
>> "XXXX\0ZZZZ"
>>
>> and observe the difference.
> Yes, if both of the strings are NOT known to have enough length.
>
> It is safe to replace strncmp(a,b,n) with memcmp(a,b,n)
> if a or b is/are known to have enough length; strlen(a) >= n ||
> strlen(b) >= n.
>
> I think some of the replacements in the original patch are valid,
> but for even those valid replacement, I think it is worth doing
> that in hot code paths only.
In my fact, the system has been running for two days, with this
configuration (in attach)

-- 

                                                         Pavel.


[-- Attachment #2: config-2.6.37-rc3+ --]
[-- Type: text/plain, Size: 58458 bytes --]

#
# Automatically generated make config: don't edit
# Linux/x86_64 2.6.37-rc3 Kernel Configuration
# Mon Nov 29 05:22:39 2010
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ZONE_DMA32=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_X86_64_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
# CONFIG_KTIME_SCALAR is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set
CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
# CONFIG_AUTO_IRQ_AFFINITY is not set
# CONFIG_IRQ_PER_CPU is not set
# CONFIG_HARDIRQS_SW_RESEND is not set
CONFIG_SPARSE_IRQ=y

#
# RCU Subsystem
#
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=64
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_NS=y
# CONFIG_CGROUP_FREEZER is not set
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_MEM_RES_CTLR=y
# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_MM_OWNER=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EMBEDDED is not set
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_HAVE_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y

#
# GCOV-based kernel profiling
#
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
# CONFIG_INLINE_SPIN_UNLOCK is not set
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
# CONFIG_INLINE_READ_UNLOCK is not set
# CONFIG_INLINE_READ_UNLOCK_BH is not set
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
# CONFIG_INLINE_WRITE_UNLOCK is not set
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
CONFIG_MUTEX_SPIN_ON_OWNER=y
# CONFIG_FREEZER is not set

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
# CONFIG_X86_MPPARSE is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
CONFIG_NO_BOOTMEM=y
# CONFIG_MEMTEST is not set
CONFIG_MK8=y
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=7
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
CONFIG_GART_IOMMU=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_AMD_IOMMU=y
# CONFIG_AMD_IOMMU_STATS is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
CONFIG_IOMMU_API=y
CONFIG_NR_CPUS=4
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_INTEL is not set
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DIRECT_GBPAGES=y
CONFIG_NUMA=y
# CONFIG_K8_NUMA is not set
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NODES_SPAN_OTHER_NODES=y
# CONFIG_NUMA_EMU is not set
CONFIG_NODES_SHIFT=2
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_MEMBLOCK=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW=64
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
# CONFIG_EFI is not set
CONFIG_SECCOMP=y
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x1000000
# CONFIG_HOTPLUG_CPU is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="agp=off reset_devices tsc=reliable"
# CONFIG_CMDLINE_OVERRIDE is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y

#
# Power management and ACPI options
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_SUSPEND is not set
# CONFIG_HIBERNATION is not set
CONFIG_PM_RUNTIME=y
CONFIG_PM_OPS=y
CONFIG_ACPI=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROCFS_POWER=y
# CONFIG_ACPI_POWER_METER is not set
# CONFIG_ACPI_EC_DEBUGFS is not set
CONFIG_ACPI_PROC_EVENT=y
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_PCI_SLOT is not set
CONFIG_X86_PM_TIMER=y
# CONFIG_ACPI_CONTAINER is not set
# CONFIG_ACPI_SBS is not set
# CONFIG_ACPI_HED is not set
# CONFIG_ACPI_APEI is not set
# CONFIG_SFI is not set

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
# CONFIG_CPU_FREQ_STAT is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
# CPUFreq processor drivers
#
# CONFIG_X86_PCC_CPUFREQ is not set
# CONFIG_X86_ACPI_CPUFREQ is not set
CONFIG_X86_POWERNOW_K8=y
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_P4_CLOCKMOD is not set

#
# shared options
#
# CONFIG_X86_SPEEDSTEP_LIB is not set
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_INTEL_IDLE is not set

#
# Memory power savings
#
# CONFIG_I7300_IDLE is not set

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
# CONFIG_PCI_MMCONFIG is not set
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_CNB20LE_QUIRK is not set
CONFIG_DMAR=y
CONFIG_DMAR_DEFAULT_ON=y
CONFIG_DMAR_FLOPPY_WA=y
# CONFIG_INTR_REMAP is not set
CONFIG_PCIEPORTBUS=y
# CONFIG_PCIEAER is not set
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIE_PME=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_STUB is not set
CONFIG_HT_IRQ=y
# CONFIG_PCI_IOV is not set
CONFIG_PCI_IOAPIC=y
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
# CONFIG_IA32_EMULATION is not set
# CONFIG_COMPAT_FOR_U64_ALIGNMENT is not set
CONFIG_HAVE_TEXT_POKE_SMP=y
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=y
CONFIG_TCP_CONG_CUBIC=m
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_DEFAULT_BIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="bic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
# CONFIG_NF_CONNTRACK_ZONES is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
CONFIG_NF_CT_PROTO_GRE=m
# CONFIG_NF_CT_PROTO_SCTP is not set
CONFIG_NF_CT_PROTO_UDPLITE=m
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_TPROXY=m
CONFIG_NETFILTER_XTABLES=y

#
# Xtables combined modules
#
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_CONNMARK=m

#
# Xtables targets
#
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_RATEEST=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m

#
# Xtables matches
#
CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_HL=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_RECENT=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_SOCKET=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
# CONFIG_IP_VS is not set

#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_PROTO_UDPLITE=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
# CONFIG_NF_NAT_AMANDA is not set
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
CONFIG_STP=m
CONFIG_BRIDGE=m
CONFIG_BRIDGE_IGMP_SNOOPING=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
CONFIG_LLC=m
CONFIG_LLC2=m
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
CONFIG_NET_SCHED=y

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_INGRESS=m

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
# CONFIG_NET_CLS_RSVP is not set
# CONFIG_NET_CLS_RSVP6 is not set
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
# CONFIG_NET_ACT_SIMP is not set
CONFIG_NET_ACT_SKBEDIT=m
CONFIG_NET_ACT_CSUM=m
CONFIG_NET_CLS_IND=y
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
CONFIG_RPS=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH=""
# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG_MESSAGES is not set

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set

#
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
#
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_WAIT_SCAN=m

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
# CONFIG_ATA_VERBOSE_ERROR is not set
# CONFIG_ATA_ACPI is not set
# CONFIG_SATA_PMP is not set

#
# Controllers with non-SFF native interface
#
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_AHCI_PLATFORM is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y

#
# SFF controllers with custom DMA interface
#
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
CONFIG_SATA_SX4=m
CONFIG_ATA_BMDMA=y

#
# SATA SFF controllers with BMDMA
#
# CONFIG_ATA_PIIX is not set
CONFIG_SATA_MV=m
CONFIG_SATA_NV=y
CONFIG_SATA_PROMISE=m
CONFIG_SATA_SIL=m
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_SVW is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set

#
# PATA SFF controllers with BMDMA
#
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_ATP867X is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RDC is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SCH is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_TOSHIBA is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set

#
# PIO-only SFF controllers
#
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_RZ1000 is not set

#
# Generic fallback / legacy drivers
#
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_LEGACY is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_IFB is not set
# CONFIG_DUMMY is not set
CONFIG_BONDING=m
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
CONFIG_MII=m
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_ETHOC is not set
# CONFIG_DNET is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_KSZ884X_PCI is not set
# CONFIG_B44 is not set
CONFIG_FORCEDETH=y
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_R6040 is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SMSC9420 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_KS8851_MLL is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
# CONFIG_ATL2 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
# CONFIG_WLAN is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_WAN is not set

#
# CAIF transport drivers
#
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_DEVKMEM is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_N_GSM is not set
# CONFIG_NOZOMI is not set

#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
CONFIG_FIX_EARLYCON_MEM=y

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_MFD_HSU is not set
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=y
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
# CONFIG_RAMOOPS is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
# CONFIG_I2C_MUX is not set
CONFIG_I2C_HELPER_AUTO=y

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_NFORCE2=y
# CONFIG_I2C_NFORCE2_S4985 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set

#
# ACPI drivers
#
CONFIG_I2C_SCMI=y

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_INTEL_MID is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set

#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set

#
# PPS support
#
# CONFIG_PPS is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=m
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_PDA_POWER=m
# CONFIG_TEST_POWER is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_BQ20Z75 is not set
# CONFIG_BATTERY_BQ27x00 is not set
# CONFIG_BATTERY_MAX17040 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Native drivers
#
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7411 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_ASC7621 is not set
CONFIG_SENSORS_K8TEMP=y
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_PKGTEMP is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_SMM665 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC2103 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
CONFIG_SENSORS_SMSC47B397=m
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VIA_CPUTEMP is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_SENSORS_APPLESMC is not set

#
# ACPI drivers
#
# CONFIG_SENSORS_ATK0110 is not set
# CONFIG_SENSORS_LIS3LV02D is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
# CONFIG_MFD_SUPPORT is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
# CONFIG_AGP is not set
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=1
# CONFIG_VGA_SWITCHEROO is not set
# CONFIG_DRM is not set
# CONFIG_STUB_POULSBO is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
CONFIG_FB_FOREIGN_ENDIAN=y
# CONFIG_FB_BOTH_ENDIAN is not set
# CONFIG_FB_BIG_ENDIAN is not set
CONFIG_FB_LITTLE_ENDIAN=y
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
# CONFIG_FB_MODE_HELPERS is not set
# CONFIG_FB_TILEBLITTING is not set

#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
CONFIG_FONT_ACORN_8x8=y
# CONFIG_FONT_MINI_4x6 is not set
CONFIG_FONT_SUN8x16=y
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
# CONFIG_LOGO is not set
CONFIG_SOUND=y
CONFIG_SOUND_OSS_CORE=y
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
# CONFIG_SND_SEQUENCER is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_HRTIMER=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
# CONFIG_SND_RAWMIDI_SEQ is not set
# CONFIG_SND_OPL3_LIB_SEQ is not set
# CONFIG_SND_OPL4_LIB_SEQ is not set
# CONFIG_SND_SBAWE_SEQ is not set
# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_ALOOP is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ASIHPI is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5530 is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_CTXFI is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_HIFIER is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
CONFIG_SND_INTEL8X0=m
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_LX6464ES is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_USB is not set
# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HIDRAW is not set

#
# USB Input Devices
#
CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set

#
# Special HID drivers
#
# CONFIG_HID_3M_PCT is not set
CONFIG_HID_A4TECH=y
# CONFIG_HID_ACRUX_FF is not set
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
# CONFIG_HID_CANDO is not set
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
# CONFIG_HID_PRODIKEYS is not set
CONFIG_HID_CYPRESS=y
# CONFIG_HID_DRAGONRISE is not set
# CONFIG_HID_EGALAX is not set
CONFIG_HID_EZKEY=y
CONFIG_HID_KYE=y
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_TWINHAN is not set
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
# CONFIG_LOGIG940_FF is not set
# CONFIG_LOGIWII_FF is not set
CONFIG_HID_MICROSOFT=y
# CONFIG_HID_MOSART is not set
CONFIG_HID_MONTEREY=y
# CONFIG_HID_NTRIG is not set
# CONFIG_HID_ORTEK is not set
# CONFIG_HID_PANTHERLORD is not set
# CONFIG_HID_PETALYNX is not set
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_QUANTA is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_ROCCAT_KONE is not set
# CONFIG_HID_ROCCAT_PYRA is not set
# CONFIG_HID_SAMSUNG is not set
# CONFIG_HID_SONY is not set
# CONFIG_HID_STANTUM is not set
# CONFIG_HID_SUNPLUS is not set
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TOPSEED is not set
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_ZEROPLUS is not set
# CONFIG_HID_ZYDACRON is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set

#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
# CONFIG_USB_XHCI_HCD is not set
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
# CONFIG_USB_ISP1362_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_WHCI_HCD is not set
# CONFIG_USB_HWA_HCD is not set

#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
CONFIG_USB_PRINTER=m
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#

#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_UAS is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set

#
# USB port drivers
#
CONFIG_USB_SERIAL=m
# CONFIG_USB_EZUSB is not set
# CONFIG_USB_SERIAL_GENERIC is not set
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_CH341 is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_CP210X is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
# CONFIG_USB_SERIAL_FTDI_SIO is not set
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
CONFIG_USB_SERIAL_GARMIN=m
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_IUU is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MOTOROLA is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_QCAUX is not set
# CONFIG_USB_SERIAL_QUALCOMM is not set
# CONFIG_USB_SERIAL_SPCP8X5 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SAMBA is not set
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_SYMBOL is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OPTION is not set
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_OPTICON is not set
# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
# CONFIG_USB_SERIAL_ZIO is not set
# CONFIG_USB_SERIAL_SSU100 is not set
# CONFIG_USB_SERIAL_DEBUG is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set
# CONFIG_USB_GADGET is not set

#
# OTG and related infrastructure
#
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
# CONFIG_RTC_DEBUG is not set

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set

#
# SPI RTC drivers
#

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set

#
# on-CPU RTC drivers
#
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
# CONFIG_INTEL_MID_DMAC is not set
# CONFIG_INTEL_IOATDMA is not set
# CONFIG_TIMB_DMA is not set
# CONFIG_PCH_DMA is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
CONFIG_STAGING=y
# CONFIG_STAGING_EXCLUDE_BUILD is not set
# CONFIG_ECHO is not set
# CONFIG_COMEDI is not set
# CONFIG_ASUS_OLED is not set
# CONFIG_TRANZPORT is not set
# CONFIG_POHMELFS is not set
# CONFIG_IDE_PHISON is not set
# CONFIG_LINE6_USB is not set
# CONFIG_USB_SERIAL_QUATECH2 is not set
# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
# CONFIG_FB_UDL is not set
# CONFIG_HYPERV is not set
# CONFIG_VME_BUS is not set
# CONFIG_IIO is not set
CONFIG_ZRAM=m
# CONFIG_BATMAN_ADV is not set
# CONFIG_FB_SM7XX is not set
# CONFIG_CRYSTALHD is not set

#
# Texas Instruments shared transport line discipline
#
# CONFIG_FB_XGI is not set
# CONFIG_ACPI_QUICKSTART is not set
CONFIG_MACH_NO_WESTBRIDGE=y
# CONFIG_USB_ENESTORAGE is not set
# CONFIG_BCM_WIMAX is not set
# CONFIG_FT1000 is not set

#
# Speakup console speech
#
# CONFIG_SPEAKUP is not set
# CONFIG_X86_PLATFORM_DEVICES is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
# CONFIG_DMIID is not set
# CONFIG_ISCSI_IBFT_FIND is not set

#
# File systems
#
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=y
# CONFIG_XFS_QUOTA is not set
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
# CONFIG_XFS_DEBUG is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_NILFS2_FS is not set
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_FANOTIFY=y
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
# CONFIG_CUSE is not set
CONFIG_GENERIC_ACL=y

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=866
CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_CEPH_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
CONFIG_CIFS_EXPERIMENTAL=y
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf-8"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
CONFIG_NLS_CODEPAGE_866=m
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
CONFIG_NLS_KOI8_R=m
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
# CONFIG_DLM is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=512
CONFIG_MAGIC_SYSRQ=y
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
CONFIG_HEADERS_CHECK=y
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_BKL is not set
# CONFIG_SPARSE_RCU_POINTER is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
# CONFIG_FRAME_POINTER is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_BUILD_DOCSRC is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_HAVE_ARCH_KMEMCHECK=y
CONFIG_STRICT_DEVMEM=y
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
# CONFIG_IO_DELAY_0X80 is not set
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
CONFIG_IO_DELAY_NONE=y
CONFIG_DEFAULT_IO_DELAY_TYPE=3
CONFIG_OPTIMIZE_INLINING=y

#
# Security options
#
# CONFIG_KEYS is not set
CONFIG_SECURITY_DMESG_RESTRICT=y
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
# CONFIG_INTEL_TXT is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=m
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=m
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_PCRYPT is not set
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_TEST is not set

#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set

#
# Block modes
#
# CONFIG_CRYPTO_CBC is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_XTS is not set

#
# Hash modes
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set

#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32C_INTEL is not set
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=m
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set

#
# Ciphers
#
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_X86_64=m
# CONFIG_CRYPTO_AES_NI_INTEL is not set
# CONFIG_CRYPTO_ANUBIS is not set
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_X86_64 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_TEA is not set
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_ZLIB=m
CONFIG_CRYPTO_LZO=y

#
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
# CONFIG_CRYPTO_HW is not set
CONFIG_HAVE_KVM=y
# CONFIG_VIRTUALIZATION is not set
# CONFIG_BINARY_PRINTF is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_FIND_LAST_BIT=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_NLATTR=y

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
                   ` (3 preceding siblings ...)
  2010-11-29 10:18 ` Andi Kleen
@ 2010-11-29 14:58 ` Steven Rostedt
  2010-11-29 19:41   ` Pavel Vasilyev
  2010-11-29 23:32 ` Arnaud Lacombe
  2010-11-30 10:34 ` Bernd Petrovitsch
  6 siblings, 1 reply; 19+ messages in thread
From: Steven Rostedt @ 2010-11-29 14:58 UTC (permalink / raw)
  To: pavel; +Cc: LKML

On Mon, 2010-11-29 at 05:09 +0300, Pavel Vasilyev wrote:
> This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).

But these are not the same. strncmp() will stop when a or b hit a null.
I'm not sure if memcmp() must do so, It may for some reason check
anything within the memory of a+c-1 or b+c-1. What happens if a or b are
right at the end of a vmalloc page, and is just a single character and
null?

	x = vmalloc(32);
	strcpy(x, "some 31 byte string + null");

	call_func(x + 31);

in call_func we have:

	call_func(char *a) {

	strncmp(a, "this is some big string", 23);

With strncmp() when we hit a+1, it will stop comparing because a+1 is
null. With memcmp there's no such guarantee. We can then take a kernel
oops.

That will be a nice thing to try to debug.

Yes the above is contrived, but it demonstrates a possible problem with
this conversion.

-- Steve

> 
> I test on x86_64 (AMD Opteron 285).
> 
> #include <string.h>
> char *A = "0000";
> void test_memcmp(void) {
>         memcmp(A, "TEST", 4);
> }
> void test_strn(void) {
>         strncmp(A, "TEST", 4);
> }
> # gcc -c -O2 test.c
> # objdump -d test.o
> ...
> 
> 0000000000000020 <test_strncmp>:
>   20:   f3 c3                   repz retq
>   22:   66 66 66 66 66 2e 0f    data32 data32 data32 data32 nopw
> %cs:0x0(%rax,%rax,1)
>   29:   1f 84 00 00 00 00 00
> 
> 0000000000000030 <test_memcmp>:
>   30:   f3 c3                   repz retq
> 
> Wow, minus  one commad :)
> 



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29 14:58 ` Steven Rostedt
@ 2010-11-29 19:41   ` Pavel Vasilyev
  2010-11-29 22:18     ` Steven Rostedt
  0 siblings, 1 reply; 19+ messages in thread
From: Pavel Vasilyev @ 2010-11-29 19:41 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: LKML

On 29.11.2010 17:58, Steven Rostedt wrote:
> On Mon, 2010-11-29 at 05:09 +0300, Pavel Vasilyev wrote:
>> This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
> But these are not the same. strncmp() will stop when a or b hit a null.
> I'm not sure if memcmp() must do so, It may for some reason check
> anything within the memory of a+c-1 or b+c-1. What happens if a or b are
> right at the end of a vmalloc page, and is just a single character and
> null?
>
> 	x = vmalloc(32);
> 	strcpy(x, "some 31 byte string + null");
>
> 	call_func(x + 31);
>
> in call_func we have:
>
> 	call_func(char *a) {
>
> 	strncmp(a, "this is some big string", 23);
>
> With strncmp() when we hit a+1, it will stop comparing because a+1 is
> null. With memcmp there's no such guarantee. We can then take a kernel
> oops.
>
> That will be a nice thing to try to debug.
>
> Yes the above is contrived, but it demonstrates a possible problem with
> this conversion.
#include <stdio.h>
#include <errno.h>

char STR[5] = {'X','X','\0','X','X'};
char *XXX = "XX\0XX";

int main ()
{
  int a, b;
    a = memcmp  (XXX, STR, 5);
    b = strcmp (XXX, STR);
  printf (": %d %d \n", a, b);
 return 0;
}
./a.out
0 0

:)

#gdb ./a.out
(gdb) b main
Breakpoint 1 at 0x4005dc: file test.c, line 10.
(gdb) run
Starting program: /tmp/a.out

Breakpoint 1, main () at test.c:10
10        a = memcmp  (STR, XXX, 5);
(gdb) print XXX
$1 = 0x400731 "XX"
(gdb) print STR
$2 = "XX\000XX"
....
Oops, variable XXX set to XX, var. STR not changed.
Seems to me, that they into strsmp() and memcmp() already gets without
the null character.

P.S.
pavel@suse64:/tmp> gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.5/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5
--enable-ssp --disable-libssp --disable-plugin
--with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux'
--disable-libgcj --disable-libmudflap --with-slibdir=/lib64
--with-system-zlib --enable-__cxa_atexit
--enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --program-suffix=-4.5
--enable-linux-futex --without-system-libunwind --enable-gold
--with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic
--build=x86_64-suse-linux
Thread model: posix
gcc version 4.5.1 20101116 [gcc-4_5-branch revision 166793] (SUSE Linux
-- 

                                                         Pavel.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29 19:41   ` Pavel Vasilyev
@ 2010-11-29 22:18     ` Steven Rostedt
  2010-11-29 22:26       ` Steven Rostedt
  0 siblings, 1 reply; 19+ messages in thread
From: Steven Rostedt @ 2010-11-29 22:18 UTC (permalink / raw)
  To: pavel; +Cc: LKML

On Mon, 2010-11-29 at 22:41 +0300, Pavel Vasilyev wrote:
> On 29.11.2010 17:58, Steven Rostedt wrote:
> > On Mon, 2010-11-29 at 05:09 +0300, Pavel Vasilyev wrote:
> >> This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
> > But these are not the same. strncmp() will stop when a or b hit a null.
> > I'm not sure if memcmp() must do so, It may for some reason check
> > anything within the memory of a+c-1 or b+c-1. What happens if a or b are
> > right at the end of a vmalloc page, and is just a single character and
> > null?
> >
> > 	x = vmalloc(32);
> > 	strcpy(x, "some 31 byte string + null");
> >
> > 	call_func(x + 31);
> >
> > in call_func we have:
> >
> > 	call_func(char *a) {
> >
> > 	strncmp(a, "this is some big string", 23);
> >
> > With strncmp() when we hit a+1, it will stop comparing because a+1 is
> > null. With memcmp there's no such guarantee. We can then take a kernel
> > oops.
> >
> > That will be a nice thing to try to debug.
> >
> > Yes the above is contrived, but it demonstrates a possible problem with
> > this conversion.
> #include <stdio.h>
> #include <errno.h>
> 
> char STR[5] = {'X','X','\0','X','X'};
> char *XXX = "XX\0XX";
> 
> int main ()
> {
>   int a, b;
>     a = memcmp  (XXX, STR, 5);
>     b = strcmp (XXX, STR);
>   printf (": %d %d \n", a, b);
>  return 0;
> }
> ./a.out
> 0 0
> 
> :)

Um, do you realize that the kernel does not always use the same memcmp
as gcc.


> 
> #gdb ./a.out
> (gdb) b main
> Breakpoint 1 at 0x4005dc: file test.c, line 10.
> (gdb) run
> Starting program: /tmp/a.out
> 
> Breakpoint 1, main () at test.c:10
> 10        a = memcmp  (STR, XXX, 5);
> (gdb) print XXX
> $1 = 0x400731 "XX"
> (gdb) print STR
> $2 = "XX\000XX"
> ....
> Oops, variable XXX set to XX, var. STR not changed.
> Seems to me, that they into strsmp() and memcmp() already gets without
> the null character.
> 
> P.S.
> pavel@suse64:/tmp> gcc -v

This is meaningless, because the kernel may have its own memcmp and
strncmp.

And you seem to be missing my point. I'm not saying that it will give
you an incorrect result, I'm saying that if memcmp simply reads the
memory that is not mapped in, then you might cause the kernel to crash.

This is fine if all implementations of memcmp() reads the data
sequentially and stops when not equal. If for some reason there's an
implementation that compares, not from the beginning of the data, but
say from the end, then this can cause a fault.

Note, that strncmp and memcmp act differently for:

	(a, b, c) where c is larger than strlen(a)+1 and strlen(b)+1,

 and the two match. Try it:

	char *a = "abc\0 123";
	char *b = "abc\0 456";

	printf("%d %d\n", strncmp(a, b, 10), memcmp(a, b, 10));

-- Steve


> 
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.5/lto-wrapper
> Target: x86_64-suse-linux
> Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
> --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
> --enable-languages=c,c++,objc,fortran,obj-c++,java,ada
> --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5
> --enable-ssp --disable-libssp --disable-plugin
> --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux'
> --disable-libgcj --disable-libmudflap --with-slibdir=/lib64
> --with-system-zlib --enable-__cxa_atexit
> --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
> --enable-version-specific-runtime-libs --program-suffix=-4.5
> --enable-linux-futex --without-system-libunwind --enable-gold
> --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic
> --build=x86_64-suse-linux
> Thread model: posix
> gcc version 4.5.1 20101116 [gcc-4_5-branch revision 166793] (SUSE Linux



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29 22:18     ` Steven Rostedt
@ 2010-11-29 22:26       ` Steven Rostedt
  2010-11-29 22:49         ` Pavel Vasilyev
  2010-11-29 22:51         ` Ryan Mallon
  0 siblings, 2 replies; 19+ messages in thread
From: Steven Rostedt @ 2010-11-29 22:26 UTC (permalink / raw)
  To: pavel; +Cc: LKML

On Mon, 2010-11-29 at 17:18 -0500, Steven Rostedt wrote:

> Um, do you realize that the kernel does not always use the same memcmp
> as gcc.
> 

Note, I'm not against the change, because in 99% of the cases, memcmp()
can and will be faster, and we don't need to worry about these strange
cases.

What I'm against is a blind s/strncmp/memcmp/ of the kernel, because it
may have side effects that you may not have thought of.

-- Steve



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29 22:26       ` Steven Rostedt
@ 2010-11-29 22:49         ` Pavel Vasilyev
  2010-11-30  9:24           ` Américo Wang
  2010-11-29 22:51         ` Ryan Mallon
  1 sibling, 1 reply; 19+ messages in thread
From: Pavel Vasilyev @ 2010-11-29 22:49 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: LKML

On 30.11.2010 01:26, Steven Rostedt wrote:
> On Mon, 2010-11-29 at 17:18 -0500, Steven Rostedt wrote:
>
>> Um, do you realize that the kernel does not always use the same memcmp
>> as gcc.
>>
> Note, I'm not against the change, because in 99% of the cases, memcmp()
> can and will be faster, and we don't need to worry about these strange
> cases.
>
> What I'm against is a blind s/strncmp/memcmp/ of the kernel, because it
> may have side effects that you may not have thought of.
>
Then we have to hang a large banner that is visible to all developers.
"Change wherever possible strncmp to memcmp," :)

-- 

                                                         Pavel.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29 22:26       ` Steven Rostedt
  2010-11-29 22:49         ` Pavel Vasilyev
@ 2010-11-29 22:51         ` Ryan Mallon
  2010-11-30 10:27           ` Bernd Petrovitsch
  1 sibling, 1 reply; 19+ messages in thread
From: Ryan Mallon @ 2010-11-29 22:51 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: pavel, LKML

On 11/30/2010 11:26 AM, Steven Rostedt wrote:
> On Mon, 2010-11-29 at 17:18 -0500, Steven Rostedt wrote:
> 
>> Um, do you realize that the kernel does not always use the same memcmp
>> as gcc.
>>
> 
> Note, I'm not against the change, because in 99% of the cases, memcmp()
> can and will be faster, and we don't need to worry about these strange
> cases.

It can still break things in subtle ways. Lots of the replacements are
of the form:

  if (strncmp(string, "foo", 3) == 0)

Which can only be replaced with memcmp if the minimum length of string
is _always_ 3. This may be true for some callsites (with careful audit),
but in general I doubt it is and it will lead to subtle bugs.

I hardly think it is worth auditing a bunch of strncmp calls to ensure
that the minimum length of the checked string is always n in order to
remove a single instruction. Making such a change will also introduce
subtle bugs if the rules for the string ever change, eg. a change is
made to allow string = "".

~Ryan

-- 
Bluewater Systems Ltd - ARM Technology Solution Centre

Ryan Mallon         		5 Amuri Park, 404 Barbadoes St
ryan@bluewatersys.com         	PO Box 13 889, Christchurch 8013
http://www.bluewatersys.com	New Zealand
Phone: +64 3 3779127		Freecall: Australia 1800 148 751
Fax:   +64 3 3779135			  USA 1800 261 2934

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
                   ` (4 preceding siblings ...)
  2010-11-29 14:58 ` Steven Rostedt
@ 2010-11-29 23:32 ` Arnaud Lacombe
  2010-11-30 10:34 ` Bernd Petrovitsch
  6 siblings, 0 replies; 19+ messages in thread
From: Arnaud Lacombe @ 2010-11-29 23:32 UTC (permalink / raw)
  To: pavel; +Cc: LKML

Hi,

On Sun, Nov 28, 2010 at 9:09 PM, Pavel Vasilyev <pavel@pavlinux.ru> wrote:
>
>    This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
>
> I test on x86_64 (AMD Opteron 285).
>
> #include <string.h>
>
Could you at least do your "performance/code analysis" [NDLR: ahem...]
in a kernel environment ? <string.h> only belongs to userland and the
"K" of lkml stands for "kernel".

Thanks,
 - Arnaud

ps: please don't send a +500k on the list, that's rude to many people.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29 22:49         ` Pavel Vasilyev
@ 2010-11-30  9:24           ` Américo Wang
  0 siblings, 0 replies; 19+ messages in thread
From: Américo Wang @ 2010-11-30  9:24 UTC (permalink / raw)
  To: Pavel Vasilyev; +Cc: Steven Rostedt, LKML

On Tue, Nov 30, 2010 at 01:49:43AM +0300, Pavel Vasilyev wrote:
>On 30.11.2010 01:26, Steven Rostedt wrote:
>> On Mon, 2010-11-29 at 17:18 -0500, Steven Rostedt wrote:
>>
>>> Um, do you realize that the kernel does not always use the same memcmp
>>> as gcc.
>>>
>> Note, I'm not against the change, because in 99% of the cases, memcmp()
>> can and will be faster, and we don't need to worry about these strange
>> cases.
>>
>> What I'm against is a blind s/strncmp/memcmp/ of the kernel, because it
>> may have side effects that you may not have thought of.
>>
>Then we have to hang a large banner that is visible to all developers.
>"Change wherever possible strncmp to memcmp," :)
>

Why? Strings are strings, they are ended by '\0', well-deserved to use str*()
functions rather than mem*().

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29 22:51         ` Ryan Mallon
@ 2010-11-30 10:27           ` Bernd Petrovitsch
  0 siblings, 0 replies; 19+ messages in thread
From: Bernd Petrovitsch @ 2010-11-30 10:27 UTC (permalink / raw)
  To: Ryan Mallon; +Cc: Steven Rostedt, pavel, LKML

On Die, 2010-11-30 at 11:51 +1300, Ryan Mallon wrote:
[...] 
> It can still break things in subtle ways. Lots of the replacements are
> of the form:
> 
>   if (strncmp(string, "foo", 3) == 0)
> 
> Which can only be replaced with memcmp if the minimum length of string
> is _always_ 3. This may be true for some callsites (with careful audit),
> but in general I doubt it is and it will lead to subtle bugs.
> 
> I hardly think it is worth auditing a bunch of strncmp calls to ensure
> that the minimum length of the checked string is always n in order to
> remove a single instruction. Making such a change will also introduce
> subtle bugs if the rules for the string ever change, eg. a change is
> made to allow string = "".

On the conceptual level:
And it will confuse people if strings (read: '\0' terminated char arrays
specified by a pointer to the start) with raw memory (read: memory with
arbitrary content - including '\0' not at the end - specified by a
pointer to the start and the valid size).
Even more confusing is that raw memory *may* hold a string ...

Don't get me wrong: every seasoned C programmer should know that. But
not everyone is one ...

Bernd
-- 
Bernd Petrovitsch                  Email : bernd@petrovitsch.priv.at
                     LUGA : http://www.luga.at


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] Repalce strncmp by memcmp
  2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
                   ` (5 preceding siblings ...)
  2010-11-29 23:32 ` Arnaud Lacombe
@ 2010-11-30 10:34 ` Bernd Petrovitsch
  6 siblings, 0 replies; 19+ messages in thread
From: Bernd Petrovitsch @ 2010-11-30 10:34 UTC (permalink / raw)
  To: pavel; +Cc: LKML

On Mon, 2010-11-29 at 05:09 +0300, Pavel Vasilyev wrote: 
> This patch replace all strncmp(a, b, c) by  memcmp(a, b, c).
> 
> I test on x86_64 (AMD Opteron 285).
> 
> #include <string.h>
> char *A = "0000";
> void test_memcmp(void) {
>         memcmp(A, "TEST", 4);
> }
> void test_strn(void) {
>         strncmp(A, "TEST", 4);
> }
[...]

You use constant parameters with user-space functions defined by the
C-standard on one architecture (and CPU?) - and even worse the width is
4 so - for the memcmp() case - it boilsdown to a comparison of unsigned
ints.
So that example is (also) completely worthless.

Bernd
-- 
Bernd Petrovitsch                  Email : bernd@petrovitsch.priv.at
                     LUGA : http://www.luga.at


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2010-11-30 10:34 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-29  2:09 [PATCH] Repalce strncmp by memcmp Pavel Vasilyev
2010-11-29  2:21 ` microcai
2010-11-29  2:29 ` Ming Lei
2010-11-29  3:11   ` Pavel Vasilyev
2010-11-29  4:13     ` Dmitry Torokhov
2010-11-29  5:26       ` YOSHIFUJI Hideaki
2010-11-29 12:41         ` Pavel Vasilyev
2010-11-29  3:10 ` Américo Wang
2010-11-29 10:18 ` Andi Kleen
2010-11-29 14:58 ` Steven Rostedt
2010-11-29 19:41   ` Pavel Vasilyev
2010-11-29 22:18     ` Steven Rostedt
2010-11-29 22:26       ` Steven Rostedt
2010-11-29 22:49         ` Pavel Vasilyev
2010-11-30  9:24           ` Américo Wang
2010-11-29 22:51         ` Ryan Mallon
2010-11-30 10:27           ` Bernd Petrovitsch
2010-11-29 23:32 ` Arnaud Lacombe
2010-11-30 10:34 ` Bernd Petrovitsch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox