Skip to content

Commit 60596b9

Browse files
committed
Merge tag 'kernel-6.12.0-124.1.1.el10_1' into main
JIRA: INTERNAL Upstream Status: RHEL only Omit changes to Makefile.rhelver, .gitlab-ci.yml, and revert changes done by `720b7715` ("redhat: set defaults for RHEL 10.1"). Signed-off-by: Julio Faracco <jfaracco@redhat.com>
2 parents 598732d + b3711ee commit 60596b9

File tree

23 files changed

+305
-65
lines changed

23 files changed

+305
-65
lines changed

drivers/cxl/core/region.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1423,7 +1423,7 @@ static int cxl_port_setup_targets(struct cxl_port *port,
14231423

14241424
if (test_bit(CXL_REGION_F_AUTO, &cxlr->flags)) {
14251425
if (cxld->interleave_ways != iw ||
1426-
cxld->interleave_granularity != ig ||
1426+
(iw > 1 && cxld->interleave_granularity != ig) ||
14271427
cxld->hpa_range.start != p->res->start ||
14281428
cxld->hpa_range.end != p->res->end ||
14291429
((cxld->flags & CXL_DECODER_F_ENABLE) == 0)) {

drivers/dpll/dpll_core.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
* @pin_refs: stores pins registered within a dpll
2525
* @refcount: refcount
2626
* @registration_list: list of registered ops and priv data of dpll owners
27+
*
28+
* RHEL: The content of the structure is invisible for modules and also
29+
* all its instances are allocated by DPLL core so it is safe to modify this
30+
* structure but RH_KABI_EXTEND macro has to be used to avoid kABI checker
31+
* errors.
2732
**/
2833
struct dpll_device {
2934
u32 id;
@@ -48,6 +53,11 @@ struct dpll_device {
4853
* @rclk_dev_name: holds name of device when pin can recover clock from it
4954
* @refcount: refcount
5055
* @rcu: rcu_head for kfree_rcu()
56+
*
57+
* RHEL: The content of the structure is invisible for modules and also
58+
* all its instances are allocated by DPLL core so it is safe to modify this
59+
* structure but RH_KABI_EXTEND macro has to be used to avoid kABI checker
60+
* errors.
5161
**/
5262
struct dpll_pin {
5363
u32 id;

drivers/iommu/virtio-iommu.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -972,8 +972,7 @@ static void viommu_get_resv_regions(struct device *dev, struct list_head *head)
972972
iommu_dma_get_resv_regions(dev, head);
973973
}
974974

975-
static struct iommu_ops viommu_ops;
976-
static struct virtio_driver virtio_iommu_drv;
975+
static const struct bus_type *virtio_bus_type;
977976

978977
static int viommu_match_node(struct device *dev, const void *data)
979978
{
@@ -982,8 +981,9 @@ static int viommu_match_node(struct device *dev, const void *data)
982981

983982
static struct viommu_dev *viommu_get_by_fwnode(struct fwnode_handle *fwnode)
984983
{
985-
struct device *dev = driver_find_device(&virtio_iommu_drv.driver, NULL,
986-
fwnode, viommu_match_node);
984+
struct device *dev = bus_find_device(virtio_bus_type, NULL, fwnode,
985+
viommu_match_node);
986+
987987
put_device(dev);
988988

989989
return dev ? dev_to_virtio(dev)->priv : NULL;
@@ -1133,6 +1133,9 @@ static int viommu_probe(struct virtio_device *vdev)
11331133
if (!viommu)
11341134
return -ENOMEM;
11351135

1136+
/* Borrow this for easy lookups later */
1137+
virtio_bus_type = dev->bus;
1138+
11361139
spin_lock_init(&viommu->request_lock);
11371140
ida_init(&viommu->domain_ids);
11381141
viommu->dev = dev;
@@ -1198,10 +1201,10 @@ static int viommu_probe(struct virtio_device *vdev)
11981201
if (ret)
11991202
goto err_free_vqs;
12001203

1201-
iommu_device_register(&viommu->iommu, &viommu_ops, parent_dev);
1202-
12031204
vdev->priv = viommu;
12041205

1206+
iommu_device_register(&viommu->iommu, &viommu_ops, parent_dev);
1207+
12051208
dev_info(dev, "input address: %u bits\n",
12061209
order_base_2(viommu->geometry.aperture_end));
12071210
dev_info(dev, "page mask: %#llx\n", viommu->pgsize_bitmap);

drivers/net/ethernet/cisco/enic/enic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
#define ENIC_WQ_MAX 256
2828
#define ENIC_RQ_MAX 256
29+
#define ENIC_RQ_MIN_DEFAULT 8
2930

3031
#define ENIC_WQ_NAPI_BUDGET 256
3132

drivers/net/ethernet/cisco/enic/enic_main.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1864,10 +1864,10 @@ static int enic_change_mtu(struct net_device *netdev, int new_mtu)
18641864
if (enic_is_dynamic(enic) || enic_is_sriov_vf(enic))
18651865
return -EOPNOTSUPP;
18661866

1867-
if (netdev->mtu > enic->port_mtu)
1867+
if (new_mtu > enic->port_mtu)
18681868
netdev_warn(netdev,
18691869
"interface MTU (%d) set higher than port MTU (%d)\n",
1870-
netdev->mtu, enic->port_mtu);
1870+
new_mtu, enic->port_mtu);
18711871

18721872
return _enic_change_mtu(netdev, new_mtu);
18731873
}
@@ -2296,7 +2296,8 @@ static int enic_adjust_resources(struct enic *enic)
22962296
* used based on which resource is the most constrained
22972297
*/
22982298
wq_avail = min(enic->wq_avail, ENIC_WQ_MAX);
2299-
rq_default = netif_get_num_default_rss_queues();
2299+
rq_default = max(netif_get_num_default_rss_queues(),
2300+
ENIC_RQ_MIN_DEFAULT);
23002301
rq_avail = min3(enic->rq_avail, ENIC_RQ_MAX, rq_default);
23012302
max_queues = min(enic->cq_avail,
23022303
enic->intr_avail - ENIC_MSIX_RESERVED_INTR);

drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5003,7 +5003,7 @@ int i40e_get_vf_stats(struct net_device *netdev, int vf_id,
50035003
vf_stats->broadcast = stats->rx_broadcast;
50045004
vf_stats->multicast = stats->rx_multicast;
50055005
vf_stats->rx_dropped = stats->rx_discards + stats->rx_discards_other;
5006-
vf_stats->tx_dropped = stats->tx_discards;
5006+
vf_stats->tx_dropped = stats->tx_errors;
50075007

50085008
return 0;
50095009
}

drivers/net/ethernet/intel/ixgbe/devlink/devlink.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,7 @@ int ixgbe_devlink_register_port(struct ixgbe_adapter *adapter)
543543

544544
attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
545545
attrs.phys.port_number = adapter->hw.bus.func;
546+
attrs.no_phys_port_name = 1;
546547
ixgbe_devlink_set_switch_id(adapter, &attrs.switch_id);
547548

548549
devlink_port_attrs_set(devlink_port, &attrs);

include/linux/dpll.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
#include <linux/netdevice.h>
1414
#include <linux/rtnetlink.h>
1515

16+
#include <linux/rh_kabi.h>
17+
1618
struct dpll_device;
1719
struct dpll_pin;
1820
struct dpll_pin_esync;
@@ -38,6 +40,17 @@ struct dpll_device_ops {
3840
void *dpll_priv,
3941
enum dpll_feature_state *state,
4042
struct netlink_ext_ack *extack);
43+
44+
RH_KABI_RESERVE(1)
45+
RH_KABI_RESERVE(2)
46+
RH_KABI_RESERVE(3)
47+
RH_KABI_RESERVE(4)
48+
RH_KABI_RESERVE(5)
49+
RH_KABI_RESERVE(6)
50+
RH_KABI_RESERVE(7)
51+
RH_KABI_RESERVE(8)
52+
RH_KABI_RESERVE(9)
53+
RH_KABI_RESERVE(10)
4154
};
4255

4356
struct dpll_pin_ops {
@@ -103,6 +116,23 @@ struct dpll_pin_ops {
103116
const struct dpll_device *dpll, void *dpll_priv,
104117
struct dpll_pin_esync *esync,
105118
struct netlink_ext_ack *extack);
119+
120+
RH_KABI_RESERVE(1)
121+
RH_KABI_RESERVE(2)
122+
RH_KABI_RESERVE(3)
123+
RH_KABI_RESERVE(4)
124+
RH_KABI_RESERVE(5)
125+
RH_KABI_RESERVE(6)
126+
RH_KABI_RESERVE(7)
127+
RH_KABI_RESERVE(8)
128+
RH_KABI_RESERVE(9)
129+
RH_KABI_RESERVE(10)
130+
RH_KABI_RESERVE(11)
131+
RH_KABI_RESERVE(12)
132+
RH_KABI_RESERVE(13)
133+
RH_KABI_RESERVE(14)
134+
RH_KABI_RESERVE(15)
135+
RH_KABI_RESERVE(16)
106136
};
107137

108138
struct dpll_pin_frequency {

include/net/devlink.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ struct devlink_port_pci_sf_attrs {
7878
* @flavour: flavour of the port
7979
* @split: indicates if this is split port
8080
* @splittable: indicates if the port can be split.
81+
* @no_phys_port_name: skip automatic phys_port_name generation; for
82+
* compatibility only, newly added driver/port instance
83+
* should never set this.
8184
* @lanes: maximum number of lanes the port supports. 0 value is not passed to netlink.
8285
* @switch_id: if the port is part of switch, this is buffer with ID, otherwise this is NULL
8386
* @phys: physical port attributes
@@ -87,7 +90,8 @@ struct devlink_port_pci_sf_attrs {
8790
*/
8891
struct devlink_port_attrs {
8992
u8 split:1,
90-
splittable:1;
93+
splittable:1,
94+
no_phys_port_name:1;
9195
u32 lanes;
9296
enum devlink_port_flavour flavour;
9397
struct netdev_phys_item_id switch_id;

include/net/netfilter/nf_conntrack.h

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,19 @@ static inline bool nf_ct_is_expired(const struct nf_conn *ct)
306306
/* use after obtaining a reference count */
307307
static inline bool nf_ct_should_gc(const struct nf_conn *ct)
308308
{
309-
return nf_ct_is_expired(ct) && nf_ct_is_confirmed(ct) &&
310-
!nf_ct_is_dying(ct);
309+
if (!nf_ct_is_confirmed(ct))
310+
return false;
311+
312+
/* load ct->timeout after is_confirmed() test.
313+
* Pairs with __nf_conntrack_confirm() which:
314+
* 1. Increases ct->timeout value
315+
* 2. Inserts ct into rcu hlist
316+
* 3. Sets the confirmed bit
317+
* 4. Unlocks the hlist lock
318+
*/
319+
smp_acquire__after_ctrl_dep();
320+
321+
return nf_ct_is_expired(ct) && !nf_ct_is_dying(ct);
311322
}
312323

313324
#define NF_CT_DAY (86400 * HZ)

0 commit comments

Comments
 (0)