Re: [PATCH 2/5] net: hns3: pointer type of buffer should be void

From: Jakub Kicinski
Date: Thu Jun 18 2020 - 19:35:50 EST


On Thu, 18 Jun 2020 13:02:08 +1200 Barry Song wrote:
> Move the type of buffer address from unsigned char to void
>
> Signed-off-by: Barry Song <song.bao.hua@xxxxxxxxxxxxx>
> ---
> drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 2 +-
> drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
> index 1817d7f2e5f6..61b5a849b162 100644
> --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
> @@ -3070,7 +3070,7 @@ static int hns3_handle_rx_bd(struct hns3_enet_ring *ring)
> return -ENXIO;
>
> if (!skb)
> - ring->va = (unsigned char *)desc_cb->buf + desc_cb->page_offset;
> + ring->va = desc_cb->buf + desc_cb->page_offset;
>
> /* Prefetch first cache line of first page
> * Idea is to cache few bytes of the header of the packet. Our L1 Cache
> diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
> index 66cd4395f781..9f64077ee834 100644
> --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
> @@ -407,7 +407,7 @@ struct hns3_enet_ring {
>
> u32 pull_len; /* head length for current packet */
> u32 frag_num;
> - unsigned char *va; /* first buffer address for current packet */
> + void *va; /* first buffer address for current packet */
>
> u32 flag; /* ring attribute */
>

I think void pointer arithmetic is questionable in the eyes of the C
standard. But I'm not sure about kernel C.

Otherwise series looks good to me.