On Wednesday 30 March 2016 21:45:35 Jisheng Zhang wrote: > oh, missing some code: > #ifdef CONFIG_64BIT > data = ((u64)rx_desc->reserved5 << 32) | rx_desc->buf_cookie; > #else > data = (void*)rx_desc->buf_cookie; > #endif > >
Please use the upper_32_bits() and lower_32_bits() macros to split up the pointer into two halves, and use the 64-bit version of the code above unconditionally, that should both work on all architectures without introducing any overhead. Arnd