hippi: incorrect address masking and compare operation

From: Colin Ian King
Date: Fri Jul 02 2021 - 06:42:26 EST


Hi,

Static analysis with Coverity has detected an issue in
drivers/net/hippi/rrunner.c where a masking operation and a comparison
is always false.

The analysis is as follows:

656 /*
657 * Sanity test to see if we conflict with the DMA
658 * limitations of the Roadrunner.
659 */

Operands don't affect result (CONSTANT_EXPRESSION_RESULT)
dead_error_condition: The condition ((unsigned long)skb->data & 0xfffUL)
> 18446744073709486295UL cannot be true.

660 if ((((unsigned long)skb->data) & 0xfff) > ~65320)

Logically dead code (DEADCODE)dead_error_line: Execution cannot reach
this statement: printk("skb alloc error\n");.

661 printk("skb alloc error\n");
662

I suspect the masking 0xfff is incorrect here, I think it be ~0xfff but
I'm not 100% sure.

Colin