Skip to contentSkip to conversation

fix "passing argument # of '__memcpy' discards qualifiers from pointer target type" warnings

PATCH New Miguel Botón 1 participant 1 message Oct 24, 2007 JFS filesystem

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix "passing argument # of '__memcpy' discards qualifiers from pointer target type" warnings

This patch fixes the warnings "passing argument 1 of '__memcpy' discards qualifiers from pointer target type" and "passing argument 2 of '__memcpy' discards qualifiers from pointer target type" when compiling some files.

I don't really know if this is the best way but at least I don't get more warnings.

fs/cifs/dir.c +2 -1
diff -ruN linux-2.6.24-rc1.orig/fs/cifs/dir.c linux-2.6.24-rc1/fs/cifs/dir.c
@@ -585,6 +585,7 @@
 			   struct qstr *b)
 {
 	struct nls_table *codepage = CIFS_SB(dentry->d_inode->i_sb)->local_nls;
+	unsigned char *dstname = (unsigned char *)a->name;
 
 	if ((a->len == b->len) &&
 	    (nls_strnicmp(codepage, a->name, b->name, a->len) == 0)) {
@@ -593,7 +594,7 @@
 		 * case take precedence.  If a is not a negative dentry, this
 		 * should have no side effects
 		 */
-		memcpy((unsigned char *)a->name, b->name, a->len);
+		memcpy(dstname, b->name, a->len);
 		return 0;
 	}
 	return 1;
fs/jfs/namei.c +2 -1
diff -ruN linux-2.6.24-rc1.orig/fs/jfs/namei.c linux-2.6.24-rc1/fs/jfs/namei.c
@@ -1580,6 +1580,7 @@
 
 static int jfs_ci_compare(struct dentry *dir, struct qstr *a, struct qstr *b)
 {
+	unsigned char *dstname = (unsigned char *)a->name;
 	int i, result = 1;
 
 	if (a->len != b->len)
@@ -1597,7 +1598,7 @@
 	 * dentry, we blindly replace it with b.  This should be harmless if
 	 * a is not a negative dentry.
 	 */
-	memcpy((unsigned char *)a->name, b->name, a->len);
+	memcpy(dstname, b->name, a->len);
 out:
 	return result;
 }

diff -ruN linux-2.6.24-rc1.orig/fs/smbfs/cache.c
linux-2.6.24-rc1/fs/smbfs/cache.c

fs/smbfs/cache.c +3 -2
@@ -145,9 +145,10 @@
 		if (!newdent)
 			goto end_advance;
 	} else {
+		char *dstname = (char *)newdent->d_name.name;
+
 		hashed = 1;
-		memcpy((char *) newdent->d_name.name, qname->name,
-		       newdent->d_name.len);
+		memcpy(dstname, qname->name, newdent->d_name.len);
 	}
 
 	if (!newdent->d_inode) {

diff -ruN linux-2.6.24-rc1.orig/include/asm-x86/io_32.h linux-2.6.24-rc1/include/asm-x86/io_32.h
--- linux-2.6.24-rc1.orig/include/asm-x86/io_32.h 2007-10-24
16:06:45.000000000 +0200
+++ linux-2.6.24-rc1/include/asm-x86/io_32.h 2007-10-24 15:56:42.000000000
+0200
@@ -208,7 +208,8 @@
static inline void
memcpy_fromio(void *dst, const volatile void __iomem *src, int count) {
- __memcpy(dst, (const void __force *)src, count);
+ const void __force *src1 = (const void __force *)src;
+ __memcpy(dst, src1, count);
}

static inline void

Signature · 1 line
	Miguel Botón