Gentoo Archives: gentoo-commits

From: Mike Pagano <mpagano@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/linux-patches:4.9 commit in: /
Date: Wed, 28 Sep 2022 09:19:41
Message-Id: 1664356767.c8c6fa9a4c7002a6455fa4e710684c192980fe0c.mpagano@gentoo
1 commit: c8c6fa9a4c7002a6455fa4e710684c192980fe0c
2 Author: Mike Pagano <mpagano <AT> gentoo <DOT> org>
3 AuthorDate: Wed Sep 28 09:19:27 2022 +0000
4 Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org>
5 CommitDate: Wed Sep 28 09:19:27 2022 +0000
6 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=c8c6fa9a
7
8 Linux patch 4.9.330
9
10 Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org>
11
12 0000_README | 4 +
13 1329_linux-4.9.330.patch | 517 +++++++++++++++++++++++++++++++++++++++++++++++
14 2 files changed, 521 insertions(+)
15
16 diff --git a/0000_README b/0000_README
17 index b7ec5c6a..f8b8cc43 100644
18 --- a/0000_README
19 +++ b/0000_README
20 @@ -1363,6 +1363,10 @@ Patch: 1328_linux-4.9.329.patch
21 From: http://www.kernel.org
22 Desc: Linux 4.9.329
23
24 +Patch: 1329_linux-4.9.330.patch
25 +From: http://www.kernel.org
26 +Desc: Linux 4.9.330
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/1329_linux-4.9.330.patch b/1329_linux-4.9.330.patch
33 new file mode 100644
34 index 00000000..f6cd910c
35 --- /dev/null
36 +++ b/1329_linux-4.9.330.patch
37 @@ -0,0 +1,517 @@
38 +diff --git a/Makefile b/Makefile
39 +index 31cf32eb5fc9a..ad86576ed692e 100644
40 +--- a/Makefile
41 ++++ b/Makefile
42 +@@ -1,6 +1,6 @@
43 + VERSION = 4
44 + PATCHLEVEL = 9
45 +-SUBLEVEL = 329
46 ++SUBLEVEL = 330
47 + EXTRAVERSION =
48 + NAME = Roaring Lionus
49 +
50 +diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
51 +index d1de57b86683c..e0835a743e418 100644
52 +--- a/arch/mips/lantiq/clk.c
53 ++++ b/arch/mips/lantiq/clk.c
54 +@@ -52,6 +52,7 @@ struct clk *clk_get_io(void)
55 + {
56 + return &cpu_clk_generic[2];
57 + }
58 ++EXPORT_SYMBOL_GPL(clk_get_io);
59 +
60 + struct clk *clk_get_ppe(void)
61 + {
62 +diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
63 +index 3248aa7a35b36..cb3e22f10d688 100644
64 +--- a/drivers/hv/vmbus_drv.c
65 ++++ b/drivers/hv/vmbus_drv.c
66 +@@ -1186,7 +1186,7 @@ int vmbus_allocate_mmio(struct resource **new, struct hv_device *device_obj,
67 + bool fb_overlap_ok)
68 + {
69 + struct resource *iter, *shadow;
70 +- resource_size_t range_min, range_max, start;
71 ++ resource_size_t range_min, range_max, start, end;
72 + const char *dev_n = dev_name(&device_obj->device);
73 + int retval;
74 +
75 +@@ -1221,6 +1221,14 @@ int vmbus_allocate_mmio(struct resource **new, struct hv_device *device_obj,
76 + range_max = iter->end;
77 + start = (range_min + align - 1) & ~(align - 1);
78 + for (; start + size - 1 <= range_max; start += align) {
79 ++ end = start + size - 1;
80 ++
81 ++ /* Skip the whole fb_mmio region if not fb_overlap_ok */
82 ++ if (!fb_overlap_ok && fb_mmio &&
83 ++ (((start >= fb_mmio->start) && (start <= fb_mmio->end)) ||
84 ++ ((end >= fb_mmio->start) && (end <= fb_mmio->end))))
85 ++ continue;
86 ++
87 + shadow = __request_region(iter, start, size, NULL,
88 + IORESOURCE_BUSY);
89 + if (!shadow)
90 +diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c
91 +index e3dc59fffdb78..8472667ffe716 100644
92 +--- a/drivers/net/can/usb/gs_usb.c
93 ++++ b/drivers/net/can/usb/gs_usb.c
94 +@@ -687,6 +687,7 @@ static int gs_can_open(struct net_device *netdev)
95 + flags |= GS_CAN_MODE_TRIPLE_SAMPLE;
96 +
97 + /* finally start device */
98 ++ dev->can.state = CAN_STATE_ERROR_ACTIVE;
99 + dm->mode = cpu_to_le32(GS_CAN_MODE_START);
100 + dm->flags = cpu_to_le32(flags);
101 + rc = usb_control_msg(interface_to_usbdev(dev->iface),
102 +@@ -703,13 +704,12 @@ static int gs_can_open(struct net_device *netdev)
103 + if (rc < 0) {
104 + netdev_err(netdev, "Couldn't start device (err=%d)\n", rc);
105 + kfree(dm);
106 ++ dev->can.state = CAN_STATE_STOPPED;
107 + return rc;
108 + }
109 +
110 + kfree(dm);
111 +
112 +- dev->can.state = CAN_STATE_ERROR_ACTIVE;
113 +-
114 + parent->active_channels++;
115 + if (!(dev->can.ctrlmode & CAN_CTRLMODE_LISTENONLY))
116 + netif_start_queue(netdev);
117 +diff --git a/drivers/net/ethernet/sun/sunhme.c b/drivers/net/ethernet/sun/sunhme.c
118 +index b38106a7cb5d8..b421a1d44783d 100644
119 +--- a/drivers/net/ethernet/sun/sunhme.c
120 ++++ b/drivers/net/ethernet/sun/sunhme.c
121 +@@ -2064,9 +2064,9 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
122 +
123 + skb_reserve(copy_skb, 2);
124 + skb_put(copy_skb, len);
125 +- dma_sync_single_for_cpu(hp->dma_dev, dma_addr, len, DMA_FROM_DEVICE);
126 ++ dma_sync_single_for_cpu(hp->dma_dev, dma_addr, len + 2, DMA_FROM_DEVICE);
127 + skb_copy_from_linear_data(skb, copy_skb->data, len);
128 +- dma_sync_single_for_device(hp->dma_dev, dma_addr, len, DMA_FROM_DEVICE);
129 ++ dma_sync_single_for_device(hp->dma_dev, dma_addr, len + 2, DMA_FROM_DEVICE);
130 + /* Reuse original ring buffer. */
131 + hme_write_rxd(hp, this,
132 + (RXFLAG_OWN|((RX_BUF_ALLOC_SIZE-RX_OFFSET)<<16)),
133 +diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
134 +index 6c0982a39486a..7668584c38433 100644
135 +--- a/drivers/net/ipvlan/ipvlan_core.c
136 ++++ b/drivers/net/ipvlan/ipvlan_core.c
137 +@@ -441,7 +441,6 @@ out:
138 +
139 + static int ipvlan_process_outbound(struct sk_buff *skb)
140 + {
141 +- struct ethhdr *ethh = eth_hdr(skb);
142 + int ret = NET_XMIT_DROP;
143 +
144 + /* The ipvlan is a pseudo-L2 device, so the packets that we receive
145 +@@ -451,6 +450,8 @@ static int ipvlan_process_outbound(struct sk_buff *skb)
146 + if (skb_mac_header_was_set(skb)) {
147 + /* In this mode we dont care about
148 + * multicast and broadcast traffic */
149 ++ struct ethhdr *ethh = eth_hdr(skb);
150 ++
151 + if (is_multicast_ether_addr(ethh->h_dest)) {
152 + pr_debug_ratelimited(
153 + "Dropped {multi|broad}cast of type=[%x]\n",
154 +@@ -520,7 +521,7 @@ out:
155 + static int ipvlan_xmit_mode_l2(struct sk_buff *skb, struct net_device *dev)
156 + {
157 + const struct ipvl_dev *ipvlan = netdev_priv(dev);
158 +- struct ethhdr *eth = eth_hdr(skb);
159 ++ struct ethhdr *eth = skb_eth_hdr(skb);
160 + struct ipvl_addr *addr;
161 + void *lyr3h;
162 + int addr_type;
163 +@@ -544,6 +545,7 @@ static int ipvlan_xmit_mode_l2(struct sk_buff *skb, struct net_device *dev)
164 + return dev_forward_skb(ipvlan->phy_dev, skb);
165 +
166 + } else if (is_multicast_ether_addr(eth->h_dest)) {
167 ++ skb_reset_mac_header(skb);
168 + ipvlan_skb_crossing_ns(skb, NULL);
169 + ipvlan_multicast_enqueue(ipvlan->port, skb);
170 + return NET_XMIT_SUCCESS;
171 +diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
172 +index 001dea7aaba3d..657e12e0b5e2b 100644
173 +--- a/drivers/net/team/team.c
174 ++++ b/drivers/net/team/team.c
175 +@@ -1280,10 +1280,12 @@ static int team_port_add(struct team *team, struct net_device *port_dev)
176 + }
177 + }
178 +
179 +- netif_addr_lock_bh(dev);
180 +- dev_uc_sync_multiple(port_dev, dev);
181 +- dev_mc_sync_multiple(port_dev, dev);
182 +- netif_addr_unlock_bh(dev);
183 ++ if (dev->flags & IFF_UP) {
184 ++ netif_addr_lock_bh(dev);
185 ++ dev_uc_sync_multiple(port_dev, dev);
186 ++ dev_mc_sync_multiple(port_dev, dev);
187 ++ netif_addr_unlock_bh(dev);
188 ++ }
189 +
190 + port->index = -1;
191 + list_add_tail_rcu(&port->list, &team->port_list);
192 +@@ -1354,8 +1356,10 @@ static int team_port_del(struct team *team, struct net_device *port_dev)
193 + netdev_rx_handler_unregister(port_dev);
194 + team_port_disable_netpoll(port);
195 + vlan_vids_del_by_dev(port_dev, dev);
196 +- dev_uc_unsync(port_dev, dev);
197 +- dev_mc_unsync(port_dev, dev);
198 ++ if (dev->flags & IFF_UP) {
199 ++ dev_uc_unsync(port_dev, dev);
200 ++ dev_mc_unsync(port_dev, dev);
201 ++ }
202 + dev_close(port_dev);
203 + team_port_leave(team, port);
204 +
205 +@@ -1703,6 +1707,14 @@ static int team_open(struct net_device *dev)
206 +
207 + static int team_close(struct net_device *dev)
208 + {
209 ++ struct team *team = netdev_priv(dev);
210 ++ struct team_port *port;
211 ++
212 ++ list_for_each_entry(port, &team->port_list, list) {
213 ++ dev_uc_unsync(port->dev, dev);
214 ++ dev_mc_unsync(port->dev, dev);
215 ++ }
216 ++
217 + return 0;
218 + }
219 +
220 +diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
221 +index 633762f8d7755..84a93ddcd57a2 100644
222 +--- a/drivers/parisc/ccio-dma.c
223 ++++ b/drivers/parisc/ccio-dma.c
224 +@@ -1569,6 +1569,7 @@ static int __init ccio_probe(struct parisc_device *dev)
225 + ioc->ioc_regs = ioremap_nocache(dev->hpa.start, 4096);
226 + ccio_ioc_init(ioc);
227 + if (ccio_init_resources(ioc)) {
228 ++ iounmap(ioc->ioc_regs);
229 + kfree(ioc);
230 + return -ENOMEM;
231 + }
232 +diff --git a/drivers/s390/block/dasd_alias.c b/drivers/s390/block/dasd_alias.c
233 +index 2002684a68b3c..53eb32c65abb9 100644
234 +--- a/drivers/s390/block/dasd_alias.c
235 ++++ b/drivers/s390/block/dasd_alias.c
236 +@@ -674,12 +674,12 @@ int dasd_alias_remove_device(struct dasd_device *device)
237 + struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
238 + {
239 + struct dasd_eckd_private *alias_priv, *private = base_device->private;
240 +- struct alias_pav_group *group = private->pavgroup;
241 + struct alias_lcu *lcu = private->lcu;
242 + struct dasd_device *alias_device;
243 ++ struct alias_pav_group *group;
244 + unsigned long flags;
245 +
246 +- if (!group || !lcu)
247 ++ if (!lcu)
248 + return NULL;
249 + if (lcu->pav == NO_PAV ||
250 + lcu->flags & (NEED_UAC_UPDATE | UPDATE_PENDING))
251 +@@ -696,6 +696,11 @@ struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
252 + }
253 +
254 + spin_lock_irqsave(&lcu->lock, flags);
255 ++ group = private->pavgroup;
256 ++ if (!group) {
257 ++ spin_unlock_irqrestore(&lcu->lock, flags);
258 ++ return NULL;
259 ++ }
260 + alias_device = group->next;
261 + if (!alias_device) {
262 + if (list_empty(&group->aliaslist)) {
263 +diff --git a/drivers/tty/serial/serial-tegra.c b/drivers/tty/serial/serial-tegra.c
264 +index 731ac35acb312..1896e0d9a64b4 100644
265 +--- a/drivers/tty/serial/serial-tegra.c
266 ++++ b/drivers/tty/serial/serial-tegra.c
267 +@@ -409,7 +409,7 @@ static void tegra_uart_tx_dma_complete(void *args)
268 + count = tup->tx_bytes_requested - state.residue;
269 + async_tx_ack(tup->tx_dma_desc);
270 + spin_lock_irqsave(&tup->uport.lock, flags);
271 +- xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
272 ++ uart_xmit_advance(&tup->uport, count);
273 + tup->tx_in_progress = 0;
274 + if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
275 + uart_write_wakeup(&tup->uport);
276 +@@ -493,7 +493,6 @@ static unsigned int tegra_uart_tx_empty(struct uart_port *u)
277 + static void tegra_uart_stop_tx(struct uart_port *u)
278 + {
279 + struct tegra_uart_port *tup = to_tegra_uport(u);
280 +- struct circ_buf *xmit = &tup->uport.state->xmit;
281 + struct dma_tx_state state;
282 + unsigned int count;
283 +
284 +@@ -504,7 +503,7 @@ static void tegra_uart_stop_tx(struct uart_port *u)
285 + dmaengine_tx_status(tup->tx_dma_chan, tup->tx_cookie, &state);
286 + count = tup->tx_bytes_requested - state.residue;
287 + async_tx_ack(tup->tx_dma_desc);
288 +- xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
289 ++ uart_xmit_advance(&tup->uport, count);
290 + tup->tx_in_progress = 0;
291 + }
292 +
293 +diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
294 +index 611ff2c28f7a4..37867df5e901a 100644
295 +--- a/drivers/usb/core/hub.c
296 ++++ b/drivers/usb/core/hub.c
297 +@@ -5702,7 +5702,7 @@ re_enumerate_no_bos:
298 + *
299 + * Return: The same as for usb_reset_and_verify_device().
300 + * However, if a reset is already in progress (for instance, if a
301 +- * driver doesn't have pre_ or post_reset() callbacks, and while
302 ++ * driver doesn't have pre_reset() or post_reset() callbacks, and while
303 + * being unbound or re-bound during the ongoing reset its disconnect()
304 + * or probe() routine tries to perform a second, nested reset), the
305 + * routine returns -EINPROGRESS.
306 +diff --git a/drivers/video/fbdev/pxa3xx-gcu.c b/drivers/video/fbdev/pxa3xx-gcu.c
307 +index 184773b6b9e4f..2cca4b763d8dc 100644
308 +--- a/drivers/video/fbdev/pxa3xx-gcu.c
309 ++++ b/drivers/video/fbdev/pxa3xx-gcu.c
310 +@@ -391,7 +391,7 @@ pxa3xx_gcu_write(struct file *file, const char *buff,
311 + struct pxa3xx_gcu_batch *buffer;
312 + struct pxa3xx_gcu_priv *priv = to_pxa3xx_gcu_priv(file);
313 +
314 +- int words = count / 4;
315 ++ size_t words = count / 4;
316 +
317 + /* Does not need to be atomic. There's a lock in user space,
318 + * but anyhow, this is just for statistics. */
319 +diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
320 +index de133eeebc8a4..c821d13c6d720 100644
321 +--- a/fs/cifs/transport.c
322 ++++ b/fs/cifs/transport.c
323 +@@ -140,8 +140,8 @@ smb_send_kvec(struct TCP_Server_Info *server, struct msghdr *smb_msg,
324 +
325 + *sent = 0;
326 +
327 +- smb_msg->msg_name = (struct sockaddr *) &server->dstaddr;
328 +- smb_msg->msg_namelen = sizeof(struct sockaddr);
329 ++ smb_msg->msg_name = NULL;
330 ++ smb_msg->msg_namelen = 0;
331 + smb_msg->msg_control = NULL;
332 + smb_msg->msg_controllen = 0;
333 + if (server->noblocksnd)
334 +diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
335 +index 4966c6d24ad2c..17d7b86a6419d 100644
336 +--- a/fs/ext4/ialloc.c
337 ++++ b/fs/ext4/ialloc.c
338 +@@ -511,7 +511,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent,
339 + goto fallback;
340 + }
341 +
342 +- max_dirs = ndirs / ngroups + inodes_per_group / 16;
343 ++ max_dirs = ndirs / ngroups + inodes_per_group*flex_size / 16;
344 + min_inodes = avefreei - inodes_per_group*flex_size / 4;
345 + if (min_inodes < 1)
346 + min_inodes = 1;
347 +diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
348 +index cd95b5e395a30..08399a68566bd 100644
349 +--- a/include/linux/serial_core.h
350 ++++ b/include/linux/serial_core.h
351 +@@ -294,6 +294,23 @@ struct uart_state {
352 + /* number of characters left in xmit buffer before we ask for more */
353 + #define WAKEUP_CHARS 256
354 +
355 ++/**
356 ++ * uart_xmit_advance - Advance xmit buffer and account Tx'ed chars
357 ++ * @up: uart_port structure describing the port
358 ++ * @chars: number of characters sent
359 ++ *
360 ++ * This function advances the tail of circular xmit buffer by the number of
361 ++ * @chars transmitted and handles accounting of transmitted bytes (into
362 ++ * @up's icount.tx).
363 ++ */
364 ++static inline void uart_xmit_advance(struct uart_port *up, unsigned int chars)
365 ++{
366 ++ struct circ_buf *xmit = &up->state->xmit;
367 ++
368 ++ xmit->tail = (xmit->tail + chars) & (UART_XMIT_SIZE - 1);
369 ++ up->icount.tx += chars;
370 ++}
371 ++
372 + struct module;
373 + struct tty_driver;
374 +
375 +diff --git a/mm/slub.c b/mm/slub.c
376 +index c07c5fa6adcd1..3291d3ef86b08 100644
377 +--- a/mm/slub.c
378 ++++ b/mm/slub.c
379 +@@ -5601,7 +5601,8 @@ static char *create_unique_id(struct kmem_cache *s)
380 + char *name = kmalloc(ID_STR_LENGTH, GFP_KERNEL);
381 + char *p = name;
382 +
383 +- BUG_ON(!name);
384 ++ if (!name)
385 ++ return ERR_PTR(-ENOMEM);
386 +
387 + *p++ = ':';
388 + /*
389 +@@ -5649,6 +5650,8 @@ static int sysfs_slab_add(struct kmem_cache *s)
390 + * for the symlinks.
391 + */
392 + name = create_unique_id(s);
393 ++ if (IS_ERR(name))
394 ++ return PTR_ERR(name);
395 + }
396 +
397 + s->kobj.kset = cache_kset(s);
398 +diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
399 +index 701adcb9262eb..a73c362a0182b 100644
400 +--- a/net/mac80211/scan.c
401 ++++ b/net/mac80211/scan.c
402 +@@ -385,10 +385,6 @@ static void __ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
403 + scan_req = rcu_dereference_protected(local->scan_req,
404 + lockdep_is_held(&local->mtx));
405 +
406 +- if (scan_req != local->int_scan_req) {
407 +- local->scan_info.aborted = aborted;
408 +- cfg80211_scan_done(scan_req, &local->scan_info);
409 +- }
410 + RCU_INIT_POINTER(local->scan_req, NULL);
411 +
412 + scan_sdata = rcu_dereference_protected(local->scan_sdata,
413 +@@ -398,6 +394,13 @@ static void __ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
414 + local->scanning = 0;
415 + local->scan_chandef.chan = NULL;
416 +
417 ++ synchronize_rcu();
418 ++
419 ++ if (scan_req != local->int_scan_req) {
420 ++ local->scan_info.aborted = aborted;
421 ++ cfg80211_scan_done(scan_req, &local->scan_info);
422 ++ }
423 ++
424 + /* Set power back to normal operating levels. */
425 + ieee80211_hw_config(local, 0);
426 +
427 +diff --git a/net/netfilter/nf_conntrack_irc.c b/net/netfilter/nf_conntrack_irc.c
428 +index c6a8bdc3a226d..5d630288f86c9 100644
429 +--- a/net/netfilter/nf_conntrack_irc.c
430 ++++ b/net/netfilter/nf_conntrack_irc.c
431 +@@ -150,15 +150,37 @@ static int help(struct sk_buff *skb, unsigned int protoff,
432 + data = ib_ptr;
433 + data_limit = ib_ptr + skb->len - dataoff;
434 +
435 +- /* strlen("\1DCC SENT t AAAAAAAA P\1\n")=24
436 +- * 5+MINMATCHLEN+strlen("t AAAAAAAA P\1\n")=14 */
437 +- while (data < data_limit - (19 + MINMATCHLEN)) {
438 +- if (memcmp(data, "\1DCC ", 5)) {
439 ++ /* Skip any whitespace */
440 ++ while (data < data_limit - 10) {
441 ++ if (*data == ' ' || *data == '\r' || *data == '\n')
442 ++ data++;
443 ++ else
444 ++ break;
445 ++ }
446 ++
447 ++ /* strlen("PRIVMSG x ")=10 */
448 ++ if (data < data_limit - 10) {
449 ++ if (strncasecmp("PRIVMSG ", data, 8))
450 ++ goto out;
451 ++ data += 8;
452 ++ }
453 ++
454 ++ /* strlen(" :\1DCC SENT t AAAAAAAA P\1\n")=26
455 ++ * 7+MINMATCHLEN+strlen("t AAAAAAAA P\1\n")=26
456 ++ */
457 ++ while (data < data_limit - (21 + MINMATCHLEN)) {
458 ++ /* Find first " :", the start of message */
459 ++ if (memcmp(data, " :", 2)) {
460 + data++;
461 + continue;
462 + }
463 ++ data += 2;
464 ++
465 ++ /* then check that place only for the DCC command */
466 ++ if (memcmp(data, "\1DCC ", 5))
467 ++ goto out;
468 + data += 5;
469 +- /* we have at least (19+MINMATCHLEN)-5 bytes valid data left */
470 ++ /* we have at least (21+MINMATCHLEN)-(2+5) bytes valid data left */
471 +
472 + iph = ip_hdr(skb);
473 + pr_debug("DCC found in master %pI4:%u %pI4:%u\n",
474 +@@ -174,7 +196,7 @@ static int help(struct sk_buff *skb, unsigned int protoff,
475 + pr_debug("DCC %s detected\n", dccprotos[i]);
476 +
477 + /* we have at least
478 +- * (19+MINMATCHLEN)-5-dccprotos[i].matchlen bytes valid
479 ++ * (21+MINMATCHLEN)-7-dccprotos[i].matchlen bytes valid
480 + * data left (== 14/13 bytes) */
481 + if (parse_dcc(data, data_limit, &dcc_ip,
482 + &dcc_port, &addr_beg_p, &addr_end_p)) {
483 +diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
484 +index 3a8dc39a9116b..7dc23df7b4e36 100644
485 +--- a/net/netfilter/nf_conntrack_sip.c
486 ++++ b/net/netfilter/nf_conntrack_sip.c
487 +@@ -471,7 +471,7 @@ static int ct_sip_walk_headers(const struct nf_conn *ct, const char *dptr,
488 + return ret;
489 + if (ret == 0)
490 + break;
491 +- dataoff += *matchoff;
492 ++ dataoff = *matchoff;
493 + }
494 + *in_header = 0;
495 + }
496 +@@ -483,7 +483,7 @@ static int ct_sip_walk_headers(const struct nf_conn *ct, const char *dptr,
497 + break;
498 + if (ret == 0)
499 + return ret;
500 +- dataoff += *matchoff;
501 ++ dataoff = *matchoff;
502 + }
503 +
504 + if (in_header)
505 +diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
506 +index 74ce577de7dfe..ac49c9eb16546 100644
507 +--- a/sound/pci/hda/hda_intel.c
508 ++++ b/sound/pci/hda/hda_intel.c
509 +@@ -2316,6 +2316,8 @@ static const struct pci_device_id azx_ids[] = {
510 + /* 5 Series/3400 */
511 + { PCI_DEVICE(0x8086, 0x3b56),
512 + .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_NOPM },
513 ++ { PCI_DEVICE(0x8086, 0x3b57),
514 ++ .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_NOPM },
515 + /* Poulsbo */
516 + { PCI_DEVICE(0x8086, 0x811b),
517 + .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_BASE },
518 +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
519 +index 8b240a55cb89f..d149cb00282cd 100644
520 +--- a/sound/pci/hda/patch_hdmi.c
521 ++++ b/sound/pci/hda/patch_hdmi.c
522 +@@ -3247,6 +3247,7 @@ static int patch_tegra_hdmi(struct hda_codec *codec)
523 + if (err)
524 + return err;
525 +
526 ++ codec->depop_delay = 10;
527 + codec->patch_ops.build_pcms = tegra_hdmi_build_pcms;
528 + spec = codec->spec;
529 + spec->chmap.ops.chmap_cea_alloc_validate_get_type =
530 +diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
531 +index e155783c601ab..0a7e1543ce8fe 100644
532 +--- a/tools/perf/util/symbol-elf.c
533 ++++ b/tools/perf/util/symbol-elf.c
534 +@@ -1694,8 +1694,8 @@ static int kcore_copy__compare_file(const char *from_dir, const char *to_dir,
535 + * unusual. One significant peculiarity is that the mapping (start -> pgoff)
536 + * is not the same for the kernel map and the modules map. That happens because
537 + * the data is copied adjacently whereas the original kcore has gaps. Finally,
538 +- * kallsyms and modules files are compared with their copies to check that
539 +- * modules have not been loaded or unloaded while the copies were taking place.
540 ++ * kallsyms file is compared with its copy to check that modules have not been
541 ++ * loaded or unloaded while the copies were taking place.
542 + *
543 + * Return: %0 on success, %-1 on failure.
544 + */
545 +@@ -1758,9 +1758,6 @@ int kcore_copy(const char *from_dir, const char *to_dir)
546 + kci.modules_map.len))
547 + goto out_extract_close;
548 +
549 +- if (kcore_copy__compare_file(from_dir, to_dir, "modules"))
550 +- goto out_extract_close;
551 +-
552 + if (kcore_copy__compare_file(from_dir, to_dir, "kallsyms"))
553 + goto out_extract_close;
554 +