1 |
commit: 3b4e7ee3ecafc67a33779255317083543e571448 |
2 |
Author: Mike Pagano <mpagano <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Nov 6 13:36:36 2021 +0000 |
4 |
Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Nov 6 13:36:36 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=3b4e7ee3 |
7 |
|
8 |
Linux patch 5.10.78 |
9 |
|
10 |
Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org> |
11 |
|
12 |
0000_README | 4 + |
13 |
1077_linux-5.10.78.patch | 465 +++++++++++++++++++++++++++++++++++++++++++++++ |
14 |
2 files changed, 469 insertions(+) |
15 |
|
16 |
diff --git a/0000_README b/0000_README |
17 |
index 40e234a..cb41873 100644 |
18 |
--- a/0000_README |
19 |
+++ b/0000_README |
20 |
@@ -351,6 +351,10 @@ Patch: 1076_linux-5.10.77.patch |
21 |
From: http://www.kernel.org |
22 |
Desc: Linux 5.10.77 |
23 |
|
24 |
+Patch: 1077_linux-5.10.78.patch |
25 |
+From: http://www.kernel.org |
26 |
+Desc: Linux 5.10.78 |
27 |
+ |
28 |
Patch: 1500_XATTR_USER_PREFIX.patch |
29 |
From: https://bugs.gentoo.org/show_bug.cgi?id=470644 |
30 |
Desc: Support for namespace user.pax.* on tmpfs. |
31 |
|
32 |
diff --git a/1077_linux-5.10.78.patch b/1077_linux-5.10.78.patch |
33 |
new file mode 100644 |
34 |
index 0000000..77ec5e8 |
35 |
--- /dev/null |
36 |
+++ b/1077_linux-5.10.78.patch |
37 |
@@ -0,0 +1,465 @@ |
38 |
+diff --git a/Makefile b/Makefile |
39 |
+index a58f49e415dc6..288fb48392538 100644 |
40 |
+--- a/Makefile |
41 |
++++ b/Makefile |
42 |
+@@ -1,7 +1,7 @@ |
43 |
+ # SPDX-License-Identifier: GPL-2.0 |
44 |
+ VERSION = 5 |
45 |
+ PATCHLEVEL = 10 |
46 |
+-SUBLEVEL = 77 |
47 |
++SUBLEVEL = 78 |
48 |
+ EXTRAVERSION = |
49 |
+ NAME = Dare mighty things |
50 |
+ |
51 |
+diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c |
52 |
+index b5f5ca4e3f343..8f4ae6e967e39 100644 |
53 |
+--- a/drivers/amba/bus.c |
54 |
++++ b/drivers/amba/bus.c |
55 |
+@@ -375,9 +375,6 @@ static int amba_device_try_add(struct amba_device *dev, struct resource *parent) |
56 |
+ void __iomem *tmp; |
57 |
+ int i, ret; |
58 |
+ |
59 |
+- WARN_ON(dev->irq[0] == (unsigned int)-1); |
60 |
+- WARN_ON(dev->irq[1] == (unsigned int)-1); |
61 |
+- |
62 |
+ ret = request_resource(parent, &dev->res); |
63 |
+ if (ret) |
64 |
+ goto err_out; |
65 |
+diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c |
66 |
+index 8fba425a76268..fb2a25f8408fc 100644 |
67 |
+--- a/drivers/gpu/drm/ttm/ttm_bo_util.c |
68 |
++++ b/drivers/gpu/drm/ttm/ttm_bo_util.c |
69 |
+@@ -322,7 +322,6 @@ static void ttm_transfered_destroy(struct ttm_buffer_object *bo) |
70 |
+ struct ttm_transfer_obj *fbo; |
71 |
+ |
72 |
+ fbo = container_of(bo, struct ttm_transfer_obj, base); |
73 |
+- dma_resv_fini(&fbo->base.base._resv); |
74 |
+ ttm_bo_put(fbo->bo); |
75 |
+ kfree(fbo); |
76 |
+ } |
77 |
+diff --git a/drivers/media/firewire/firedtv-avc.c b/drivers/media/firewire/firedtv-avc.c |
78 |
+index 2bf9467b917d1..71991f8638e6b 100644 |
79 |
+--- a/drivers/media/firewire/firedtv-avc.c |
80 |
++++ b/drivers/media/firewire/firedtv-avc.c |
81 |
+@@ -1165,7 +1165,11 @@ int avc_ca_pmt(struct firedtv *fdtv, char *msg, int length) |
82 |
+ read_pos += program_info_length; |
83 |
+ write_pos += program_info_length; |
84 |
+ } |
85 |
+- while (read_pos < length) { |
86 |
++ while (read_pos + 4 < length) { |
87 |
++ if (write_pos + 4 >= sizeof(c->operand) - 4) { |
88 |
++ ret = -EINVAL; |
89 |
++ goto out; |
90 |
++ } |
91 |
+ c->operand[write_pos++] = msg[read_pos++]; |
92 |
+ c->operand[write_pos++] = msg[read_pos++]; |
93 |
+ c->operand[write_pos++] = msg[read_pos++]; |
94 |
+@@ -1177,13 +1181,17 @@ int avc_ca_pmt(struct firedtv *fdtv, char *msg, int length) |
95 |
+ c->operand[write_pos++] = es_info_length >> 8; |
96 |
+ c->operand[write_pos++] = es_info_length & 0xff; |
97 |
+ if (es_info_length > 0) { |
98 |
++ if (read_pos >= length) { |
99 |
++ ret = -EINVAL; |
100 |
++ goto out; |
101 |
++ } |
102 |
+ pmt_cmd_id = msg[read_pos++]; |
103 |
+ if (pmt_cmd_id != 1 && pmt_cmd_id != 4) |
104 |
+ dev_err(fdtv->device, "invalid pmt_cmd_id %d at stream level\n", |
105 |
+ pmt_cmd_id); |
106 |
+ |
107 |
+- if (es_info_length > sizeof(c->operand) - 4 - |
108 |
+- write_pos) { |
109 |
++ if (es_info_length > sizeof(c->operand) - 4 - write_pos || |
110 |
++ es_info_length > length - read_pos) { |
111 |
+ ret = -EINVAL; |
112 |
+ goto out; |
113 |
+ } |
114 |
+diff --git a/drivers/media/firewire/firedtv-ci.c b/drivers/media/firewire/firedtv-ci.c |
115 |
+index 9363d005e2b61..e0d57e09dab0c 100644 |
116 |
+--- a/drivers/media/firewire/firedtv-ci.c |
117 |
++++ b/drivers/media/firewire/firedtv-ci.c |
118 |
+@@ -134,6 +134,8 @@ static int fdtv_ca_pmt(struct firedtv *fdtv, void *arg) |
119 |
+ } else { |
120 |
+ data_length = msg->msg[3]; |
121 |
+ } |
122 |
++ if (data_length > sizeof(msg->msg) - data_pos) |
123 |
++ return -EINVAL; |
124 |
+ |
125 |
+ return avc_ca_pmt(fdtv, &msg->msg[data_pos], data_length); |
126 |
+ } |
127 |
+diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c |
128 |
+index e14dfaafe4391..3eea8cf076c48 100644 |
129 |
+--- a/drivers/net/ethernet/microchip/lan743x_main.c |
130 |
++++ b/drivers/net/ethernet/microchip/lan743x_main.c |
131 |
+@@ -1963,13 +1963,13 @@ static int lan743x_rx_next_index(struct lan743x_rx *rx, int index) |
132 |
+ return ((++index) % rx->ring_size); |
133 |
+ } |
134 |
+ |
135 |
+-static struct sk_buff *lan743x_rx_allocate_skb(struct lan743x_rx *rx) |
136 |
++static struct sk_buff *lan743x_rx_allocate_skb(struct lan743x_rx *rx, gfp_t gfp) |
137 |
+ { |
138 |
+ int length = 0; |
139 |
+ |
140 |
+ length = (LAN743X_MAX_FRAME_SIZE + ETH_HLEN + 4 + RX_HEAD_PADDING); |
141 |
+ return __netdev_alloc_skb(rx->adapter->netdev, |
142 |
+- length, GFP_ATOMIC | GFP_DMA); |
143 |
++ length, gfp); |
144 |
+ } |
145 |
+ |
146 |
+ static void lan743x_rx_update_tail(struct lan743x_rx *rx, int index) |
147 |
+@@ -2141,7 +2141,8 @@ static int lan743x_rx_process_packet(struct lan743x_rx *rx) |
148 |
+ struct sk_buff *new_skb = NULL; |
149 |
+ int packet_length; |
150 |
+ |
151 |
+- new_skb = lan743x_rx_allocate_skb(rx); |
152 |
++ new_skb = lan743x_rx_allocate_skb(rx, |
153 |
++ GFP_ATOMIC | GFP_DMA); |
154 |
+ if (!new_skb) { |
155 |
+ /* failed to allocate next skb. |
156 |
+ * Memory is very low. |
157 |
+@@ -2377,7 +2378,8 @@ static int lan743x_rx_ring_init(struct lan743x_rx *rx) |
158 |
+ |
159 |
+ rx->last_head = 0; |
160 |
+ for (index = 0; index < rx->ring_size; index++) { |
161 |
+- struct sk_buff *new_skb = lan743x_rx_allocate_skb(rx); |
162 |
++ struct sk_buff *new_skb = lan743x_rx_allocate_skb(rx, |
163 |
++ GFP_KERNEL); |
164 |
+ |
165 |
+ ret = lan743x_rx_init_ring_element(rx, index, new_skb); |
166 |
+ if (ret) |
167 |
+diff --git a/drivers/net/ethernet/sfc/ethtool_common.c b/drivers/net/ethernet/sfc/ethtool_common.c |
168 |
+index bf1443539a1a4..bd552c7dffcb1 100644 |
169 |
+--- a/drivers/net/ethernet/sfc/ethtool_common.c |
170 |
++++ b/drivers/net/ethernet/sfc/ethtool_common.c |
171 |
+@@ -563,20 +563,14 @@ int efx_ethtool_get_link_ksettings(struct net_device *net_dev, |
172 |
+ { |
173 |
+ struct efx_nic *efx = netdev_priv(net_dev); |
174 |
+ struct efx_link_state *link_state = &efx->link_state; |
175 |
+- u32 supported; |
176 |
+ |
177 |
+ mutex_lock(&efx->mac_lock); |
178 |
+ efx_mcdi_phy_get_link_ksettings(efx, cmd); |
179 |
+ mutex_unlock(&efx->mac_lock); |
180 |
+ |
181 |
+ /* Both MACs support pause frames (bidirectional and respond-only) */ |
182 |
+- ethtool_convert_link_mode_to_legacy_u32(&supported, |
183 |
+- cmd->link_modes.supported); |
184 |
+- |
185 |
+- supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; |
186 |
+- |
187 |
+- ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported, |
188 |
+- supported); |
189 |
++ ethtool_link_ksettings_add_link_mode(cmd, supported, Pause); |
190 |
++ ethtool_link_ksettings_add_link_mode(cmd, supported, Asym_Pause); |
191 |
+ |
192 |
+ if (LOOPBACK_INTERNAL(efx)) { |
193 |
+ cmd->base.speed = link_state->speed; |
194 |
+diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c |
195 |
+index d406da82b4fb8..2746f77745e4d 100644 |
196 |
+--- a/drivers/net/vrf.c |
197 |
++++ b/drivers/net/vrf.c |
198 |
+@@ -1313,8 +1313,6 @@ static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, |
199 |
+ bool need_strict = rt6_need_strict(&ipv6_hdr(skb)->daddr); |
200 |
+ bool is_ndisc = ipv6_ndisc_frame(skb); |
201 |
+ |
202 |
+- nf_reset_ct(skb); |
203 |
+- |
204 |
+ /* loopback, multicast & non-ND link-local traffic; do not push through |
205 |
+ * packet taps again. Reset pkt_type for upper layers to process skb. |
206 |
+ * For strict packets with a source LLA, determine the dst using the |
207 |
+@@ -1371,8 +1369,6 @@ static struct sk_buff *vrf_ip_rcv(struct net_device *vrf_dev, |
208 |
+ skb->skb_iif = vrf_dev->ifindex; |
209 |
+ IPCB(skb)->flags |= IPSKB_L3SLAVE; |
210 |
+ |
211 |
+- nf_reset_ct(skb); |
212 |
+- |
213 |
+ if (ipv4_is_multicast(ip_hdr(skb)->daddr)) |
214 |
+ goto out; |
215 |
+ |
216 |
+diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c |
217 |
+index 6bed619535427..43be20baab354 100644 |
218 |
+--- a/drivers/net/wireless/ath/wcn36xx/main.c |
219 |
++++ b/drivers/net/wireless/ath/wcn36xx/main.c |
220 |
+@@ -601,15 +601,6 @@ static int wcn36xx_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, |
221 |
+ } |
222 |
+ } |
223 |
+ } |
224 |
+- /* FIXME: Only enable bmps support when encryption is enabled. |
225 |
+- * For any reasons, when connected to open/no-security BSS, |
226 |
+- * the wcn36xx controller in bmps mode does not forward |
227 |
+- * 'wake-up' beacons despite AP sends DTIM with station AID. |
228 |
+- * It could be due to a firmware issue or to the way driver |
229 |
+- * configure the station. |
230 |
+- */ |
231 |
+- if (vif->type == NL80211_IFTYPE_STATION) |
232 |
+- vif_priv->allow_bmps = true; |
233 |
+ break; |
234 |
+ case DISABLE_KEY: |
235 |
+ if (!(IEEE80211_KEY_FLAG_PAIRWISE & key_conf->flags)) { |
236 |
+@@ -909,7 +900,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw, |
237 |
+ vif->addr, |
238 |
+ bss_conf->aid); |
239 |
+ vif_priv->sta_assoc = false; |
240 |
+- vif_priv->allow_bmps = false; |
241 |
+ wcn36xx_smd_set_link_st(wcn, |
242 |
+ bss_conf->bssid, |
243 |
+ vif->addr, |
244 |
+diff --git a/drivers/net/wireless/ath/wcn36xx/pmc.c b/drivers/net/wireless/ath/wcn36xx/pmc.c |
245 |
+index 2d0780fefd477..2936aaf532738 100644 |
246 |
+--- a/drivers/net/wireless/ath/wcn36xx/pmc.c |
247 |
++++ b/drivers/net/wireless/ath/wcn36xx/pmc.c |
248 |
+@@ -23,10 +23,7 @@ int wcn36xx_pmc_enter_bmps_state(struct wcn36xx *wcn, |
249 |
+ { |
250 |
+ int ret = 0; |
251 |
+ struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); |
252 |
+- |
253 |
+- if (!vif_priv->allow_bmps) |
254 |
+- return -ENOTSUPP; |
255 |
+- |
256 |
++ /* TODO: Make sure the TX chain clean */ |
257 |
+ ret = wcn36xx_smd_enter_bmps(wcn, vif); |
258 |
+ if (!ret) { |
259 |
+ wcn36xx_dbg(WCN36XX_DBG_PMC, "Entered BMPS\n"); |
260 |
+diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h |
261 |
+index d0fcce86903ae..9b4dee2fc6483 100644 |
262 |
+--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h |
263 |
++++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h |
264 |
+@@ -127,7 +127,6 @@ struct wcn36xx_vif { |
265 |
+ enum wcn36xx_hal_bss_type bss_type; |
266 |
+ |
267 |
+ /* Power management */ |
268 |
+- bool allow_bmps; |
269 |
+ enum wcn36xx_power_state pw_state; |
270 |
+ |
271 |
+ u8 bss_index; |
272 |
+diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c |
273 |
+index 24619c3bebd52..6ad834d61d4c7 100644 |
274 |
+--- a/drivers/scsi/scsi.c |
275 |
++++ b/drivers/scsi/scsi.c |
276 |
+@@ -545,8 +545,10 @@ EXPORT_SYMBOL(scsi_device_get); |
277 |
+ */ |
278 |
+ void scsi_device_put(struct scsi_device *sdev) |
279 |
+ { |
280 |
+- module_put(sdev->host->hostt->module); |
281 |
++ struct module *mod = sdev->host->hostt->module; |
282 |
++ |
283 |
+ put_device(&sdev->sdev_gendev); |
284 |
++ module_put(mod); |
285 |
+ } |
286 |
+ EXPORT_SYMBOL(scsi_device_put); |
287 |
+ |
288 |
+diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c |
289 |
+index 8173b67ec7b0f..1378bb1a7371c 100644 |
290 |
+--- a/drivers/scsi/scsi_sysfs.c |
291 |
++++ b/drivers/scsi/scsi_sysfs.c |
292 |
+@@ -450,9 +450,12 @@ static void scsi_device_dev_release_usercontext(struct work_struct *work) |
293 |
+ struct scsi_vpd *vpd_pg80 = NULL, *vpd_pg83 = NULL; |
294 |
+ struct scsi_vpd *vpd_pg0 = NULL, *vpd_pg89 = NULL; |
295 |
+ unsigned long flags; |
296 |
++ struct module *mod; |
297 |
+ |
298 |
+ sdev = container_of(work, struct scsi_device, ew.work); |
299 |
+ |
300 |
++ mod = sdev->host->hostt->module; |
301 |
++ |
302 |
+ scsi_dh_release_device(sdev); |
303 |
+ |
304 |
+ parent = sdev->sdev_gendev.parent; |
305 |
+@@ -501,11 +504,17 @@ static void scsi_device_dev_release_usercontext(struct work_struct *work) |
306 |
+ |
307 |
+ if (parent) |
308 |
+ put_device(parent); |
309 |
++ module_put(mod); |
310 |
+ } |
311 |
+ |
312 |
+ static void scsi_device_dev_release(struct device *dev) |
313 |
+ { |
314 |
+ struct scsi_device *sdp = to_scsi_device(dev); |
315 |
++ |
316 |
++ /* Set module pointer as NULL in case of module unloading */ |
317 |
++ if (!try_module_get(sdp->host->hostt->module)) |
318 |
++ sdp->host->hostt->module = NULL; |
319 |
++ |
320 |
+ execute_in_process_context(scsi_device_dev_release_usercontext, |
321 |
+ &sdp->ew); |
322 |
+ } |
323 |
+diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c |
324 |
+index 4bbf3316a9a53..99908d8d2dd36 100644 |
325 |
+--- a/drivers/usb/core/hcd.c |
326 |
++++ b/drivers/usb/core/hcd.c |
327 |
+@@ -2640,7 +2640,6 @@ int usb_add_hcd(struct usb_hcd *hcd, |
328 |
+ { |
329 |
+ int retval; |
330 |
+ struct usb_device *rhdev; |
331 |
+- struct usb_hcd *shared_hcd; |
332 |
+ |
333 |
+ if (!hcd->skip_phy_initialization && usb_hcd_is_primary_hcd(hcd)) { |
334 |
+ hcd->phy_roothub = usb_phy_roothub_alloc(hcd->self.sysdev); |
335 |
+@@ -2797,26 +2796,13 @@ int usb_add_hcd(struct usb_hcd *hcd, |
336 |
+ goto err_hcd_driver_start; |
337 |
+ } |
338 |
+ |
339 |
+- /* starting here, usbcore will pay attention to the shared HCD roothub */ |
340 |
+- shared_hcd = hcd->shared_hcd; |
341 |
+- if (!usb_hcd_is_primary_hcd(hcd) && shared_hcd && HCD_DEFER_RH_REGISTER(shared_hcd)) { |
342 |
+- retval = register_root_hub(shared_hcd); |
343 |
+- if (retval != 0) |
344 |
+- goto err_register_root_hub; |
345 |
+- |
346 |
+- if (shared_hcd->uses_new_polling && HCD_POLL_RH(shared_hcd)) |
347 |
+- usb_hcd_poll_rh_status(shared_hcd); |
348 |
+- } |
349 |
+- |
350 |
+ /* starting here, usbcore will pay attention to this root hub */ |
351 |
+- if (!HCD_DEFER_RH_REGISTER(hcd)) { |
352 |
+- retval = register_root_hub(hcd); |
353 |
+- if (retval != 0) |
354 |
+- goto err_register_root_hub; |
355 |
++ retval = register_root_hub(hcd); |
356 |
++ if (retval != 0) |
357 |
++ goto err_register_root_hub; |
358 |
+ |
359 |
+- if (hcd->uses_new_polling && HCD_POLL_RH(hcd)) |
360 |
+- usb_hcd_poll_rh_status(hcd); |
361 |
+- } |
362 |
++ if (hcd->uses_new_polling && HCD_POLL_RH(hcd)) |
363 |
++ usb_hcd_poll_rh_status(hcd); |
364 |
+ |
365 |
+ return retval; |
366 |
+ |
367 |
+@@ -2859,7 +2845,6 @@ EXPORT_SYMBOL_GPL(usb_add_hcd); |
368 |
+ void usb_remove_hcd(struct usb_hcd *hcd) |
369 |
+ { |
370 |
+ struct usb_device *rhdev = hcd->self.root_hub; |
371 |
+- bool rh_registered; |
372 |
+ |
373 |
+ dev_info(hcd->self.controller, "remove, state %x\n", hcd->state); |
374 |
+ |
375 |
+@@ -2870,7 +2855,6 @@ void usb_remove_hcd(struct usb_hcd *hcd) |
376 |
+ |
377 |
+ dev_dbg(hcd->self.controller, "roothub graceful disconnect\n"); |
378 |
+ spin_lock_irq (&hcd_root_hub_lock); |
379 |
+- rh_registered = hcd->rh_registered; |
380 |
+ hcd->rh_registered = 0; |
381 |
+ spin_unlock_irq (&hcd_root_hub_lock); |
382 |
+ |
383 |
+@@ -2880,8 +2864,7 @@ void usb_remove_hcd(struct usb_hcd *hcd) |
384 |
+ cancel_work_sync(&hcd->died_work); |
385 |
+ |
386 |
+ mutex_lock(&usb_bus_idr_lock); |
387 |
+- if (rh_registered) |
388 |
+- usb_disconnect(&rhdev); /* Sets rhdev to NULL */ |
389 |
++ usb_disconnect(&rhdev); /* Sets rhdev to NULL */ |
390 |
+ mutex_unlock(&usb_bus_idr_lock); |
391 |
+ |
392 |
+ /* |
393 |
+diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c |
394 |
+index 0d6dc2e20f2aa..bf42ba3e4415a 100644 |
395 |
+--- a/drivers/usb/host/xhci.c |
396 |
++++ b/drivers/usb/host/xhci.c |
397 |
+@@ -693,7 +693,6 @@ int xhci_run(struct usb_hcd *hcd) |
398 |
+ if (ret) |
399 |
+ xhci_free_command(xhci, command); |
400 |
+ } |
401 |
+- set_bit(HCD_FLAG_DEFER_RH_REGISTER, &hcd->flags); |
402 |
+ xhci_dbg_trace(xhci, trace_xhci_dbg_init, |
403 |
+ "Finished xhci_run for USB2 roothub"); |
404 |
+ |
405 |
+diff --git a/fs/io_uring.c b/fs/io_uring.c |
406 |
+index ee7ceea899346..104dff9c71314 100644 |
407 |
+--- a/fs/io_uring.c |
408 |
++++ b/fs/io_uring.c |
409 |
+@@ -8759,9 +8759,10 @@ static void io_uring_cancel_task_requests(struct io_ring_ctx *ctx, |
410 |
+ io_cancel_defer_files(ctx, task, files); |
411 |
+ io_cqring_overflow_flush(ctx, true, task, files); |
412 |
+ |
413 |
+- io_uring_cancel_files(ctx, task, files); |
414 |
+ if (!files) |
415 |
+ __io_uring_cancel_task_requests(ctx, task); |
416 |
++ else |
417 |
++ io_uring_cancel_files(ctx, task, files); |
418 |
+ |
419 |
+ if ((ctx->flags & IORING_SETUP_SQPOLL) && ctx->sq_data) { |
420 |
+ atomic_dec(&task->io_uring->in_idle); |
421 |
+diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h |
422 |
+index 9f05016d823f8..3dbb42c637c14 100644 |
423 |
+--- a/include/linux/usb/hcd.h |
424 |
++++ b/include/linux/usb/hcd.h |
425 |
+@@ -124,7 +124,6 @@ struct usb_hcd { |
426 |
+ #define HCD_FLAG_RH_RUNNING 5 /* root hub is running? */ |
427 |
+ #define HCD_FLAG_DEAD 6 /* controller has died? */ |
428 |
+ #define HCD_FLAG_INTF_AUTHORIZED 7 /* authorize interfaces? */ |
429 |
+-#define HCD_FLAG_DEFER_RH_REGISTER 8 /* Defer roothub registration */ |
430 |
+ |
431 |
+ /* The flags can be tested using these macros; they are likely to |
432 |
+ * be slightly faster than test_bit(). |
433 |
+@@ -135,7 +134,6 @@ struct usb_hcd { |
434 |
+ #define HCD_WAKEUP_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING)) |
435 |
+ #define HCD_RH_RUNNING(hcd) ((hcd)->flags & (1U << HCD_FLAG_RH_RUNNING)) |
436 |
+ #define HCD_DEAD(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEAD)) |
437 |
+-#define HCD_DEFER_RH_REGISTER(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEFER_RH_REGISTER)) |
438 |
+ |
439 |
+ /* |
440 |
+ * Specifies if interfaces are authorized by default |
441 |
+diff --git a/mm/khugepaged.c b/mm/khugepaged.c |
442 |
+index ff389d970b683..969e57dde65f9 100644 |
443 |
+--- a/mm/khugepaged.c |
444 |
++++ b/mm/khugepaged.c |
445 |
+@@ -443,21 +443,24 @@ static bool hugepage_vma_check(struct vm_area_struct *vma, |
446 |
+ if (!transhuge_vma_enabled(vma, vm_flags)) |
447 |
+ return false; |
448 |
+ |
449 |
++ if (vma->vm_file && !IS_ALIGNED((vma->vm_start >> PAGE_SHIFT) - |
450 |
++ vma->vm_pgoff, HPAGE_PMD_NR)) |
451 |
++ return false; |
452 |
++ |
453 |
+ /* Enabled via shmem mount options or sysfs settings. */ |
454 |
+- if (shmem_file(vma->vm_file) && shmem_huge_enabled(vma)) { |
455 |
+- return IS_ALIGNED((vma->vm_start >> PAGE_SHIFT) - vma->vm_pgoff, |
456 |
+- HPAGE_PMD_NR); |
457 |
+- } |
458 |
++ if (shmem_file(vma->vm_file)) |
459 |
++ return shmem_huge_enabled(vma); |
460 |
+ |
461 |
+ /* THP settings require madvise. */ |
462 |
+ if (!(vm_flags & VM_HUGEPAGE) && !khugepaged_always()) |
463 |
+ return false; |
464 |
+ |
465 |
+- /* Read-only file mappings need to be aligned for THP to work. */ |
466 |
++ /* Only regular file is valid */ |
467 |
+ if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && vma->vm_file && |
468 |
+ (vm_flags & VM_DENYWRITE)) { |
469 |
+- return IS_ALIGNED((vma->vm_start >> PAGE_SHIFT) - vma->vm_pgoff, |
470 |
+- HPAGE_PMD_NR); |
471 |
++ struct inode *inode = vma->vm_file->f_inode; |
472 |
++ |
473 |
++ return S_ISREG(inode->i_mode); |
474 |
+ } |
475 |
+ |
476 |
+ if (!vma->anon_vma || vma->vm_ops) |
477 |
+diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c |
478 |
+index c5794e83fd800..8f6823df944ff 100644 |
479 |
+--- a/sound/usb/mixer_maps.c |
480 |
++++ b/sound/usb/mixer_maps.c |
481 |
+@@ -528,6 +528,10 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = { |
482 |
+ .id = USB_ID(0x2573, 0x0008), |
483 |
+ .map = maya44_map, |
484 |
+ }, |
485 |
++ { |
486 |
++ .id = USB_ID(0x2708, 0x0002), /* Audient iD14 */ |
487 |
++ .ignore_ctl_error = 1, |
488 |
++ }, |
489 |
+ { |
490 |
+ /* KEF X300A */ |
491 |
+ .id = USB_ID(0x27ac, 0x1000), |
492 |
+@@ -538,6 +542,10 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = { |
493 |
+ .id = USB_ID(0x25c4, 0x0003), |
494 |
+ .map = scms_usb3318_map, |
495 |
+ }, |
496 |
++ { |
497 |
++ .id = USB_ID(0x30be, 0x0101), /* Schiit Hel */ |
498 |
++ .ignore_ctl_error = 1, |
499 |
++ }, |
500 |
+ { |
501 |
+ /* Bose Companion 5 */ |
502 |
+ .id = USB_ID(0x05a7, 0x1020), |