On Fri, 19 Oct 2018 11:04:27 -0700 Nathan Chancellor <natechancellor@xxxxxxxxx> wrote: > Clang warns: > > samples/vfio-mdev/mtty.c:592:39: warning: implicit conversion from 'int' > to 'char' changes value from 162 to -94 [-Wconstant-conversion] > *buf = UART_MSR_DSR | UART_MSR_DDSR | UART_MSR_DCD; > ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ > 1 warning generated. > > Turns out that all uses of buf in this function ultimately end up stored > or cast to an unsigned type. Just use u8, which has the same number of > bits but can store this larger number so Clang no longer warns. > > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > --- > samples/vfio-mdev/mtty.c | 26 +++++++++++++------------- > 1 file changed, 13 insertions(+), 13 deletions(-) Applied to vfio next branch for v4.21. Thanks, Alex > > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index 7abb79d8313d..f6732aa16bb1 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -171,7 +171,7 @@ static struct mdev_state *find_mdev_state_by_uuid(uuid_le uuid) > return NULL; > } > > -void dump_buffer(char *buf, uint32_t count) > +void dump_buffer(u8 *buf, uint32_t count) > { > #if defined(DEBUG) > int i; > @@ -250,7 +250,7 @@ static void mtty_create_config_space(struct mdev_state *mdev_state) > } > > static void handle_pci_cfg_write(struct mdev_state *mdev_state, u16 offset, > - char *buf, u32 count) > + u8 *buf, u32 count) > { > u32 cfg_addr, bar_mask, bar_index = 0; > > @@ -304,7 +304,7 @@ static void handle_pci_cfg_write(struct mdev_state *mdev_state, u16 offset, > } > > static void handle_bar_write(unsigned int index, struct mdev_state *mdev_state, > - u16 offset, char *buf, u32 count) > + u16 offset, u8 *buf, u32 count) > { > u8 data = *buf; > > @@ -475,7 +475,7 @@ static void handle_bar_write(unsigned int index, struct mdev_state *mdev_state, > } > > static void handle_bar_read(unsigned int index, struct mdev_state *mdev_state, > - u16 offset, char *buf, u32 count) > + u16 offset, u8 *buf, u32 count) > { > /* Handle read requests by guest */ > switch (offset) { > @@ -650,7 +650,7 @@ static void mdev_read_base(struct mdev_state *mdev_state) > } > } > > -static ssize_t mdev_access(struct mdev_device *mdev, char *buf, size_t count, > +static ssize_t mdev_access(struct mdev_device *mdev, u8 *buf, size_t count, > loff_t pos, bool is_write) > { > struct mdev_state *mdev_state; > @@ -698,7 +698,7 @@ static ssize_t mdev_access(struct mdev_device *mdev, char *buf, size_t count, > #if defined(DEBUG_REGS) > pr_info("%s: BAR%d WR @0x%llx %s val:0x%02x dlab:%d\n", > __func__, index, offset, wr_reg[offset], > - (u8)*buf, mdev_state->s[index].dlab); > + *buf, mdev_state->s[index].dlab); > #endif > handle_bar_write(index, mdev_state, offset, buf, count); > } else { > @@ -708,7 +708,7 @@ static ssize_t mdev_access(struct mdev_device *mdev, char *buf, size_t count, > #if defined(DEBUG_REGS) > pr_info("%s: BAR%d RD @0x%llx %s val:0x%02x dlab:%d\n", > __func__, index, offset, rd_reg[offset], > - (u8)*buf, mdev_state->s[index].dlab); > + *buf, mdev_state->s[index].dlab); > #endif > } > break; > @@ -827,7 +827,7 @@ ssize_t mtty_read(struct mdev_device *mdev, char __user *buf, size_t count, > if (count >= 4 && !(*ppos % 4)) { > u32 val; > > - ret = mdev_access(mdev, (char *)&val, sizeof(val), > + ret = mdev_access(mdev, (u8 *)&val, sizeof(val), > *ppos, false); > if (ret <= 0) > goto read_err; > @@ -839,7 +839,7 @@ ssize_t mtty_read(struct mdev_device *mdev, char __user *buf, size_t count, > } else if (count >= 2 && !(*ppos % 2)) { > u16 val; > > - ret = mdev_access(mdev, (char *)&val, sizeof(val), > + ret = mdev_access(mdev, (u8 *)&val, sizeof(val), > *ppos, false); > if (ret <= 0) > goto read_err; > @@ -851,7 +851,7 @@ ssize_t mtty_read(struct mdev_device *mdev, char __user *buf, size_t count, > } else { > u8 val; > > - ret = mdev_access(mdev, (char *)&val, sizeof(val), > + ret = mdev_access(mdev, (u8 *)&val, sizeof(val), > *ppos, false); > if (ret <= 0) > goto read_err; > @@ -889,7 +889,7 @@ ssize_t mtty_write(struct mdev_device *mdev, const char __user *buf, > if (copy_from_user(&val, buf, sizeof(val))) > goto write_err; > > - ret = mdev_access(mdev, (char *)&val, sizeof(val), > + ret = mdev_access(mdev, (u8 *)&val, sizeof(val), > *ppos, true); > if (ret <= 0) > goto write_err; > @@ -901,7 +901,7 @@ ssize_t mtty_write(struct mdev_device *mdev, const char __user *buf, > if (copy_from_user(&val, buf, sizeof(val))) > goto write_err; > > - ret = mdev_access(mdev, (char *)&val, sizeof(val), > + ret = mdev_access(mdev, (u8 *)&val, sizeof(val), > *ppos, true); > if (ret <= 0) > goto write_err; > @@ -913,7 +913,7 @@ ssize_t mtty_write(struct mdev_device *mdev, const char __user *buf, > if (copy_from_user(&val, buf, sizeof(val))) > goto write_err; > > - ret = mdev_access(mdev, (char *)&val, sizeof(val), > + ret = mdev_access(mdev, (u8 *)&val, sizeof(val), > *ppos, true); > if (ret <= 0) > goto write_err;