Magellan Linux

Contents of /trunk/kernel-alx-legacy/patches-4.9/0365-4.9.266-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3667 - (show annotations) (download)
Mon Oct 24 14:07:44 2022 UTC (18 months ago) by niro
File size: 7357 byte(s)
-linux-4.9.266
1 diff --git a/Makefile b/Makefile
2 index f47e685de5f64..9e055c32d77ac 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -1,6 +1,6 @@
6 VERSION = 4
7 PATCHLEVEL = 9
8 -SUBLEVEL = 265
9 +SUBLEVEL = 266
10 EXTRAVERSION =
11 NAME = Roaring Lionus
12
13 diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
14 index 9509cc73b9c64..64ae9cde8bdbd 100644
15 --- a/arch/ia64/kernel/mca.c
16 +++ b/arch/ia64/kernel/mca.c
17 @@ -1858,7 +1858,7 @@ ia64_mca_cpu_init(void *cpu_data)
18 data = mca_bootmem();
19 first_time = 0;
20 } else
21 - data = (void *)__get_free_pages(GFP_KERNEL,
22 + data = (void *)__get_free_pages(GFP_ATOMIC,
23 get_order(sz));
24 if (!data)
25 panic("Could not allocate MCA memory for cpu %d\n",
26 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
27 index 9f0099c46c881..9ebbd4892557e 100644
28 --- a/arch/x86/Makefile
29 +++ b/arch/x86/Makefile
30 @@ -34,7 +34,7 @@ REALMODE_CFLAGS := $(M16_CFLAGS) -g -Os -D__KERNEL__ \
31 -DDISABLE_BRANCH_PROFILING \
32 -Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
33 -fno-strict-aliasing -fomit-frame-pointer -fno-pic \
34 - -mno-mmx -mno-sse
35 + -mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
36
37 REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -ffreestanding)
38 REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -fno-stack-protector)
39 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
40 index eb5734112cb49..1d1434f9c5a60 100644
41 --- a/arch/x86/net/bpf_jit_comp.c
42 +++ b/arch/x86/net/bpf_jit_comp.c
43 @@ -1082,7 +1082,16 @@ common_load:
44 }
45
46 if (image) {
47 - if (unlikely(proglen + ilen > oldproglen)) {
48 + /*
49 + * When populating the image, assert that:
50 + *
51 + * i) We do not write beyond the allocated space, and
52 + * ii) addrs[i] did not change from the prior run, in order
53 + * to validate assumptions made for computing branch
54 + * displacements.
55 + */
56 + if (unlikely(proglen + ilen > oldproglen ||
57 + proglen + ilen != addrs[i])) {
58 pr_err("bpf_jit_compile fatal error\n");
59 return -EFAULT;
60 }
61 diff --git a/drivers/gpu/drm/msm/msm_fence.c b/drivers/gpu/drm/msm/msm_fence.c
62 index a9b9b1c95a2eb..9dbd17be51f7c 100644
63 --- a/drivers/gpu/drm/msm/msm_fence.c
64 +++ b/drivers/gpu/drm/msm/msm_fence.c
65 @@ -56,7 +56,7 @@ int msm_wait_fence(struct msm_fence_context *fctx, uint32_t fence,
66 int ret;
67
68 if (fence > fctx->last_fence) {
69 - DRM_ERROR("%s: waiting on invalid fence: %u (of %u)\n",
70 + DRM_ERROR_RATELIMITED("%s: waiting on invalid fence: %u (of %u)\n",
71 fctx->name, fence, fctx->last_fence);
72 return -EINVAL;
73 }
74 diff --git a/drivers/isdn/hardware/mISDN/mISDNipac.c b/drivers/isdn/hardware/mISDN/mISDNipac.c
75 index 8d338ba366d0a..01a1afde5d3c5 100644
76 --- a/drivers/isdn/hardware/mISDN/mISDNipac.c
77 +++ b/drivers/isdn/hardware/mISDN/mISDNipac.c
78 @@ -711,7 +711,7 @@ isac_release(struct isac_hw *isac)
79 {
80 if (isac->type & IPAC_TYPE_ISACX)
81 WriteISAC(isac, ISACX_MASK, 0xff);
82 - else
83 + else if (isac->type != 0)
84 WriteISAC(isac, ISAC_MASK, 0xff);
85 if (isac->dch.timer.function != NULL) {
86 del_timer(&isac->dch.timer);
87 diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
88 index b18bb0334ded6..dcad5213eb348 100644
89 --- a/drivers/net/can/flexcan.c
90 +++ b/drivers/net/can/flexcan.c
91 @@ -379,9 +379,15 @@ static int flexcan_chip_disable(struct flexcan_priv *priv)
92 static int flexcan_chip_freeze(struct flexcan_priv *priv)
93 {
94 struct flexcan_regs __iomem *regs = priv->regs;
95 - unsigned int timeout = 1000 * 1000 * 10 / priv->can.bittiming.bitrate;
96 + unsigned int timeout;
97 + u32 bitrate = priv->can.bittiming.bitrate;
98 u32 reg;
99
100 + if (bitrate)
101 + timeout = 1000 * 1000 * 10 / bitrate;
102 + else
103 + timeout = FLEXCAN_TIMEOUT_US / 10;
104 +
105 reg = flexcan_read(&regs->mcr);
106 reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT;
107 flexcan_write(reg, &regs->mcr);
108 diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c
109 index 5d5000c8edf1d..09cb0ac701e11 100644
110 --- a/drivers/net/ethernet/marvell/pxa168_eth.c
111 +++ b/drivers/net/ethernet/marvell/pxa168_eth.c
112 @@ -1571,8 +1571,8 @@ static int pxa168_eth_remove(struct platform_device *pdev)
113
114 mdiobus_unregister(pep->smi_bus);
115 mdiobus_free(pep->smi_bus);
116 - unregister_netdev(dev);
117 cancel_work_sync(&pep->tx_timeout_task);
118 + unregister_netdev(dev);
119 free_netdev(dev);
120 return 0;
121 }
122 diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
123 index ef1c8c158f66b..079db0bd39174 100644
124 --- a/drivers/target/target_core_pscsi.c
125 +++ b/drivers/target/target_core_pscsi.c
126 @@ -951,6 +951,14 @@ pscsi_map_sg(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
127
128 return 0;
129 fail:
130 + if (bio)
131 + bio_put(bio);
132 + while (req->bio) {
133 + bio = req->bio;
134 + req->bio = bio->bi_next;
135 + bio_put(bio);
136 + }
137 + req->biotail = NULL;
138 return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
139 }
140
141 diff --git a/fs/cifs/file.c b/fs/cifs/file.c
142 index 24508b69e78b7..e2ce90fc504ec 100644
143 --- a/fs/cifs/file.c
144 +++ b/fs/cifs/file.c
145 @@ -163,6 +163,7 @@ int cifs_posix_open(char *full_path, struct inode **pinode,
146 goto posix_open_ret;
147 }
148 } else {
149 + cifs_revalidate_mapping(*pinode);
150 cifs_fattr_to_inode(*pinode, &fattr);
151 }
152
153 diff --git a/fs/cifs/smb2misc.c b/fs/cifs/smb2misc.c
154 index bddb2d7b39824..075b285bbd3ea 100644
155 --- a/fs/cifs/smb2misc.c
156 +++ b/fs/cifs/smb2misc.c
157 @@ -651,8 +651,8 @@ smb2_is_valid_oplock_break(char *buffer, struct TCP_Server_Info *server)
158 }
159 }
160 spin_unlock(&cifs_tcp_ses_lock);
161 - cifs_dbg(FYI, "Can not process oplock break for non-existent connection\n");
162 - return false;
163 + cifs_dbg(FYI, "No file id matched, oplock break ignored\n");
164 + return true;
165 }
166
167 void
168 diff --git a/init/Kconfig b/init/Kconfig
169 index 0a615bdc203a4..07570008e2fd9 100644
170 --- a/init/Kconfig
171 +++ b/init/Kconfig
172 @@ -65,8 +65,7 @@ config CROSS_COMPILE
173
174 config COMPILE_TEST
175 bool "Compile also drivers which will not load"
176 - depends on !UML
177 - default n
178 + depends on HAS_IOMEM
179 help
180 Some drivers can be compiled on a different platform than they are
181 intended to be run on. Despite they cannot be loaded there (or even
182 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
183 index e3bbfb20ae829..f31fd21d59ba9 100644
184 --- a/net/mac80211/main.c
185 +++ b/net/mac80211/main.c
186 @@ -906,8 +906,19 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
187 continue;
188
189 if (!dflt_chandef.chan) {
190 + /*
191 + * Assign the first enabled channel to dflt_chandef
192 + * from the list of channels
193 + */
194 + for (i = 0; i < sband->n_channels; i++)
195 + if (!(sband->channels[i].flags &
196 + IEEE80211_CHAN_DISABLED))
197 + break;
198 + /* if none found then use the first anyway */
199 + if (i == sband->n_channels)
200 + i = 0;
201 cfg80211_chandef_create(&dflt_chandef,
202 - &sband->channels[0],
203 + &sband->channels[i],
204 NL80211_CHAN_NO_HT);
205 /* init channel we're on */
206 if (!local->use_chanctx && !local->_oper_chandef.chan) {
207 diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
208 index 79c45046edc61..7b94170aa5ecb 100644
209 --- a/sound/pci/hda/patch_realtek.c
210 +++ b/sound/pci/hda/patch_realtek.c
211 @@ -6285,7 +6285,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
212 SND_HDA_PIN_QUIRK(0x10ec0299, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
213 ALC225_STANDARD_PINS,
214 {0x12, 0xb7a60130},
215 - {0x13, 0xb8a61140},
216 {0x17, 0x90170110}),
217 {}
218 };