Skip to content

Commit 1b9ea68

Browse files
committed
Rebuild rocky9_6 with kernel-5.14.0-570.39.1.el9_6
Rebuild_History BUILDABLE Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50% Number of commits in upstream range v5.14~1..kernel-mainline: 323388 Number of commits in rpm: 37 Number of commits matched with upstream: 34 (91.89%) Number of commits in upstream but not in rpm: 323354 Number of commits NOT found in upstream: 3 (8.11%) Rebuilding Kernel on Branch rocky9_6_rebuild_kernel-5.14.0-570.39.1.el9_6 for kernel-5.14.0-570.39.1.el9_6 Clean Cherry Picks: 23 (67.65%) Empty Cherry Picks: 5 (14.71%) _______________________________ Full Details Located here: ciq/ciq_backports/kernel-5.14.0-570.39.1.el9_6/rebuild.details.txt Includes: * git commit header above * Empty Commits with upstream SHA * RPM ChangeLog Entries that could not be matched Individual Empty Commit failures contained in the same containing directory. The git message for empty commits will have the path for the failed commit. File names are the first 8 characters of the upstream SHA
1 parent b506bb2 commit 1b9ea68

35 files changed

+244
-129083
lines changed
File renamed without changes.

Makefile.rhelver

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ RHEL_MINOR = 6
1212
#
1313
# Use this spot to avoid future merge conflicts.
1414
# Do not trim this comment.
15-
RHEL_RELEASE = 570.37.1
15+
RHEL_RELEASE = 570.39.1
1616

1717
#
1818
# ZSTREAM

arch/s390/include/asm/pci.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ struct zpci_dev {
122122
struct rcu_head rcu;
123123
struct hotplug_slot hotplug_slot;
124124

125+
struct mutex state_lock; /* protect state changes */
125126
enum zpci_state state;
126127
u32 fid; /* function ID, used by sclp */
127128
u32 fh; /* function handle, used by insn's */
@@ -146,7 +147,6 @@ struct zpci_dev {
146147
u8 reserved : 1;
147148
unsigned int devfn; /* DEVFN part of the RID*/
148149

149-
struct mutex lock;
150150
u8 pfip[CLP_PFIP_NR_SEGMENTS]; /* pci function internal path */
151151
u32 uid; /* user defined id */
152152
u8 util_str[CLP_UTIL_STR_LEN]; /* utility string */
@@ -174,6 +174,7 @@ struct zpci_dev {
174174
u64 dma_mask; /* DMA address space mask */
175175

176176
/* Function measurement block */
177+
struct mutex fmb_lock;
177178
struct zpci_fmb *fmb;
178179
u16 fmb_update; /* update interval */
179180
u16 fmb_length;

arch/s390/pci/pci.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <linux/jump_label.h>
2929
#include <linux/pci.h>
3030
#include <linux/printk.h>
31+
#include <linux/lockdep.h>
3132
#include <linux/list_sort.h>
3233

3334
#include <asm/isc.h>
@@ -738,12 +739,12 @@ EXPORT_SYMBOL_GPL(zpci_disable_device);
738739
* equivalent to its state during boot when first probing a driver.
739740
* Consequently after reset the PCI function requires re-initialization via the
740741
* common PCI code including re-enabling IRQs via pci_alloc_irq_vectors()
741-
* and enabling the function via e.g.pci_enablde_device_flags().The caller
742+
* and enabling the function via e.g. pci_enable_device_flags(). The caller
742743
* must guard against concurrent reset attempts.
743744
*
744745
* In most cases this function should not be called directly but through
745746
* pci_reset_function() or pci_reset_bus() which handle the save/restore and
746-
* locking.
747+
* locking - asserted by lockdep.
747748
*
748749
* Return: 0 on success and an error value otherwise
749750
*/
@@ -752,6 +753,7 @@ int zpci_hot_reset_device(struct zpci_dev *zdev)
752753
u8 status;
753754
int rc;
754755

756+
lockdep_assert_held(&zdev->state_lock);
755757
zpci_dbg(3, "rst fid:%x, fh:%x\n", zdev->fid, zdev->fh);
756758
if (zdev_enabled(zdev)) {
757759
/* Disables device access, DMAs and IRQs (reset state) */
@@ -813,7 +815,8 @@ struct zpci_dev *zpci_create_device(u32 fid, u32 fh, enum zpci_state state)
813815
goto error;
814816
zdev->state = state;
815817

816-
mutex_init(&zdev->lock);
818+
mutex_init(&zdev->state_lock);
819+
mutex_init(&zdev->fmb_lock);
817820
mutex_init(&zdev->kzdev_lock);
818821

819822
return zdev;
@@ -903,6 +906,10 @@ int zpci_deconfigure_device(struct zpci_dev *zdev)
903906
{
904907
int rc;
905908

909+
lockdep_assert_held(&zdev->state_lock);
910+
if (zdev->state != ZPCI_FN_STATE_CONFIGURED)
911+
return 0;
912+
906913
if (zdev->zbus->bus)
907914
zpci_bus_remove_device(zdev, false);
908915

arch/s390/pci/pci_debug.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ static int pci_perf_show(struct seq_file *m, void *v)
9797
if (!zdev)
9898
return 0;
9999

100-
mutex_lock(&zdev->lock);
100+
mutex_lock(&zdev->fmb_lock);
101101
if (!zdev->fmb) {
102-
mutex_unlock(&zdev->lock);
102+
mutex_unlock(&zdev->fmb_lock);
103103
seq_puts(m, "FMB statistics disabled\n");
104104
return 0;
105105
}
@@ -136,7 +136,7 @@ static int pci_perf_show(struct seq_file *m, void *v)
136136
}
137137

138138
pci_sw_counter_show(m);
139-
mutex_unlock(&zdev->lock);
139+
mutex_unlock(&zdev->fmb_lock);
140140
return 0;
141141
}
142142

@@ -154,7 +154,7 @@ static ssize_t pci_perf_seq_write(struct file *file, const char __user *ubuf,
154154
if (rc)
155155
return rc;
156156

157-
mutex_lock(&zdev->lock);
157+
mutex_lock(&zdev->fmb_lock);
158158
switch (val) {
159159
case 0:
160160
rc = zpci_fmb_disable_device(zdev);
@@ -163,7 +163,7 @@ static ssize_t pci_perf_seq_write(struct file *file, const char __user *ubuf,
163163
rc = zpci_fmb_enable_device(zdev);
164164
break;
165165
}
166-
mutex_unlock(&zdev->lock);
166+
mutex_unlock(&zdev->fmb_lock);
167167
return rc ? rc : count;
168168
}
169169

arch/s390/pci/pci_event.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)
280280
zpci_err_hex(ccdf, sizeof(*ccdf));
281281

282282
if (zdev) {
283+
mutex_lock(&zdev->state_lock);
283284
zpci_update_fh(zdev, ccdf->fh);
284285
if (zdev->zbus->bus)
285286
pdev = pci_get_slot(zdev->zbus->bus, zdev->devfn);
@@ -308,6 +309,8 @@ static void __zpci_event_error(struct zpci_ccdf_err *ccdf)
308309
}
309310
pci_dev_put(pdev);
310311
no_pdev:
312+
if (zdev)
313+
mutex_unlock(&zdev->state_lock);
311314
zpci_zdev_put(zdev);
312315
}
313316

@@ -356,6 +359,10 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf)
356359

357360
zpci_dbg(3, "avl fid:%x, fh:%x, pec:%x\n",
358361
ccdf->fid, ccdf->fh, ccdf->pec);
362+
363+
if (existing_zdev)
364+
mutex_lock(&zdev->state_lock);
365+
359366
switch (ccdf->pec) {
360367
case 0x0301: /* Reserved|Standby -> Configured */
361368
if (!zdev) {
@@ -428,8 +435,10 @@ static void __zpci_event_availability(struct zpci_ccdf_avail *ccdf)
428435
default:
429436
break;
430437
}
431-
if (existing_zdev)
438+
if (existing_zdev) {
439+
mutex_unlock(&zdev->state_lock);
432440
zpci_zdev_put(zdev);
441+
}
433442
}
434443

435444
void zpci_event_availability(void *data)

arch/s390/pci/pci_sysfs.c

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,46 @@ static ssize_t mio_enabled_show(struct device *dev,
5050
}
5151
static DEVICE_ATTR_RO(mio_enabled);
5252

53+
static int _do_recover(struct pci_dev *pdev, struct zpci_dev *zdev)
54+
{
55+
u8 status;
56+
int ret;
57+
58+
pci_stop_and_remove_bus_device(pdev);
59+
if (zdev_enabled(zdev)) {
60+
ret = zpci_disable_device(zdev);
61+
/*
62+
* Due to a z/VM vs LPAR inconsistency in the error
63+
* state the FH may indicate an enabled device but
64+
* disable says the device is already disabled don't
65+
* treat it as an error here.
66+
*/
67+
if (ret == -EINVAL)
68+
ret = 0;
69+
if (ret)
70+
return ret;
71+
}
72+
73+
ret = zpci_enable_device(zdev);
74+
if (ret)
75+
return ret;
76+
77+
if (zdev->dma_table) {
78+
ret = zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma,
79+
virt_to_phys(zdev->dma_table), &status);
80+
if (ret)
81+
zpci_disable_device(zdev);
82+
}
83+
return ret;
84+
}
85+
5386
static ssize_t recover_store(struct device *dev, struct device_attribute *attr,
5487
const char *buf, size_t count)
5588
{
5689
struct kernfs_node *kn;
5790
struct pci_dev *pdev = to_pci_dev(dev);
5891
struct zpci_dev *zdev = to_zpci(pdev);
5992
int ret = 0;
60-
u8 status;
6193

6294
/* Can't use device_remove_self() here as that would lead us to lock
6395
* the pci_rescan_remove_lock while holding the device' kernfs lock.
@@ -71,6 +103,12 @@ static ssize_t recover_store(struct device *dev, struct device_attribute *attr,
71103
*/
72104
kn = sysfs_break_active_protection(&dev->kobj, &attr->attr);
73105
WARN_ON_ONCE(!kn);
106+
107+
/* Device needs to be configured and state must not change */
108+
mutex_lock(&zdev->state_lock);
109+
if (zdev->state != ZPCI_FN_STATE_CONFIGURED)
110+
goto out;
111+
74112
/* device_remove_file() serializes concurrent calls ignoring all but
75113
* the first
76114
*/
@@ -83,35 +121,13 @@ static ssize_t recover_store(struct device *dev, struct device_attribute *attr,
83121
*/
84122
pci_lock_rescan_remove();
85123
if (pci_dev_is_added(pdev)) {
86-
pci_stop_and_remove_bus_device(pdev);
87-
if (zdev_enabled(zdev)) {
88-
ret = zpci_disable_device(zdev);
89-
/*
90-
* Due to a z/VM vs LPAR inconsistency in the error
91-
* state the FH may indicate an enabled device but
92-
* disable says the device is already disabled don't
93-
* treat it as an error here.
94-
*/
95-
if (ret == -EINVAL)
96-
ret = 0;
97-
if (ret)
98-
goto out;
99-
}
100-
101-
ret = zpci_enable_device(zdev);
102-
if (ret)
103-
goto out;
104-
105-
if (zdev->dma_table) {
106-
ret = zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma,
107-
virt_to_phys(zdev->dma_table), &status);
108-
if (ret)
109-
zpci_disable_device(zdev);
110-
}
124+
ret = _do_recover(pdev, zdev);
111125
}
112-
out:
113126
pci_rescan_bus(zdev->zbus->bus);
114127
pci_unlock_rescan_remove();
128+
129+
out:
130+
mutex_unlock(&zdev->state_lock);
115131
if (kn)
116132
sysfs_unbreak_active_protection(kn);
117133
return ret ? ret : count;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Rebuild_History BUILDABLE
2+
Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50%
3+
Number of commits in upstream range v5.14~1..kernel-mainline: 323388
4+
Number of commits in rpm: 37
5+
Number of commits matched with upstream: 34 (91.89%)
6+
Number of commits in upstream but not in rpm: 323354
7+
Number of commits NOT found in upstream: 3 (8.11%)
8+
9+
Rebuilding Kernel on Branch rocky9_6_rebuild_kernel-5.14.0-570.39.1.el9_6 for kernel-5.14.0-570.39.1.el9_6
10+
Clean Cherry Picks: 23 (67.65%)
11+
Empty Cherry Picks: 5 (14.71%)
12+
_______________________________
13+
14+
__EMPTY COMMITS__________________________
15+
95d2b9f693ff2a1180a23d7d59acc0c4e72f4c41 Revert "smb: client: fix TCP timers deadlock after rmmod"
16+
0d48566d4b58946c8e1b0baac0347616060a81c9 s390/pci: rename lock member in struct zpci_dev
17+
bcb5d6c769039c8358a2359e7c3ea5d97ce93108 s390/pci: introduce lock to synchronize state of zpci_dev's
18+
05a2538f2b48500cf4e8a0a0ce76623cc5bafcf1 s390/pci: Fix duplicate pci_dev_put() in disable_slot() when PF has child VFs
19+
47c397844869ad0e6738afb5879c7492f4691122 s390/pci: Prevent self deletion in disable_slot()
20+
21+
__CHANGES NOT IN UPSTREAM________________
22+
Porting to Rocky Linux 9, debranding and Rocky branding'
23+
Ensure aarch64 kernel is not compressed'
24+
Merge: net: mana: Fix race of mana_hwc_post_rx_wqe and new hwc response [rhel-9.6.z]

0 commit comments

Comments
 (0)