lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 21 Oct 2022 21:43:58 -0400 From: "Jason A. Donenfeld" <Jason@...c4.com> To: linux-kernel@...r.kernel.org Cc: "Jason A. Donenfeld" <Jason@...c4.com>, Kees Cook <keescook@...omium.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Jakub Kicinski <kuba@...nel.org>, Russell King <linux@...linux.org.uk>, Catalin Marinas <catalin.marinas@....com>, Thomas Bogendoerfer <tsbogend@...ha.franken.de>, Heiko Carstens <hca@...ux.ibm.com>, Herbert Xu <herbert@...dor.apana.org.au>, Christoph Böhmwalder <christoph.boehmwalder@...bit.com>, Jani Nikula <jani.nikula@...ux.intel.com>, Jason Gunthorpe <jgg@...dia.com>, Sakari Ailus <sakari.ailus@...ux.intel.com>, "Martin K . Petersen" <martin.petersen@...cle.com>, Theodore Ts'o <tytso@....edu>, Andreas Dilger <adilger.kernel@...ger.ca>, Jaegeuk Kim <jaegeuk@...nel.org>, Richard Weinberger <richard@....at>, "Darrick J . Wong" <djwong@...nel.org>, SeongJae Park <sj@...nel.org>, Thomas Gleixner <tglx@...utronix.de>, Andrew Morton <akpm@...ux-foundation.org>, Michael Ellerman <mpe@...erman.id.au>, Helge Deller <deller@....de>, netdev@...r.kernel.org, linux-crypto@...r.kernel.org, linux-block@...r.kernel.org, linux-fsdevel@...r.kernel.org, linux-media@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, loongarch@...ts.linux.dev, linux-mips@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org, linux-mmc@...r.kernel.org, linux-parisc@...r.kernel.org Subject: [PATCH v1 0/5] convert tree to get_random_u32_{below,above,between}() Hey everyone, Here's the second and final tranche of tree-wide conversions to get random integer handling a bit tamer. It's predominantly another Coccinelle-based patchset. First we s/prandom_u32_max/get_random_u32_below/, since the former is just a deprecated alias for the latter. Then in the next commit we can remove prandom_u32_max all together. I'm quite happy about finally being able to do that. It means that prandom.h is now only for deterministic and repeatable randomness, not non-deterministic/cryptographic randomness. That line is no longer blurred. Then, in order to clean up a bunch of inefficient patterns, we introduce two trivial static inline helper functions built on top of get_random_u32_below: get_random_u32_above and get_random_u32_between. These are pretty straight forward to use and understand. Then the final two patches convert some gnarly open-coded number juggling to use these helpers. I've used Coccinelle for all the treewide patches, so hopefully review is rather uneventful. I didn't accept all of the changes that Coccinelle proposed, though, as these tend to be somewhat context-specific. I erred on the side of just going with the most obvious cases, at least this time through. And then we can address more complicated cases through actual maintainer trees. Since get_random_u32_below() sits in my random.git tree, these patches too will flow through that same tree. Regards, Jason Cc: Kees Cook <keescook@...omium.org> Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org> Cc: Jakub Kicinski <kuba@...nel.org> Cc: Russell King <linux@...linux.org.uk> Cc: Catalin Marinas <catalin.marinas@....com> Cc: Thomas Bogendoerfer <tsbogend@...ha.franken.de> Cc: Heiko Carstens <hca@...ux.ibm.com> Cc: Herbert Xu <herbert@...dor.apana.org.au> Cc: Christoph Böhmwalder <christoph.boehmwalder@...bit.com> Cc: Jani Nikula <jani.nikula@...ux.intel.com> Cc: Jason Gunthorpe <jgg@...dia.com> Cc: Sakari Ailus <sakari.ailus@...ux.intel.com> Cc: Martin K. Petersen <martin.petersen@...cle.com> Cc: Theodore Ts'o <tytso@....edu> Cc: Andreas Dilger <adilger.kernel@...ger.ca> Cc: Jaegeuk Kim <jaegeuk@...nel.org> Cc: Richard Weinberger <richard@....at> Cc: Darrick J. Wong <djwong@...nel.org> Cc: SeongJae Park <sj@...nel.org> Cc: Thomas Gleixner <tglx@...utronix.de> Cc: Andrew Morton <akpm@...ux-foundation.org> Cc: Michael Ellerman <mpe@...erman.id.au> Cc: Helge Deller <deller@....de> Cc: netdev@...r.kernel.org Cc: linux-crypto@...r.kernel.org Cc: linux-block@...r.kernel.org Cc: linux-fsdevel@...r.kernel.org Cc: linux-media@...r.kernel.org Cc: linux-arm-kernel@...ts.infradead.org Cc: loongarch@...ts.linux.dev Cc: linux-mips@...r.kernel.org Cc: linuxppc-dev@...ts.ozlabs.org Cc: linux-mmc@...r.kernel.org Cc: linux-parisc@...r.kernel.org Jason A. Donenfeld (5): treewide: use get_random_u32_below() instead of deprecated function prandom: remove prandom_u32_max() random: add helpers for random numbers with given floor or range treewide: use get_random_u32_{above,below}() instead of manual loop treewide: use get_random_u32_between() when possible arch/arm/kernel/process.c | 2 +- arch/arm64/kernel/process.c | 2 +- arch/loongarch/kernel/process.c | 2 +- arch/loongarch/kernel/vdso.c | 2 +- arch/mips/kernel/process.c | 2 +- arch/mips/kernel/vdso.c | 2 +- arch/parisc/kernel/vdso.c | 2 +- arch/powerpc/crypto/crc-vpmsum_test.c | 4 +- arch/powerpc/kernel/process.c | 2 +- arch/s390/kernel/process.c | 2 +- arch/s390/kernel/vdso.c | 2 +- arch/sparc/vdso/vma.c | 2 +- arch/um/kernel/process.c | 2 +- arch/x86/entry/vdso/vma.c | 2 +- arch/x86/kernel/module.c | 2 +- arch/x86/kernel/process.c | 2 +- arch/x86/mm/pat/cpa-test.c | 4 +- crypto/rsa-pkcs1pad.c | 2 +- crypto/testmgr.c | 86 +++++++++---------- drivers/block/drbd/drbd_receiver.c | 4 +- drivers/bus/mhi/host/internal.h | 2 +- drivers/dma-buf/st-dma-fence-chain.c | 6 +- .../gpu/drm/i915/gem/i915_gem_execbuffer.c | 2 +- .../drm/i915/gt/intel_execlists_submission.c | 2 +- drivers/gpu/drm/i915/intel_memory_region.c | 4 +- drivers/infiniband/core/cma.c | 2 +- drivers/infiniband/hw/cxgb4/id_table.c | 4 +- drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +- drivers/md/bcache/request.c | 2 +- drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 8 +- .../media/test-drivers/vidtv/vidtv_demod.c | 8 +- .../test-drivers/vivid/vivid-kthread-cap.c | 2 +- .../test-drivers/vivid/vivid-kthread-out.c | 2 +- .../media/test-drivers/vivid/vivid-radio-rx.c | 4 +- .../media/test-drivers/vivid/vivid-sdr-cap.c | 2 +- .../test-drivers/vivid/vivid-touch-cap.c | 2 +- drivers/mmc/core/core.c | 4 +- drivers/mmc/host/dw_mmc.c | 2 +- drivers/mtd/nand/raw/nandsim.c | 4 +- drivers/mtd/tests/mtd_nandecctest.c | 10 +-- drivers/mtd/tests/stresstest.c | 8 +- drivers/mtd/ubi/debug.c | 2 +- drivers/mtd/ubi/debug.h | 6 +- drivers/net/ethernet/broadcom/cnic.c | 2 +- .../chelsio/inline_crypto/chtls/chtls_io.c | 4 +- drivers/net/phy/at803x.c | 2 +- drivers/net/team/team_mode_random.c | 2 +- drivers/net/wireguard/selftest/allowedips.c | 20 ++--- drivers/net/wireguard/timers.c | 4 +- .../broadcom/brcm80211/brcmfmac/p2p.c | 2 +- .../net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +- drivers/pci/p2pdma.c | 2 +- drivers/s390/scsi/zfcp_fc.c | 2 +- drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- drivers/scsi/qedi/qedi_main.c | 2 +- drivers/scsi/scsi_debug.c | 6 +- fs/ceph/inode.c | 2 +- fs/ceph/mdsmap.c | 2 +- fs/ext2/ialloc.c | 2 +- fs/ext4/ialloc.c | 2 +- fs/ext4/mmp.c | 8 +- fs/ext4/super.c | 5 +- fs/f2fs/gc.c | 2 +- fs/f2fs/segment.c | 8 +- fs/ubifs/debug.c | 8 +- fs/ubifs/lpt_commit.c | 14 +-- fs/ubifs/tnc_commit.c | 2 +- fs/xfs/libxfs/xfs_alloc.c | 2 +- fs/xfs/libxfs/xfs_ialloc.c | 2 +- fs/xfs/xfs_error.c | 2 +- include/linux/damon.h | 2 +- include/linux/nodemask.h | 2 +- include/linux/prandom.h | 6 -- include/linux/random.h | 24 ++++++ kernel/bpf/core.c | 4 +- kernel/kcsan/selftest.c | 4 +- kernel/locking/test-ww_mutex.c | 4 +- kernel/time/clocksource.c | 2 +- lib/fault-inject.c | 2 +- lib/find_bit_benchmark.c | 4 +- lib/kobject.c | 2 +- lib/reed_solomon/test_rslib.c | 6 +- lib/sbitmap.c | 4 +- lib/test-string_helpers.c | 2 +- lib/test_fprobe.c | 5 +- lib/test_hexdump.c | 10 +-- lib/test_kprobes.c | 5 +- lib/test_list_sort.c | 2 +- lib/test_printf.c | 2 +- lib/test_rhashtable.c | 4 +- lib/test_vmalloc.c | 8 +- mm/kasan/kasan_test.c | 6 +- mm/kfence/core.c | 4 +- mm/kfence/kfence_test.c | 4 +- mm/slub.c | 2 +- mm/swapfile.c | 5 +- net/802/garp.c | 2 +- net/802/mrp.c | 2 +- net/batman-adv/bat_iv_ogm.c | 4 +- net/batman-adv/bat_v_elp.c | 2 +- net/batman-adv/bat_v_ogm.c | 4 +- net/batman-adv/network-coding.c | 2 +- net/bluetooth/mgmt.c | 5 +- net/can/j1939/socket.c | 2 +- net/can/j1939/transport.c | 2 +- net/ceph/mon_client.c | 2 +- net/ceph/osd_client.c | 2 +- net/core/neighbour.c | 4 +- net/core/pktgen.c | 37 ++++---- net/core/stream.c | 2 +- net/ipv4/icmp.c | 2 +- net/ipv4/igmp.c | 6 +- net/ipv4/inet_connection_sock.c | 2 +- net/ipv4/inet_hashtables.c | 2 +- net/ipv4/route.c | 4 +- net/ipv4/tcp_bbr.c | 2 +- net/ipv4/tcp_input.c | 3 +- net/ipv6/addrconf.c | 8 +- net/ipv6/mcast.c | 10 +-- net/ipv6/output_core.c | 8 +- net/ipv6/route.c | 2 +- net/netfilter/ipvs/ip_vs_twos.c | 4 +- net/netfilter/nf_conntrack_core.c | 4 +- net/netfilter/nf_nat_helper.c | 2 +- net/netlink/af_netlink.c | 2 +- net/packet/af_packet.c | 4 +- net/sched/act_gact.c | 2 +- net/sched/act_sample.c | 2 +- net/sched/sch_choke.c | 2 +- net/sched/sch_netem.c | 4 +- net/sctp/socket.c | 2 +- net/sctp/transport.c | 2 +- net/sunrpc/cache.c | 2 +- net/sunrpc/xprtsock.c | 2 +- net/tipc/socket.c | 2 +- net/vmw_vsock/af_vsock.c | 3 +- net/xfrm/xfrm_state.c | 2 +- 138 files changed, 309 insertions(+), 318 deletions(-) -- 2.38.1
Powered by blists - more mailing lists