1. 10 Oct, 2022 3 commits
  2. 09 Oct, 2022 5 commits
  3. 07 Oct, 2022 9 commits
  4. 06 Oct, 2022 5 commits
    • Jakub Kicinski's avatar
      Merge tag 'ieee802154-for-net-2022-10-05' of... · 1d22f78d
      Jakub Kicinski authored
      Merge tag 'ieee802154-for-net-2022-10-05' of git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan
      
      Stefan Schmidt says:
      
      ====================
      pull-request: ieee802154 for net 2022-10-05
      
      Only two patches this time around. A revert from Alexander Aring to a patch
      that hit net and the updated patch to fix the problem from Tetsuo Handa.
      
      * tag 'ieee802154-for-net-2022-10-05' of git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan:
        net/ieee802154: don't warn zero-sized raw_sendmsg()
        Revert "net/ieee802154: reject zero-sized raw_sendmsg()"
      ====================
      
      Link: https://lore.kernel.org/r/20221005144508.787376-1-stefan@datenfreihafen.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      1d22f78d
    • Alexandru Tachici's avatar
      net: ethernet: adi: adin1110: Add check in netdev_event · f9371935
      Alexandru Tachici authored
      Check whether this driver actually is the intended recipient of
      upper change event.
      
      Fixes: bc93e19d ("net: ethernet: adi: Add ADIN1110 support")
      Signed-off-by: default avatarAlexandru Tachici <alexandru.tachici@analog.com>
      Link: https://lore.kernel.org/r/20221003111636.54973-1-alexandru.tachici@analog.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f9371935
    • Casper Andersson's avatar
      229a0027
    • Geert Uytterhoeven's avatar
      net: pse-pd: PSE_REGULATOR should depend on REGULATOR · 304ee24b
      Geert Uytterhoeven authored
      The Regulator based PSE controller driver relies on regulator support to
      be enabled.  If regulator support is disabled, it will still compile
      fine, but won't operate correctly.
      
      Hence add a dependency on REGULATOR, to prevent asking the user about
      this driver when configuring a kernel without regulator support.
      
      Fixes: 66741b4e ("net: pse-pd: add regulator based PSE driver")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Link: https://lore.kernel.org/r/709caac8873ff2a8b72b92091429be7c1a939959.1664900558.git.geert+renesas@glider.beSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      304ee24b
    • Vladimir Oltean's avatar
      Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs" · af7b29b1
      Vladimir Oltean authored
      taprio_attach() has this logic at the end, which should have been
      removed with the blamed patch (which is now being reverted):
      
      	/* access to the child qdiscs is not needed in offload mode */
      	if (FULL_OFFLOAD_IS_ENABLED(q->flags)) {
      		kfree(q->qdiscs);
      		q->qdiscs = NULL;
      	}
      
      because otherwise, we make use of q->qdiscs[] even after this array was
      deallocated, namely in taprio_leaf(). Therefore, whenever one would try
      to attach a valid child qdisc to a fully offloaded taprio root, one
      would immediately dereference a NULL pointer.
      
      $ tc qdisc replace dev eno0 handle 8001: parent root taprio \
      	num_tc 8 \
      	map 0 1 2 3 4 5 6 7 \
      	queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \
      	max-sdu 0 0 0 0 0 200 0 0 \
      	base-time 200 \
      	sched-entry S 80 20000 \
      	sched-entry S a0 20000 \
      	sched-entry S 5f 60000 \
      	flags 2
      $ max_frame_size=1500
      $ data_rate_kbps=20000
      $ port_transmit_rate_kbps=1000000
      $ idleslope=$data_rate_kbps
      $ sendslope=$(($idleslope - $port_transmit_rate_kbps))
      $ locredit=$(($max_frame_size * $sendslope / $port_transmit_rate_kbps))
      $ hicredit=$(($max_frame_size * $idleslope / $port_transmit_rate_kbps))
      $ tc qdisc replace dev eno0 parent 8001:7 cbs \
      	idleslope $idleslope \
      	sendslope $sendslope \
      	hicredit $hicredit \
      	locredit $locredit \
      	offload 0
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000030
      pc : taprio_leaf+0x28/0x40
      lr : qdisc_leaf+0x3c/0x60
      Call trace:
       taprio_leaf+0x28/0x40
       tc_modify_qdisc+0xf0/0x72c
       rtnetlink_rcv_msg+0x12c/0x390
       netlink_rcv_skb+0x5c/0x130
       rtnetlink_rcv+0x1c/0x2c
      
      The solution is not as obvious as the problem. The code which deallocates
      q->qdiscs[] is in fact copied and pasted from mqprio, which also
      deallocates the array in mqprio_attach() and never uses it afterwards.
      
      Therefore, the identical cleanup logic of priv->qdiscs[] that
      mqprio_destroy() has is deceptive because it will never take place at
      qdisc_destroy() time, but just at raw ops->destroy() time (otherwise
      said, priv->qdiscs[] do not last for the entire lifetime of the mqprio
      root), but rather, this is just the twisted way in which the Qdisc API
      understands error path cleanup should be done (Qdisc_ops :: destroy() is
      called even when Qdisc_ops :: init() never succeeded).
      
      Side note, in fact this is also what the comment in mqprio_init() says:
      
      	/* pre-allocate qdisc, attachment can't fail */
      
      Or reworded, mqprio's priv->qdiscs[] scheme is only meant to serve as
      data passing between Qdisc_ops :: init() and Qdisc_ops :: attach().
      
      [ this comment was also copied and pasted into the initial taprio
        commit, even though taprio_attach() came way later ]
      
      The problem is that taprio also makes extensive use of the q->qdiscs[]
      array in the software fast path (taprio_enqueue() and taprio_dequeue()),
      but it does not keep a reference of its own on q->qdiscs[i] (you'd think
      that since it creates these Qdiscs, it holds the reference, but nope,
      this is not completely true).
      
      To understand the difference between taprio_destroy() and mqprio_destroy()
      one must look before commit 13511704 ("net: taprio offload: enforce
      qdisc to netdev queue mapping"), because that just muddied the waters.
      
      In the "original" taprio design, taprio always attached itself (the root
      Qdisc) to all netdev TX queues, so that dev_qdisc_enqueue() would go
      through taprio_enqueue().
      
      It also called qdisc_refcount_inc() on itself for as many times as there
      were netdev TX queues, in order to counter-balance what tc_get_qdisc()
      does when destroying a Qdisc (simplified for brevity below):
      
      	if (n->nlmsg_type == RTM_DELQDISC)
      		err = qdisc_graft(dev, parent=NULL, new=NULL, q, extack);
      
      qdisc_graft(where "new" is NULL so this deletes the Qdisc):
      
      	for (i = 0; i < num_q; i++) {
      		struct netdev_queue *dev_queue;
      
      		dev_queue = netdev_get_tx_queue(dev, i);
      
      		old = dev_graft_qdisc(dev_queue, new);
      		if (new && i > 0)
      			qdisc_refcount_inc(new);
      
      		qdisc_put(old);
      		~~~~~~~~~~~~~~
      		this decrements taprio's refcount once for each TX queue
      	}
      
      	notify_and_destroy(net, skb, n, classid,
      			   rtnl_dereference(dev->qdisc), new);
      			   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      			   and this finally decrements it to zero,
      			   making qdisc_put() call qdisc_destroy()
      
      The q->qdiscs[] created using qdisc_create_dflt() (or their
      replacements, if taprio_graft() was ever to get called) were then
      privately freed by taprio_destroy().
      
      This is still what is happening after commit 13511704 ("net: taprio
      offload: enforce qdisc to netdev queue mapping"), but only for software
      mode.
      
      In full offload mode, the per-txq "qdisc_put(old)" calls from
      qdisc_graft() now deallocate the child Qdiscs rather than decrement
      taprio's refcount. So when notify_and_destroy(taprio) finally calls
      taprio_destroy(), the difference is that the child Qdiscs were already
      deallocated.
      
      And this is exactly why the taprio_attach() comment "access to the child
      qdiscs is not needed in offload mode" is deceptive too. Not only the
      q->qdiscs[] array is not needed, but it is also necessary to get rid of
      it as soon as possible, because otherwise, we will also call qdisc_put()
      on the child Qdiscs in qdisc_destroy() -> taprio_destroy(), and this
      will cause a nasty use-after-free/refcount-saturate/whatever.
      
      In short, the problem is that since the blamed commit, taprio_leaf()
      needs q->qdiscs[] to not be freed by taprio_attach(), while qdisc_destroy()
      -> taprio_destroy() does need q->qdiscs[] to be freed by taprio_attach()
      for full offload. Fixing one problem triggers the other.
      
      All of this can be solved by making taprio keep its q->qdiscs[i] with a
      refcount elevated at 2 (in offloaded mode where they are attached to the
      netdev TX queues), both in taprio_attach() and in taprio_graft(). The
      generic qdisc_graft() would just decrement the child qdiscs' refcounts
      to 1, and taprio_destroy() would give them the final coup de grace.
      
      However the rabbit hole of changes is getting quite deep, and the
      complexity increases. The blamed commit was supposed to be a bug fix in
      the first place, and the bug it addressed is not so significant so as to
      justify further rework in stable trees. So I'd rather just revert it.
      I don't know enough about multi-queue Qdisc design to make a proper
      judgement right now regarding what is/isn't idiomatic use of Qdisc
      concepts in taprio. I will try to study the problem more and come with a
      different solution in net-next.
      
      Fixes: 1461d212 ("net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs")
      Reported-by: default avatarMuhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
      Reported-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Reviewed-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
      Link: https://lore.kernel.org/r/20221004220100.1650558-1-vladimir.oltean@nxp.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      af7b29b1
  5. 05 Oct, 2022 2 commits
  6. 04 Oct, 2022 16 commits
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 0326074f
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core:
      
         - Introduce and use a single page frag cache for allocating small skb
           heads, clawing back the 10-20% performance regression in UDP flood
           test from previous fixes.
      
         - Run packets which already went thru HW coalescing thru SW GRO. This
           significantly improves TCP segment coalescing and simplifies
           deployments as different workloads benefit from HW or SW GRO.
      
         - Shrink the size of the base zero-copy send structure.
      
         - Move TCP init under a new slow / sleepable version of DO_ONCE().
      
        BPF:
      
         - Add BPF-specific, any-context-safe memory allocator.
      
         - Add helpers/kfuncs for PKCS#7 signature verification from BPF
           programs.
      
         - Define a new map type and related helpers for user space -> kernel
           communication over a ring buffer (BPF_MAP_TYPE_USER_RINGBUF).
      
         - Allow targeting BPF iterators to loop through resources of one
           task/thread.
      
         - Add ability to call selected destructive functions. Expose
           crash_kexec() to allow BPF to trigger a kernel dump. Use
           CAP_SYS_BOOT check on the loading process to judge permissions.
      
         - Enable BPF to collect custom hierarchical cgroup stats efficiently
           by integrating with the rstat framework.
      
         - Support struct arguments for trampoline based programs. Only
           structs with size <= 16B and x86 are supported.
      
         - Invoke cgroup/connect{4,6} programs for unprivileged ICMP ping
           sockets (instead of just TCP and UDP sockets).
      
         - Add a helper for accessing CLOCK_TAI for time sensitive network
           related programs.
      
         - Support accessing network tunnel metadata's flags.
      
         - Make TCP SYN ACK RTO tunable by BPF programs with TCP Fast Open.
      
         - Add support for writing to Netfilter's nf_conn:mark.
      
        Protocols:
      
         - WiFi: more Extremely High Throughput (EHT) and Multi-Link Operation
           (MLO) work (802.11be, WiFi 7).
      
         - vsock: improve support for SO_RCVLOWAT.
      
         - SMC: support SO_REUSEPORT.
      
         - Netlink: define and document how to use netlink in a "modern" way.
           Support reporting missing attributes via extended ACK.
      
         - IPSec: support collect metadata mode for xfrm interfaces.
      
         - TCPv6: send consistent autoflowlabel in SYN_RECV state and RST
           packets.
      
         - TCP: introduce optional per-netns connection hash table to allow
           better isolation between namespaces (opt-in, at the cost of memory
           and cache pressure).
      
         - MPTCP: support TCP_FASTOPEN_CONNECT.
      
         - Add NEXT-C-SID support in Segment Routing (SRv6) End behavior.
      
         - Adjust IP_UNICAST_IF sockopt behavior for connected UDP sockets.
      
         - Open vSwitch:
            - Allow specifying ifindex of new interfaces.
            - Allow conntrack and metering in non-initial user namespace.
      
         - TLS: support the Korean ARIA-GCM crypto algorithm.
      
         - Remove DECnet support.
      
        Driver API:
      
         - Allow selecting the conduit interface used by each port in DSA
           switches, at runtime.
      
         - Ethernet Power Sourcing Equipment and Power Device support.
      
         - Add tc-taprio support for queueMaxSDU parameter, i.e. setting per
           traffic class max frame size for time-based packet schedules.
      
         - Support PHY rate matching - adapting between differing host-side
           and link-side speeds.
      
         - Introduce QUSGMII PHY mode and 1000BASE-KX interface mode.
      
         - Validate OF (device tree) nodes for DSA shared ports; make
           phylink-related properties mandatory on DSA and CPU ports.
           Enforcing more uniformity should allow transitioning to phylink.
      
         - Require that flash component name used during update matches one of
           the components for which version is reported by info_get().
      
         - Remove "weight" argument from driver-facing NAPI API as much as
           possible. It's one of those magic knobs which seemed like a good
           idea at the time but is too indirect to use in practice.
      
         - Support offload of TLS connections with 256 bit keys.
      
        New hardware / drivers:
      
         - Ethernet:
            - Microchip KSZ9896 6-port Gigabit Ethernet Switch
            - Renesas Ethernet AVB (EtherAVB-IF) Gen4 SoCs
            - Analog Devices ADIN1110 and ADIN2111 industrial single pair
              Ethernet (10BASE-T1L) MAC+PHY.
            - Rockchip RV1126 Gigabit Ethernet (a version of stmmac IP).
      
         - Ethernet SFPs / modules:
            - RollBall / Hilink / Turris 10G copper SFPs
            - HALNy GPON module
      
         - WiFi:
            - CYW43439 SDIO chipset (brcmfmac)
            - CYW89459 PCIe chipset (brcmfmac)
            - BCM4378 on Apple platforms (brcmfmac)
      
        Drivers:
      
         - CAN:
            - gs_usb: HW timestamp support
      
         - Ethernet PHYs:
            - lan8814: cable diagnostics
      
         - Ethernet NICs:
            - Intel (100G):
               - implement control of FCS/CRC stripping
               - port splitting via devlink
               - L2TPv3 filtering offload
            - nVidia/Mellanox:
               - tunnel offload for sub-functions
               - MACSec offload, w/ Extended packet number and replay window
                 offload
               - significantly restructure, and optimize the AF_XDP support,
                 align the behavior with other vendors
            - Huawei:
               - configuring DSCP map for traffic class selection
               - querying standard FEC statistics
               - querying SerDes lane number via ethtool
            - Marvell/Cavium:
               - egress priority flow control
               - MACSec offload
            - AMD/SolarFlare:
               - PTP over IPv6 and raw Ethernet
            - small / embedded:
               - ax88772: convert to phylink (to support SFP cages)
               - altera: tse: convert to phylink
               - ftgmac100: support fixed link
               - enetc: standard Ethtool counters
               - macb: ZynqMP SGMII dynamic configuration support
               - tsnep: support multi-queue and use page pool
               - lan743x: Rx IP & TCP checksum offload
               - igc: add xdp frags support to ndo_xdp_xmit
      
         - Ethernet high-speed switches:
            - Marvell (prestera):
               - support SPAN port features (traffic mirroring)
               - nexthop object offloading
            - Microchip (sparx5):
               - multicast forwarding offload
               - QoS queuing offload (tc-mqprio, tc-tbf, tc-ets)
      
         - Ethernet embedded switches:
            - Marvell (mv88e6xxx):
               - support RGMII cmode
            - NXP (felix):
               - standardized ethtool counters
            - Microchip (lan966x):
               - QoS queuing offload (tc-mqprio, tc-tbf, tc-cbs, tc-ets)
               - traffic policing and mirroring
               - link aggregation / bonding offload
               - QUSGMII PHY mode support
      
         - Qualcomm 802.11ax WiFi (ath11k):
            - cold boot calibration support on WCN6750
            - support to connect to a non-transmit MBSSID AP profile
            - enable remain-on-channel support on WCN6750
            - Wake-on-WLAN support for WCN6750
            - support to provide transmit power from firmware via nl80211
            - support to get power save duration for each client
            - spectral scan support for 160 MHz
      
         - MediaTek WiFi (mt76):
            - WiFi-to-Ethernet bridging offload for MT7986 chips
      
         - RealTek WiFi (rtw89):
            - P2P support"
      
      * tag 'net-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1864 commits)
        eth: pse: add missing static inlines
        once: rename _SLOW to _SLEEPABLE
        net: pse-pd: add regulator based PSE driver
        dt-bindings: net: pse-dt: add bindings for regulator based PoDL PSE controller
        ethtool: add interface to interact with Ethernet Power Equipment
        net: mdiobus: search for PSE nodes by parsing PHY nodes.
        net: mdiobus: fwnode_mdiobus_register_phy() rework error handling
        net: add framework to support Ethernet PSE and PDs devices
        dt-bindings: net: phy: add PoDL PSE property
        net: marvell: prestera: Propagate nh state from hw to kernel
        net: marvell: prestera: Add neighbour cache accounting
        net: marvell: prestera: add stub handler neighbour events
        net: marvell: prestera: Add heplers to interact with fib_notifier_info
        net: marvell: prestera: Add length macros for prestera_ip_addr
        net: marvell: prestera: add delayed wq and flush wq on deinit
        net: marvell: prestera: Add strict cleanup of fib arbiter
        net: marvell: prestera: Add cleanup of allocated fib_nodes
        net: marvell: prestera: Add router nexthops ABI
        eth: octeon: fix build after netif_napi_add() changes
        net/mlx5: E-Switch, Return EBUSY if can't get mode lock
        ...
      0326074f
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 522667b2
      Linus Torvalds authored
      Pull landlock updates from Mickaël Salaün:
       "Improve user help for Landlock (documentation and sample)"
      
      * tag 'landlock-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        landlock: Fix documentation style
        landlock: Slightly improve documentation and fix spelling
        samples/landlock: Print hints about ABI versions
      522667b2
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · c645c11a
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Six audit patches for v6.1, most are pretty trivial, but a quick list
        of the highlights are below:
      
         - Only free the audit proctitle information on task exit. This allows
           us to cache the information and improve performance slightly.
      
         - Use the time_after() macro to do time comparisons instead of doing
           it directly and potentially causing ourselves problems when the
           timer wraps.
      
         - Convert an audit_context state comparison from a relative enum
           comparison, e.g. (x < y), to a not-equal comparison to ensure that
           we are not caught out at some unknown point in the future by an
           enum shuffle.
      
         - A handful of small cleanups such as tidying up comments and
           removing unused declarations"
      
      * tag 'audit-pr-20221003' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: remove selinux_audit_rule_update() declaration
        audit: use time_after to compare time
        audit: free audit_proctitle only on task exit
        audit: explicitly check audit_context->context enum value
        audit: audit_context pid unused, context enum comment fix
        audit: fix repeated words in comments
      c645c11a
    • Linus Torvalds's avatar
      Merge tag 'x86_cleanups_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3eba620e
      Linus Torvalds authored
      Pull x86 cleanups from Borislav Petkov:
      
       - The usual round of smaller fixes and cleanups all over the tree
      
      * tag 'x86_cleanups_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Include the header of init_ia32_feat_ctl()'s prototype
        x86/uaccess: Improve __try_cmpxchg64_user_asm() for x86_32
        x86: Fix various duplicate-word comment typos
        x86/boot: Remove superfluous type casting from arch/x86/boot/bitops.h
      3eba620e
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 193e2268
      Linus Torvalds authored
      Pull x86 cache resource control updates from Borislav Petkov:
      
       - More work by James Morse to disentangle the resctrl filesystem
         generic code from the architectural one with the endgoal of plugging
         ARM's MPAM implementation into it too so that the user interface
         remains the same
      
       - Properly restore the MSR_MISC_FEATURE_CONTROL value instead of
         blindly overwriting it to 0
      
      * tag 'x86_cache_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        x86/resctrl: Make resctrl_arch_rmid_read() return values in bytes
        x86/resctrl: Add resctrl_rmid_realloc_limit to abstract x86's boot_cpu_data
        x86/resctrl: Rename and change the units of resctrl_cqm_threshold
        x86/resctrl: Move get_corrected_mbm_count() into resctrl_arch_rmid_read()
        x86/resctrl: Move mbm_overflow_count() into resctrl_arch_rmid_read()
        x86/resctrl: Pass the required parameters into resctrl_arch_rmid_read()
        x86/resctrl: Abstract __rmid_read()
        x86/resctrl: Allow per-rmid arch private storage to be reset
        x86/resctrl: Add per-rmid arch private storage for overflow and chunks
        x86/resctrl: Calculate bandwidth from the previous __mon_event_count() chunks
        x86/resctrl: Allow update_mba_bw() to update controls directly
        x86/resctrl: Remove architecture copy of mbps_val
        x86/resctrl: Switch over to the resctrl mbps_val list
        x86/resctrl: Create mba_sc configuration in the rdt_domain
        x86/resctrl: Abstract and use supports_mba_mbps()
        x86/resctrl: Remove set_mba_sc()s control array re-initialisation
        x86/resctrl: Add domain offline callback for resctrl work
        x86/resctrl: Group struct rdt_hw_domain cleanup
        x86/resctrl: Add domain online callback for resctrl work
        x86/resctrl: Merge mon_capable and mon_enabled
        ...
      193e2268
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b5f0b113
      Linus Torvalds authored
      Pull x75 microcode loader updates from Borislav Petkov:
      
       - Get rid of a single ksize() usage
      
       - By popular demand, print the previous microcode revision an update
         was done over
      
       - Remove more code related to the now gone MICROCODE_OLD_INTERFACE
      
       - Document the problems stemming from microcode late loading
      
      * tag 'x86_microcode_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/AMD: Track patch allocation size explicitly
        x86/microcode: Print previous version of microcode after reload
        x86/microcode: Remove ->request_microcode_user()
        x86/microcode: Document the whole late loading problem
      b5f0b113
    • Linus Torvalds's avatar
      Merge tag 'x86_paravirt_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9bf445b6
      Linus Torvalds authored
      Pull x86 paravirt fix from Borislav Petkov:
      
       - Ensure paravirt patching site descriptors are aligned properly so
         that code can do proper arithmetic with their addresses
      
      * tag 'x86_paravirt_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/paravirt: Ensure proper alignment
      9bf445b6
    • Linus Torvalds's avatar
      Merge tag 'x86_misc_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 901735e5
      Linus Torvalds authored
      Pull misc x86 fixes from Borislav Petkov:
      
       - Drop misleading "RIP" from the opcodes dumping message
      
       - Correct APM entry's Konfig help text
      
      * tag 'x86_misc_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/dumpstack: Don't mention RIP in "Code: "
        x86/Kconfig: Specify idle=poll instead of no-hlt
      901735e5
    • Linus Torvalds's avatar
      Merge tag 'x86_asm_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bb1f1154
      Linus Torvalds authored
      Pull x86 asm update from Borislav Petkov:
      
       - Use the __builtin_ffs/ctzl() compiler builtins for the constant
         argument case in the kernel's optimized ffs()/ffz() helpers in order
         to make use of the compiler's constant folding optmization passes.
      
      * tag 'x86_asm_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm/bitops: Use __builtin_ctzl() to evaluate constant expressions
        x86/asm/bitops: Use __builtin_ffs() to evaluate constant expressions
      bb1f1154
    • Linus Torvalds's avatar
      Merge tag 'x86_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8cded8fb
      Linus Torvalds authored
      Pull x86 core fixes from Borislav Petkov:
      
       - Make sure an INT3 is slapped after every unconditional retpoline JMP
         as both vendors suggest
      
       - Clean up pciserial a bit
      
      * tag 'x86_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86,retpoline: Be sure to emit INT3 after JMP *%\reg
        x86/earlyprintk: Clean up pciserial
      8cded8fb
    • Linus Torvalds's avatar
      Merge tag 'x86_apic_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5bb3a16d
      Linus Torvalds authored
      Pull x86 APIC update from Borislav Petkov:
      
       - Add support for locking the APIC in X2APIC mode to prevent SGX
         enclave leaks
      
      * tag 'x86_apic_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Don't disable x2APIC if locked
      5bb3a16d
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 51eaa866
      Linus Torvalds authored
      Pull x86 RAS updates from Borislav Petkov:
      
       - Fix the APEI MCE callback handler to consult the hardware about the
         granularity of the memory error instead of hard-coding it
      
       - Offline memory pages on Intel machines after 2 errors reported per
         page
      
      * tag 'ras_core_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Retrieve poison range from hardware
        RAS/CEC: Reduce offline page threshold for Intel systems
      51eaa866
    • Linus Torvalds's avatar
      Merge tag 'x86_cpu_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7db99f01
      Linus Torvalds authored
      Pull x86 cpu updates from Borislav Petkov:
      
       - Print the CPU number at segfault time.
      
         The number printed is not always accurate (preemption is enabled at
         that time) but the print string contains "likely" and after a lot of
         back'n'forth on this, this was the consensus that was reached. See
         thread at [1].
      
       - After a *lot* of testing and polishing, finally the clear_user()
         improvements to inline REP; STOSB by default
      
      Link: https://lore.kernel.org/r/5d62c1d0-7425-d5bb-ecb5-1dc3b4d7d245@intel.com [1]
      
      * tag 'x86_cpu_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Print likely CPU at segfault time
        x86/clear_user: Make it faster
      7db99f01
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ba94a7a9
      Linus Torvalds authored
      Pull x86 SGX update from Borislav Petkov:
      
       - Improve the documentation of a couple of SGX functions handling
         backing storage
      
      * tag 'x86_sgx_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sgx: Improve comments for sgx_encl_lookup/alloc_backing()
      ba94a7a9
    • Linus Torvalds's avatar
      Merge tag 'x86_timers_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f8475a67
      Linus Torvalds authored
      Pull x86 RTC cleanups from Borislav Petkov:
      
       - Cleanup x86/rtc.c and delete duplicated functionality in favor of
         using the respective functionality from the RTC library
      
      * tag 'x86_timers_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/rtc: Rename mach_set_rtc_mmss() to mach_set_cmos_time()
        x86/rtc: Rewrite & simplify mach_get_cmos_time() by deleting duplicated functionality
      f8475a67
    • Linus Torvalds's avatar
      Merge tag 'x86_platform_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3339914a
      Linus Torvalds authored
      Pull x86 platform update from Borislav Petkov:
       "A single x86/platform improvement when the kernel is running as an
        ACRN guest:
      
         - Get TSC and CPU frequency from CPUID leaf 0x40000010 when the
           kernel is running as a guest on the ACRN hypervisor"
      
      * tag 'x86_platform_for_v6.1_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/acrn: Set up timekeeping
      3339914a