Skip to content

Commit ed3b2c5

Browse files
authored
Bump to ACK 4.19.253
ACK 4.19.253
2 parents d1fbbc0 + da7768d commit ed3b2c5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+234
-89
lines changed

Diff for: Documentation/networking/ip-sysctl.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,7 @@ cipso_cache_enable - BOOLEAN
820820
cipso_cache_bucket_size - INTEGER
821821
The CIPSO label cache consists of a fixed size hash table with each
822822
hash bucket containing a number of cache entries. This variable limits
823-
the number of entries in each hash bucket; the larger the value the
823+
the number of entries in each hash bucket; the larger the value is, the
824824
more CIPSO label mappings that can be cached. When the number of
825825
entries in a given hash bucket reaches this limit adding new entries
826826
causes the oldest entry in the bucket to be removed to make room.
@@ -902,7 +902,7 @@ ip_nonlocal_bind - BOOLEAN
902902
which can be quite useful - but may break some applications.
903903
Default: 0
904904

905-
ip_dynaddr - BOOLEAN
905+
ip_dynaddr - INTEGER
906906
If set non-zero, enables support for dynamic addresses.
907907
If set to a non-zero value larger than 1, a kernel log
908908
message will be printed when dynamic address rewriting

Diff for: Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 4
33
PATCHLEVEL = 19
4-
SUBLEVEL = 252
4+
SUBLEVEL = 253
55
EXTRAVERSION =
66
NAME = "People's Front"
77

Diff for: arch/arm/boot/dts/imx6qdl-ts7970.dtsi

+1-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@
226226
reg = <0x28>;
227227
#gpio-cells = <2>;
228228
gpio-controller;
229-
ngpio = <32>;
229+
ngpios = <62>;
230230
};
231231

232232
sgtl5000: codec@a {

Diff for: arch/arm/boot/dts/stm32mp157c.dtsi

+1-1
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@
413413
compatible = "st,stm32-cec";
414414
reg = <0x40016000 0x400>;
415415
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
416-
clocks = <&rcc CEC_K>, <&clk_lse>;
416+
clocks = <&rcc CEC_K>, <&rcc CEC>;
417417
clock-names = "cec", "hdmi-cec";
418418
status = "disabled";
419419
};

Diff for: arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@
170170
flash@0 {
171171
#address-cells = <1>;
172172
#size-cells = <1>;
173-
compatible = "mxicy,mx25l1606e", "winbond,w25q128";
173+
compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
174174
reg = <0>;
175175
spi-max-frequency = <40000000>;
176176
};

Diff for: arch/arm/include/asm/ptrace.h

+26
Original file line numberDiff line numberDiff line change
@@ -167,5 +167,31 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs)
167167
((current_stack_pointer | (THREAD_SIZE - 1)) - 7) - 1; \
168168
})
169169

170+
171+
/*
172+
* Update ITSTATE after normal execution of an IT block instruction.
173+
*
174+
* The 8 IT state bits are split into two parts in CPSR:
175+
* ITSTATE<1:0> are in CPSR<26:25>
176+
* ITSTATE<7:2> are in CPSR<15:10>
177+
*/
178+
static inline unsigned long it_advance(unsigned long cpsr)
179+
{
180+
if ((cpsr & 0x06000400) == 0) {
181+
/* ITSTATE<2:0> == 0 means end of IT block, so clear IT state */
182+
cpsr &= ~PSR_IT_MASK;
183+
} else {
184+
/* We need to shift left ITSTATE<4:0> */
185+
const unsigned long mask = 0x06001c00; /* Mask ITSTATE<4:0> */
186+
unsigned long it = cpsr & mask;
187+
it <<= 1;
188+
it |= it >> (27 - 10); /* Carry ITSTATE<2> to correct place */
189+
it &= mask;
190+
cpsr &= ~mask;
191+
cpsr |= it;
192+
}
193+
return cpsr;
194+
}
195+
170196
#endif /* __ASSEMBLY__ */
171197
#endif

Diff for: arch/arm/mm/alignment.c

+3
Original file line numberDiff line numberDiff line change
@@ -936,6 +936,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
936936
if (type == TYPE_LDST)
937937
do_alignment_finish_ldst(addr, instr, regs, offset);
938938

939+
if (thumb_mode(regs))
940+
regs->ARM_cpsr = it_advance(regs->ARM_cpsr);
941+
939942
return 0;
940943

941944
bad_or_fault:

Diff for: arch/arm/mm/proc-v7-bugs.c

+4-5
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,7 @@ static unsigned int spectre_v2_install_workaround(unsigned int method)
110110
#else
111111
static unsigned int spectre_v2_install_workaround(unsigned int method)
112112
{
113-
pr_info("CPU%u: Spectre V2: workarounds disabled by configuration\n",
114-
smp_processor_id());
113+
pr_info_once("Spectre V2: workarounds disabled by configuration\n");
115114

116115
return SPECTRE_VULNERABLE;
117116
}
@@ -223,10 +222,10 @@ static int spectre_bhb_install_workaround(int method)
223222
return SPECTRE_VULNERABLE;
224223

225224
spectre_bhb_method = method;
226-
}
227225

228-
pr_info("CPU%u: Spectre BHB: using %s workaround\n",
229-
smp_processor_id(), spectre_bhb_method_name(method));
226+
pr_info("CPU%u: Spectre BHB: enabling %s workaround for all CPUs\n",
227+
smp_processor_id(), spectre_bhb_method_name(method));
228+
}
230229

231230
return SPECTRE_MITIGATED;
232231
}

Diff for: arch/arm/probes/decode.h

+1-25
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <linux/types.h>
2323
#include <linux/stddef.h>
2424
#include <asm/probes.h>
25+
#include <asm/ptrace.h>
2526
#include <asm/kprobes.h>
2627

2728
void __init arm_probes_decode_init(void);
@@ -43,31 +44,6 @@ void __init find_str_pc_offset(void);
4344
#endif
4445

4546

46-
/*
47-
* Update ITSTATE after normal execution of an IT block instruction.
48-
*
49-
* The 8 IT state bits are split into two parts in CPSR:
50-
* ITSTATE<1:0> are in CPSR<26:25>
51-
* ITSTATE<7:2> are in CPSR<15:10>
52-
*/
53-
static inline unsigned long it_advance(unsigned long cpsr)
54-
{
55-
if ((cpsr & 0x06000400) == 0) {
56-
/* ITSTATE<2:0> == 0 means end of IT block, so clear IT state */
57-
cpsr &= ~PSR_IT_MASK;
58-
} else {
59-
/* We need to shift left ITSTATE<4:0> */
60-
const unsigned long mask = 0x06001c00; /* Mask ITSTATE<4:0> */
61-
unsigned long it = cpsr & mask;
62-
it <<= 1;
63-
it |= it >> (27 - 10); /* Carry ITSTATE<2> to correct place */
64-
it &= mask;
65-
cpsr &= ~mask;
66-
cpsr |= it;
67-
}
68-
return cpsr;
69-
}
70-
7147
static inline void __kprobes bx_write_pc(long pcv, struct pt_regs *regs)
7248
{
7349
long cpsr = regs->ARM_cpsr;

Diff for: arch/arm64/configs/gauguin_defconfig

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
#
55

66
#
7-
# Compiler: Nexus clang version 15.0.0 (https://github.com/llvm/llvm-project 83fdf0c34e60e61849574d30c39cf7f7324c5271)
7+
# Compiler: Proton clang version 13.0.0 (https://github.com/llvm/llvm-project b4fd512c36ca344a3ff69350219e8b0a67e9472a)
88
#
99
CONFIG_GCC_VERSION=0
1010
CONFIG_CC_IS_CLANG=y
1111
CONFIG_LD_IS_LLD=y
12-
CONFIG_CLANG_VERSION=150000
13-
CONFIG_LLD_VERSION=150000
12+
CONFIG_CLANG_VERSION=130000
13+
CONFIG_LLD_VERSION=130000
1414
CONFIG_CC_HAS_ASM_GOTO=y
1515
CONFIG_TOOLS_SUPPORT_RELR=y
1616
CONFIG_IRQ_WORK=y

Diff for: arch/x86/kernel/head64.c

+2
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,8 @@ static void __init clear_bss(void)
383383
{
384384
memset(__bss_start, 0,
385385
(unsigned long) __bss_stop - (unsigned long) __bss_start);
386+
memset(__brk_base, 0,
387+
(unsigned long) __brk_limit - (unsigned long) __brk_base);
386388
}
387389

388390
static unsigned long get_cmd_line_ptr(void)

Diff for: build.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ build_kernel(){
5555
echo "------------------------------";
5656
echo " Building Kernel ...........";
5757
echo "------------------------------";
58-
58+
59+
rm -rf $OUT/AnyKernel3-main;
5960
make CC=$CC ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE CROSS_COMPILE_COMPAT=$CROSS_COMPILE_COMPAT CLANG_TRIPLE=$CLANG_TRIPLE $CC_ADDITION_FLAGS O=$OUT -j$THREAD;
6061
END_SEC=$(date +%s);
6162
COST_SEC=$[ $END_SEC-$START_SEC ];

Diff for: drivers/cpufreq/pmac32-cpufreq.c

+4
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,10 @@ static int pmac_cpufreq_init_MacRISC3(struct device_node *cpunode)
474474
if (slew_done_gpio_np)
475475
slew_done_gpio = read_gpio(slew_done_gpio_np);
476476

477+
of_node_put(volt_gpio_np);
478+
of_node_put(freq_gpio_np);
479+
of_node_put(slew_done_gpio_np);
480+
477481
/* If we use the frequency GPIOs, calculate the min/max speeds based
478482
* on the bus frequencies
479483
*/

Diff for: drivers/irqchip/irq-or1k-pic.c

-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ static struct or1k_pic_dev or1k_pic_level = {
7070
.name = "or1k-PIC-level",
7171
.irq_unmask = or1k_pic_unmask,
7272
.irq_mask = or1k_pic_mask,
73-
.irq_mask_ack = or1k_pic_mask_ack,
7473
},
7574
.handle = handle_level_irq,
7675
.flags = IRQ_LEVEL | IRQ_NOPROBE,

Diff for: drivers/net/can/m_can/m_can.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -1438,8 +1438,6 @@ static netdev_tx_t m_can_start_xmit(struct sk_buff *skb,
14381438
M_CAN_FIFO_DATA(i / 4),
14391439
*(u32 *)(cf->data + i));
14401440

1441-
can_put_echo_skb(skb, dev, 0);
1442-
14431441
if (priv->can.ctrlmode & CAN_CTRLMODE_FD) {
14441442
cccr = m_can_read(priv, M_CAN_CCCR);
14451443
cccr &= ~(CCCR_CMR_MASK << CCCR_CMR_SHIFT);
@@ -1456,6 +1454,9 @@ static netdev_tx_t m_can_start_xmit(struct sk_buff *skb,
14561454
m_can_write(priv, M_CAN_CCCR, cccr);
14571455
}
14581456
m_can_write(priv, M_CAN_TXBTIE, 0x1);
1457+
1458+
can_put_echo_skb(skb, dev, 0);
1459+
14591460
m_can_write(priv, M_CAN_TXBAR, 0x1);
14601461
/* End of xmit function for version 3.0.x */
14611462
} else {

Diff for: drivers/net/ethernet/sfc/ef10.c

+3
Original file line numberDiff line numberDiff line change
@@ -2059,7 +2059,10 @@ static int efx_ef10_try_update_nic_stats_vf(struct efx_nic *efx)
20592059

20602060
efx_update_sw_stats(efx, stats);
20612061
out:
2062+
/* releasing a DMA coherent buffer with BH disabled can panic */
2063+
spin_unlock_bh(&efx->stats_lock);
20622064
efx_nic_free_buffer(efx, &stats_buf);
2065+
spin_lock_bh(&efx->stats_lock);
20632066
return rc;
20642067
}
20652068

Diff for: drivers/net/ethernet/sfc/ef10_sriov.c

+7-3
Original file line numberDiff line numberDiff line change
@@ -415,19 +415,23 @@ static int efx_ef10_pci_sriov_enable(struct efx_nic *efx, int num_vfs)
415415
static int efx_ef10_pci_sriov_disable(struct efx_nic *efx, bool force)
416416
{
417417
struct pci_dev *dev = efx->pci_dev;
418+
struct efx_ef10_nic_data *nic_data = efx->nic_data;
418419
unsigned int vfs_assigned = pci_vfs_assigned(dev);
419-
int rc = 0;
420+
int i, rc = 0;
420421

421422
if (vfs_assigned && !force) {
422423
netif_info(efx, drv, efx->net_dev, "VFs are assigned to guests; "
423424
"please detach them before disabling SR-IOV\n");
424425
return -EBUSY;
425426
}
426427

427-
if (!vfs_assigned)
428+
if (!vfs_assigned) {
429+
for (i = 0; i < efx->vf_count; i++)
430+
nic_data->vf[i].pci_dev = NULL;
428431
pci_disable_sriov(dev);
429-
else
432+
} else {
430433
rc = -EBUSY;
434+
}
431435

432436
efx_ef10_sriov_free_vf_vswitching(efx);
433437
efx->vf_count = 0;

Diff for: drivers/net/phy/sfp.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1811,7 +1811,7 @@ static int sfp_probe(struct platform_device *pdev)
18111811

18121812
platform_set_drvdata(pdev, sfp);
18131813

1814-
err = devm_add_action(sfp->dev, sfp_cleanup, sfp);
1814+
err = devm_add_action_or_reset(sfp->dev, sfp_cleanup, sfp);
18151815
if (err < 0)
18161816
return err;
18171817

Diff for: drivers/net/xen-netback/rx.c

+1
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,7 @@ void xenvif_rx_action(struct xenvif_queue *queue)
482482
queue->rx_copy.completed = &completed_skbs;
483483

484484
while (xenvif_rx_ring_slots_available(queue) &&
485+
!skb_queue_empty(&queue->rx_queue) &&
485486
work_done < RX_BATCH_SIZE) {
486487
xenvif_rx_skb(queue);
487488
work_done++;

Diff for: drivers/nfc/nxp-nci/i2c.c

+6-2
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy,
138138
skb_put_data(*skb, &header, NXP_NCI_FW_HDR_LEN);
139139

140140
r = i2c_master_recv(client, skb_put(*skb, frame_len), frame_len);
141-
if (r != frame_len) {
141+
if (r < 0) {
142+
goto fw_read_exit_free_skb;
143+
} else if (r != frame_len) {
142144
nfc_err(&client->dev,
143145
"Invalid frame length: %u (expected %zu)\n",
144146
r, frame_len);
@@ -182,7 +184,9 @@ static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy,
182184
return 0;
183185

184186
r = i2c_master_recv(client, skb_put(*skb, header.plen), header.plen);
185-
if (r != header.plen) {
187+
if (r < 0) {
188+
goto nci_read_exit_free_skb;
189+
} else if (r != header.plen) {
186190
nfc_err(&client->dev,
187191
"Invalid frame payload length: %u (expected %u)\n",
188192
r, header.plen);

Diff for: drivers/platform/x86/hp-wmi.c

+3
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ enum hp_wmi_event_ids {
7575
HPWMI_BACKLIT_KB_BRIGHTNESS = 0x0D,
7676
HPWMI_PEAKSHIFT_PERIOD = 0x0F,
7777
HPWMI_BATTERY_CHARGE_PERIOD = 0x10,
78+
HPWMI_SANITIZATION_MODE = 0x17,
7879
};
7980

8081
struct bios_args {
@@ -631,6 +632,8 @@ static void hp_wmi_notify(u32 value, void *context)
631632
break;
632633
case HPWMI_BATTERY_CHARGE_PERIOD:
633634
break;
635+
case HPWMI_SANITIZATION_MODE:
636+
break;
634637
default:
635638
pr_info("Unknown event_id - %d - 0x%x\n", event_id, event_data);
636639
break;

Diff for: drivers/tty/serial/8250/8250_port.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -2917,8 +2917,10 @@ static int serial8250_request_std_resource(struct uart_8250_port *up)
29172917
case UPIO_MEM32BE:
29182918
case UPIO_MEM16:
29192919
case UPIO_MEM:
2920-
if (!port->mapbase)
2920+
if (!port->mapbase) {
2921+
ret = -EINVAL;
29212922
break;
2923+
}
29222924

29232925
if (!request_mem_region(port->mapbase, size, "serial")) {
29242926
ret = -EBUSY;

Diff for: drivers/tty/serial/amba-pl011.c

+21-2
Original file line numberDiff line numberDiff line change
@@ -1335,6 +1335,15 @@ static void pl011_stop_rx(struct uart_port *port)
13351335
pl011_dma_rx_stop(uap);
13361336
}
13371337

1338+
static void pl011_throttle_rx(struct uart_port *port)
1339+
{
1340+
unsigned long flags;
1341+
1342+
spin_lock_irqsave(&port->lock, flags);
1343+
pl011_stop_rx(port);
1344+
spin_unlock_irqrestore(&port->lock, flags);
1345+
}
1346+
13381347
static void pl011_enable_ms(struct uart_port *port)
13391348
{
13401349
struct uart_amba_port *uap =
@@ -1728,9 +1737,10 @@ static int pl011_allocate_irq(struct uart_amba_port *uap)
17281737
*/
17291738
static void pl011_enable_interrupts(struct uart_amba_port *uap)
17301739
{
1740+
unsigned long flags;
17311741
unsigned int i;
17321742

1733-
spin_lock_irq(&uap->port.lock);
1743+
spin_lock_irqsave(&uap->port.lock, flags);
17341744

17351745
/* Clear out any spuriously appearing RX interrupts */
17361746
pl011_write(UART011_RTIS | UART011_RXIS, uap, REG_ICR);
@@ -1752,7 +1762,14 @@ static void pl011_enable_interrupts(struct uart_amba_port *uap)
17521762
if (!pl011_dma_rx_running(uap))
17531763
uap->im |= UART011_RXIM;
17541764
pl011_write(uap->im, uap, REG_IMSC);
1755-
spin_unlock_irq(&uap->port.lock);
1765+
spin_unlock_irqrestore(&uap->port.lock, flags);
1766+
}
1767+
1768+
static void pl011_unthrottle_rx(struct uart_port *port)
1769+
{
1770+
struct uart_amba_port *uap = container_of(port, struct uart_amba_port, port);
1771+
1772+
pl011_enable_interrupts(uap);
17561773
}
17571774

17581775
static int pl011_startup(struct uart_port *port)
@@ -2127,6 +2144,8 @@ static const struct uart_ops amba_pl011_pops = {
21272144
.stop_tx = pl011_stop_tx,
21282145
.start_tx = pl011_start_tx,
21292146
.stop_rx = pl011_stop_rx,
2147+
.throttle = pl011_throttle_rx,
2148+
.unthrottle = pl011_unthrottle_rx,
21302149
.enable_ms = pl011_enable_ms,
21312150
.break_ctl = pl011_break_ctl,
21322151
.startup = pl011_startup,

0 commit comments

Comments
 (0)