[PATCH] lightnvm: work around 32-bit built error
Jens Axboe
axboe at fb.com
Tue Nov 3 07:25:36 PST 2015
On 11/03/2015 06:53 AM, Arnd Bergmann wrote:
> The newly added lightnvm incorrectly uses a sector_t variable to
> represent a data structure with fixed length bit fields, which breaks
> when sector_t is configured to be 32-bit:
>
> In file included from ../drivers/lightnvm/core.c:29:0:
> /include/linux/lightnvm.h:143:4: error: width of 'resved' exceeds its type
> sector_t resved : 36;
> include/linux/lightnvm.h: In function 'ppa_set_empty':
> /include/linux/lightnvm.h:120:20: warning: large integer implicitly truncated to unsigned type [-Woverflow]
> #define ADDR_EMPTY (~0ULL)
Thanks Arnd, Matias sent another variant yesterday that changes this to
u64 as well.
> This patch resolves the build error, but does not address the fact that
> bit fields are not reliable in data structures that are interpreted
> by firmware on another architecture. If the layout is meant to be
> stable, the bit fields should be replaced with explicit calculations.
Matias? Are these every stored and read back, potentially on a different
machine?
--
Jens Axboe
More information about the linux-arm-kernel
mailing list