To fix the sparse warning "cast to restricted __le32" marked "rom_version" to __le32 instead of unsigned int in "struct ath3k_version" and added cpu_to_le32() for the expression assigning int value to "rom_version". Successfully built the module without warnings and errors on x86 machine with sparse. Signed-off-by: Surendra Patil <surendra.tux@xxxxxxxxx> --- drivers/bluetooth/ath3k.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c index be571fe..5564207 100644 --- a/drivers/bluetooth/ath3k.c +++ b/drivers/bluetooth/ath3k.c @@ -50,7 +50,7 @@ #define ATH3K_NAME_LEN 0xFF struct ath3k_version { - unsigned int rom_version; + __le32 rom_version; unsigned int build_version; unsigned int ram_version; unsigned char ref_clock; @@ -375,7 +375,7 @@ static int ath3k_load_patch(struct usb_device *udev) return ret; } - pt_version.rom_version = *(int *)(firmware->data + firmware->size - 8); + pt_version.rom_version = cpu_to_le32(*(int *)(firmware->data + firmware->size - 8)); pt_version.build_version = *(int *) (firmware->data + firmware->size - 4); -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html