From: Alex Williamson <alex.williamson@redhat.com>
To: Nathan Chancellor <natechancellor@gmail.com>
Cc: Kirti Wankhede <kwankhede@nvidia.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] vfio-mdev/samples: Use u8 instead of char for handle functions
Date: Mon, 17 Dec 2018 11:12:08 -0700 [thread overview]
Message-ID: <20181217111208.3251aa42@x1.home> (raw)
In-Reply-To: <20181019180427.1386-1-natechancellor@gmail.com>
On Fri, 19 Oct 2018 11:04:27 -0700
Nathan Chancellor <natechancellor@gmail.com> 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@gmail.com>
> ---
> 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;
prev parent reply other threads:[~2018-12-17 18:12 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-19 18:04 [PATCH] vfio-mdev/samples: Use u8 instead of char for handle functions Nathan Chancellor
2018-12-17 17:42 ` Nathan Chancellor
2018-12-17 18:12 ` Alex Williamson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181217111208.3251aa42@x1.home \
--to=alex.williamson@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=natechancellor@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox