Thread (9 messages) 9 messages, 3 authors, 2022-10-13

RE: [PATCH v1 3/5] treewide: use get_random_u32() when possible

From: David Laight <hidden>
Date: 2022-10-12 21:29:29
Also in: ceph-devel, dmaengine, dri-devel, linux-arm-kernel, linux-block, linux-crypto, linux-doc, linux-ext4, linux-f2fs-devel, linux-fsdevel, linux-hams, linux-media, linux-mm, linux-mmc, linux-nfs, linux-nvme, linux-raid, linux-rdma, linux-scsi, linux-sctp, linux-usb, linux-wireless, linux-xfs, linuxppc-dev, lkml, lvs-devel, netdev, netfilter-devel, target-devel

From: Joe Perches
Sent: 12 October 2022 20:17

On Wed, 2022-10-05 at 23:48 +0200, Jason A. Donenfeld wrote:
quoted
The prandom_u32() function has been a deprecated inline wrapper around
get_random_u32() for several releases now, and compiles down to the
exact same code. Replace the deprecated wrapper with a direct call to
the real function.
[]
quoted
diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
[]
quoted
@@ -734,7 +734,7 @@ static int send_connect(struct c4iw_ep *ep)
 				   &ep->com.remote_addr;
 	int ret;
 	enum chip_type adapter_type = ep->com.dev->rdev.lldi.adapter_type;
-	u32 isn = (prandom_u32() & ~7UL) - 1;
+	u32 isn = (get_random_u32() & ~7UL) - 1;
trivia:

There are somewhat odd size mismatches here.

I had to think a tiny bit if random() returned a value from 0 to 7
and was promoted to a 64 bit value then truncated to 32 bit.

Perhaps these would be clearer as ~7U and not ~7UL
That makes no difference - the compiler will generate the same code.

The real question is WTF is the code doing?
The '& ~7u' clears the bottom 3 bits.
The '- 1' then sets the bottom 3 bits and decrements the
(random) high bits.

So is the same as get_random_u32() | 7.
But I bet the coder had something else in mind.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help