Skip to contentSkip to conversation

arm: nwfpe: '&pointer[0]' to 'pointer' fix

PATCH Maxin B. John 1 participant 1 message Aug 25, 2011 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw
Quoted 3 lines · Russell King - ARM Linux
Quoted 1 line · Maxin B. John

'&pointer[0]' to 'pointer' fix in arch/arm/nwfpe/fpa11_cpdt.c

Your reason being?

The first thought was, this is "obvious" and we "can" do it. I haven't thought about the consistency of the code while making this change.

Quoted 9 lines

You may notice the original code has some consistency. Your replacement
is less consistent. If you wish to make this change, it should change to:

       get_user(p[0], pMem + 0);
       get_user(p[1], pMem + 1);

to maintain consistency.

As per your instruction, I have modified the patch to retain the consistency of the code. Please let me know your comments on this.

---

arch/arm/nwfpe/fpa11_cpdt.c +29 -29
index d31c49f..1dbd915 100644
@@ -42,11 +42,11 @@ static inline void loadDouble(const unsigned int Fn, const unsigned int __user *
 	p = (unsigned int *) &fpa11->fpreg[Fn].fDouble;
 	fpa11->fType[Fn] = typeDouble;
 #ifdef __ARMEB__
-	get_user(p[0], &pMem[0]);	/* sign & exponent */
-	get_user(p[1], &pMem[1]);
+	get_user(p[0], pMem + 0);	/* sign & exponent */
+	get_user(p[1], pMem + 1);
 #else
-	get_user(p[0], &pMem[1]);
-	get_user(p[1], &pMem[0]);	/* sign & exponent */
+	get_user(p[0], pMem + 1);
+	get_user(p[1], pMem + 0);	/* sign & exponent */
 #endif
 }
 
@@ -57,13 +57,13 @@ static inline void loadExtended(const unsigned int Fn, const unsigned int __user
 	unsigned int *p;
 	p = (unsigned int *) &fpa11->fpreg[Fn].fExtended;
 	fpa11->fType[Fn] = typeExtended;
-	get_user(p[0], &pMem[0]);	/* sign & exponent */
+	get_user(p[0], pMem + 0);	/* sign & exponent */
 #ifdef __ARMEB__
-	get_user(p[1], &pMem[1]);	/* ms bits */
-	get_user(p[2], &pMem[2]);	/* ls bits */
+	get_user(p[1], pMem + 1);	/* ms bits */
+	get_user(p[2], pMem + 2);	/* ls bits */
 #else
-	get_user(p[1], &pMem[2]);	/* ls bits */
-	get_user(p[2], &pMem[1]);	/* ms bits */
+	get_user(p[1], pMem + 2);	/* ls bits */
+	get_user(p[2], pMem + 1);	/* ms bits */
 #endif
 }
 #endif
@@ -75,15 +75,15 @@ static inline void loadMultiple(const unsigned int Fn, const unsigned int __user
 	unsigned long x;
 
 	p = (unsigned int *) &(fpa11->fpreg[Fn]);
-	get_user(x, &pMem[0]);
+	get_user(x, pMem);
 	fpa11->fType[Fn] = (x >> 14) & 0x00000003;
 
 	switch (fpa11->fType[Fn]) {
 	case typeSingle:
 	case typeDouble:
 		{
-			get_user(p[0], &pMem[2]);	/* Single */
-			get_user(p[1], &pMem[1]);	/* double msw */
+			get_user(p[0], pMem + 2);	/* Single */
+			get_user(p[1], pMem + 1);	/* double msw */
 			p[2] = 0;			/* empty */
 		}
 		break;
@@ -91,8 +91,8 @@ static inline void loadMultiple(const unsigned int Fn, const unsigned int __user
 #ifdef CONFIG_FPE_NWFPE_XP
 	case typeExtended:
 		{
-			get_user(p[1], &pMem[2]);
-			get_user(p[2], &pMem[1]);	/* msw */
+			get_user(p[1], pMem + 2);
+			get_user(p[2], pMem + 1);	/* msw */
 			p[0] = (x & 0x80003fff);
 		}
 		break;
@@ -150,11 +150,11 @@ static inline void storeDouble(struct roundingData *roundData, const unsigned in
 	}
 
 #ifdef __ARMEB__
-	put_user(val.i[0], &pMem[0]);	/* msw */
-	put_user(val.i[1], &pMem[1]);	/* lsw */
+	put_user(val.i[0], pMem + 0);	/* msw */
+	put_user(val.i[1], pMem + 1);	/* lsw */
 #else
-	put_user(val.i[1], &pMem[0]);	/* msw */
-	put_user(val.i[0], &pMem[1]);	/* lsw */
+	put_user(val.i[1], pMem + 0);	/* msw */
+	put_user(val.i[0], pMem + 1);	/* lsw */
 #endif
 }
 
@@ -180,13 +180,13 @@ static inline void storeExtended(const unsigned int Fn, unsigned int __user *pMe
 		val.f = fpa11->fpreg[Fn].fExtended;
 	}
 
-	put_user(val.i[0], &pMem[0]);	/* sign & exp */
+	put_user(val.i[0], pMem + 0);	/* sign & exp */
 #ifdef __ARMEB__
-	put_user(val.i[1], &pMem[1]);	/* msw */
-	put_user(val.i[2], &pMem[2]);
+	put_user(val.i[1], pMem + 1);	/* msw */
+	put_user(val.i[2], pMem + 2);
 #else
-	put_user(val.i[1], &pMem[2]);
-	put_user(val.i[2], &pMem[1]);	/* msw */
+	put_user(val.i[1], pMem + 2);
+	put_user(val.i[2], pMem + 1);	/* msw */
 #endif
 }
 #endif
@@ -203,18 +203,18 @@ static inline void storeMultiple(const unsigned int Fn, unsigned int __user *pMe
 	case typeSingle:
 	case typeDouble:
 		{
-			put_user(p[0], &pMem[2]);	/* single */
-			put_user(p[1], &pMem[1]);	/* double msw */
-			put_user(nType << 14, &pMem[0]);
+			put_user(p[0], pMem + 2);	/* single */
+			put_user(p[1], pMem + 1);	/* double msw */
+			put_user(nType << 14, pMem + 0);
 		}
 		break;
 
 #ifdef CONFIG_FPE_NWFPE_XP
 	case typeExtended:
 		{
-			put_user(p[2], &pMem[1]);	/* msw */
-			put_user(p[1], &pMem[2]);
-			put_user((p[0] & 0x80003fff) | (nType << 14), &pMem[0]);
+			put_user(p[2], pMem + 1);	/* msw */
+			put_user(p[1], pMem + 2);
+			put_user((p[0] & 0x80003fff) | (nType << 14), pMem + 0);
 		}
 		break;
 #endif