Re: [PATCH] staging: media: Replace a bit shift by a use of BIT.

From: Dilger, Andreas
Date: Wed Mar 22 2017 - 08:13:23 EST


On Mar 22, 2017, at 00:20, Arushi Singhal <arushisinghal19971997@xxxxxxxxx> wrote:
>
> This patch replaces bit shifting on 1 with the BIT(x) macro.
> This was done with coccinelle:
> @@
> constant c;
> @@
>
> -1 << c
> +BIT(c)

Hi Arushi,
thanks for taking time to contribute to the kernel. There are a few problems with
this patch.

Firstly, I'm not sure why you sent this patch to lustre-devel, Oleg, James, and me,
since it has nothing to do with Lustre. Conversely, the actual maintainer(s) of this
code would normally be better suited to review the patch. This isn't totally clear
in this case since get_maintainer.pl lists another person submitting minor cleanups,
but "git log" does return some more likely candidates:
- David Daney <ddaney@xxxxxxxxxxxxxxxxxx> (original author)
- Luuk Paulussen <luuk.paulussen@xxxxxxxxxxxxxxxxxxx> (recent non-trivial patcher)
- Kyeong Yoo <kyeong.yoo@xxxxxxxxxxxxxxxxxxx> (recent non-trivial reviewer)
- Richard Laing <richard.laing@xxxxxxxxxxxxxxxxxxx> " "
- Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>
- Tim Beale <tim.beale@xxxxxxxxxxxxxxxxxxx>
- Hamish Martin <hamish.martin@xxxxxxxxxxxxxxxxxxx>


Secondly, as mentioned with the other patch you submitted, you need to stop and look
at whether your changes actually make sense. In this case, I don't think they do
make sense, and this patch should probably just be abandoned.


> Signed-off-by: Arushi Singhal <arushisinghal19971997@xxxxxxxxx>
> ---
> drivers/staging/octeon/ethernet-tx.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c
> index ff4119e8de42..f00186ac4e27 100644
> --- a/drivers/staging/octeon/ethernet-tx.c
> +++ b/drivers/staging/octeon/ethernet-tx.c
> @@ -381,7 +381,7 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
> (ip_hdr(skb)->version == 4) &&
> (ip_hdr(skb)->ihl == 5) &&
> ((ip_hdr(skb)->frag_off == 0) ||
> - (ip_hdr(skb)->frag_off == htons(1 << 14))) &&
> + (ip_hdr(skb)->frag_off == htons(BIT(14)))) &&

In this case, it is checking if the fragment offset in bytes is 16384, rather than doing
a bit comparison, so I don't think the use of BIT() is appropriate here.

> ((ip_hdr(skb)->protocol == IPPROTO_TCP) ||
> (ip_hdr(skb)->protocol == IPPROTO_UDP))) {
> /* Use hardware checksum calc */
> @@ -613,7 +613,7 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev)
> #endif
> work->word2.s.is_frag = !((ip_hdr(skb)->frag_off == 0) ||
> (ip_hdr(skb)->frag_off ==
> - 1 << 14));
> + BIT(14)));

Same.

Cheers, Andreas
--
Andreas Dilger
Lustre Principal Architect
Intel Corporation