When a C++ file compiled with -Wc++11-narrowing includes the UAPI header linux/ublk_cmd.h, ublk_sqe_addr_to_auto_buf_reg()'s assignments of u64 values to u8, u16, and u32 fields result in compiler warnings. Add explicit casts to the intended types to avoid these warnings. Drop the unnecessary bitmasks.
Unified · Split
| @@ -450,10 +450,10 @@ static inline struct ublk_auto_buf_reg ublk_sqe_addr_to_auto_buf_reg( · 449 unmodified lines | |||
| 450 | __u64 sqe_addr) | 450 | __u64 sqe_addr) |
| 451 | { | 451 | { |
| 452 | struct ublk_auto_buf_reg reg = { | 452 | struct ublk_auto_buf_reg reg = { |
| 453 | .index = sqe_addr & 0xffff, | 453 | .index = (__u16)sqe_addr, |
| 454 | .flags = (sqe_addr >> 16) & 0xff, | 454 | .flags = (__u8)(sqe_addr >> 16), |
| 455 | .reserved0 = (sqe_addr >> 24) & 0xff, | 455 | .reserved0 = (__u8)(sqe_addr >> 24), |
| 456 | .reserved1 = sqe_addr >> 32, | 456 | .reserved1 = (__u32)(sqe_addr >> 32), |
| 457 | }; | 457 | }; |
| 458 | 458 | ||
| 459 | return reg; | 459 | return reg; |