percpu: Make __verify_pcu_ptr handle per cpu pointers to arrays
__verify_pcpu_ptr() will cause a compilation failure if the type of the pointer is a pointer to a fixed array of objects. Adding zero to the pointer converts the type of pointer to that pointing to a single object of the array. Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
a4244454df
commit
abec1a806e
|
@ -22,9 +22,12 @@
|
||||||
* Macro which verifies @ptr is a percpu pointer without evaluating
|
* Macro which verifies @ptr is a percpu pointer without evaluating
|
||||||
* @ptr. This is to be used in percpu accessors to verify that the
|
* @ptr. This is to be used in percpu accessors to verify that the
|
||||||
* input parameter is a percpu pointer.
|
* input parameter is a percpu pointer.
|
||||||
|
*
|
||||||
|
* + 0 is required in order to convert the pointer type from a
|
||||||
|
* potential array type to a pointer to a single item of the array.
|
||||||
*/
|
*/
|
||||||
#define __verify_pcpu_ptr(ptr) do { \
|
#define __verify_pcpu_ptr(ptr) do { \
|
||||||
const void __percpu *__vpp_verify = (typeof(ptr))NULL; \
|
const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \
|
||||||
(void)__vpp_verify; \
|
(void)__vpp_verify; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue