Skip to content

Commit 54c9d74

Browse files
committed
Merge branch 'stable/linux-4.19.y' into linux-4.19-at91
Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
2 parents 4fc42da + aec3002 commit 54c9d74

1,048 files changed

Lines changed: 8987 additions & 4088 deletions

File tree

Some content is hidden

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

Documentation/arm64/silicon-errata.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ stable kernels.
5858
| ARM | Cortex-A72 | #853709 | N/A |
5959
| ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
6060
| ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
61+
| ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 |
6162
| ARM | MMU-500 | #841119,#826419 | N/A |
6263
| | | | |
6364
| Cavium | ThunderX ITS | #22375, #24313 | CAVIUM_ERRATUM_22375 |

Documentation/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', 'cdomain', 'kfigure', 'sphinx.ext.ifconfig']
3838

3939
# The name of the math extension changed on Sphinx 1.4
40-
if major == 1 and minor > 3:
40+
if (major == 1 and minor > 3) or (major > 1):
4141
extensions.append("sphinx.ext.imgmath")
4242
else:
4343
extensions.append("sphinx.ext.pngmath")

Documentation/filesystems/porting

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,3 +622,8 @@ in your dentry operations instead.
622622
alloc_file_clone(file, flags, ops) does not affect any caller's references.
623623
On success you get a new struct file sharing the mount/dentry with the
624624
original, on failure - ERR_PTR().
625+
--
626+
[mandatory]
627+
DCACHE_RCUACCESS is gone; having an RCU delay on dentry freeing is the
628+
default. DCACHE_NORCU opts out, and only d_alloc_pseudo() has any
629+
business doing so.

Documentation/networking/ip-sysctl.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,14 @@ tcp_base_mss - INTEGER
250250
Path MTU discovery (MTU probing). If MTU probing is enabled,
251251
this is the initial MSS used by the connection.
252252

253+
tcp_min_snd_mss - INTEGER
254+
TCP SYN and SYNACK messages usually advertise an ADVMSS option,
255+
as described in RFC 1122 and RFC 6691.
256+
If this ADVMSS option is smaller than tcp_min_snd_mss,
257+
it is silently capped to tcp_min_snd_mss.
258+
259+
Default : 48 (at least 8 bytes of payload per segment)
260+
253261
tcp_congestion_control - STRING
254262
Set the congestion control algorithm to be used for new
255263
connections. The algorithm "reno" is always available, but

Documentation/sphinx/kerneldoc.py

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,19 @@
3737
from docutils import nodes, statemachine
3838
from docutils.statemachine import ViewList
3939
from docutils.parsers.rst import directives, Directive
40-
from sphinx.ext.autodoc import AutodocReporter
40+
41+
#
42+
# AutodocReporter is only good up to Sphinx 1.7
43+
#
44+
import sphinx
45+
46+
Use_SSI = sphinx.__version__[:3] >= '1.7'
47+
if Use_SSI:
48+
from sphinx.util.docutils import switch_source_input
49+
else:
50+
from sphinx.ext.autodoc import AutodocReporter
51+
52+
import kernellog
4153

4254
__version__ = '1.0'
4355

@@ -90,7 +102,8 @@ def run(self):
90102
cmd += [filename]
91103

92104
try:
93-
env.app.verbose('calling kernel-doc \'%s\'' % (" ".join(cmd)))
105+
kernellog.verbose(env.app,
106+
'calling kernel-doc \'%s\'' % (" ".join(cmd)))
94107

95108
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
96109
out, err = p.communicate()
@@ -100,7 +113,8 @@ def run(self):
100113
if p.returncode != 0:
101114
sys.stderr.write(err)
102115

103-
env.app.warn('kernel-doc \'%s\' failed with return code %d' % (" ".join(cmd), p.returncode))
116+
kernellog.warn(env.app,
117+
'kernel-doc \'%s\' failed with return code %d' % (" ".join(cmd), p.returncode))
104118
return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
105119
elif env.config.kerneldoc_verbosity > 0:
106120
sys.stderr.write(err)
@@ -121,20 +135,28 @@ def run(self):
121135
lineoffset += 1
122136

123137
node = nodes.section()
124-
buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter
138+
self.do_parse(result, node)
139+
140+
return node.children
141+
142+
except Exception as e: # pylint: disable=W0703
143+
kernellog.warn(env.app, 'kernel-doc \'%s\' processing failed with: %s' %
144+
(" ".join(cmd), str(e)))
145+
return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
146+
147+
def do_parse(self, result, node):
148+
if Use_SSI:
149+
with switch_source_input(self.state, result):
150+
self.state.nested_parse(result, 0, node, match_titles=1)
151+
else:
152+
save = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter
125153
self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter)
126154
self.state.memo.title_styles, self.state.memo.section_level = [], 0
127155
try:
128156
self.state.nested_parse(result, 0, node, match_titles=1)
129157
finally:
130-
self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf
158+
self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = save
131159

132-
return node.children
133-
134-
except Exception as e: # pylint: disable=W0703
135-
env.app.warn('kernel-doc \'%s\' processing failed with: %s' %
136-
(" ".join(cmd), str(e)))
137-
return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
138160

139161
def setup(app):
140162
app.add_config_value('kerneldoc_bin', None, 'env')

Documentation/sphinx/kernellog.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
#
3+
# Sphinx has deprecated its older logging interface, but the replacement
4+
# only goes back to 1.6. So here's a wrapper layer to keep around for
5+
# as long as we support 1.4.
6+
#
7+
import sphinx
8+
9+
if sphinx.__version__[:3] >= '1.6':
10+
UseLogging = True
11+
from sphinx.util import logging
12+
logger = logging.getLogger('kerneldoc')
13+
else:
14+
UseLogging = False
15+
16+
def warn(app, message):
17+
if UseLogging:
18+
logger.warning(message)
19+
else:
20+
app.warn(message)
21+
22+
def verbose(app, message):
23+
if UseLogging:
24+
logger.verbose(message)
25+
else:
26+
app.verbose(message)
27+
28+

Documentation/sphinx/kfigure.py

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@
6060
from sphinx.util.nodes import clean_astext
6161
from six import iteritems
6262

63+
import kernellog
64+
6365
PY3 = sys.version_info[0] == 3
6466

6567
if PY3:
@@ -171,20 +173,20 @@ def setupTools(app):
171173
This function is called once, when the builder is initiated.
172174
"""
173175
global dot_cmd, convert_cmd # pylint: disable=W0603
174-
app.verbose("kfigure: check installed tools ...")
176+
kernellog.verbose(app, "kfigure: check installed tools ...")
175177

176178
dot_cmd = which('dot')
177179
convert_cmd = which('convert')
178180

179181
if dot_cmd:
180-
app.verbose("use dot(1) from: " + dot_cmd)
182+
kernellog.verbose(app, "use dot(1) from: " + dot_cmd)
181183
else:
182-
app.warn("dot(1) not found, for better output quality install "
183-
"graphviz from http://www.graphviz.org")
184+
kernellog.warn(app, "dot(1) not found, for better output quality install "
185+
"graphviz from http://www.graphviz.org")
184186
if convert_cmd:
185-
app.verbose("use convert(1) from: " + convert_cmd)
187+
kernellog.verbose(app, "use convert(1) from: " + convert_cmd)
186188
else:
187-
app.warn(
189+
kernellog.warn(app,
188190
"convert(1) not found, for SVG to PDF conversion install "
189191
"ImageMagick (https://www.imagemagick.org)")
190192

@@ -220,12 +222,13 @@ def convert_image(img_node, translator, src_fname=None):
220222

221223
# in kernel builds, use 'make SPHINXOPTS=-v' to see verbose messages
222224

223-
app.verbose('assert best format for: ' + img_node['uri'])
225+
kernellog.verbose(app, 'assert best format for: ' + img_node['uri'])
224226

225227
if in_ext == '.dot':
226228

227229
if not dot_cmd:
228-
app.verbose("dot from graphviz not available / include DOT raw.")
230+
kernellog.verbose(app,
231+
"dot from graphviz not available / include DOT raw.")
229232
img_node.replace_self(file2literal(src_fname))
230233

231234
elif translator.builder.format == 'latex':
@@ -252,7 +255,8 @@ def convert_image(img_node, translator, src_fname=None):
252255

253256
if translator.builder.format == 'latex':
254257
if convert_cmd is None:
255-
app.verbose("no SVG to PDF conversion available / include SVG raw.")
258+
kernellog.verbose(app,
259+
"no SVG to PDF conversion available / include SVG raw.")
256260
img_node.replace_self(file2literal(src_fname))
257261
else:
258262
dst_fname = path.join(translator.builder.outdir, fname + '.pdf')
@@ -265,18 +269,19 @@ def convert_image(img_node, translator, src_fname=None):
265269
_name = dst_fname[len(translator.builder.outdir) + 1:]
266270

267271
if isNewer(dst_fname, src_fname):
268-
app.verbose("convert: {out}/%s already exists and is newer" % _name)
272+
kernellog.verbose(app,
273+
"convert: {out}/%s already exists and is newer" % _name)
269274

270275
else:
271276
ok = False
272277
mkdir(path.dirname(dst_fname))
273278

274279
if in_ext == '.dot':
275-
app.verbose('convert DOT to: {out}/' + _name)
280+
kernellog.verbose(app, 'convert DOT to: {out}/' + _name)
276281
ok = dot2format(app, src_fname, dst_fname)
277282

278283
elif in_ext == '.svg':
279-
app.verbose('convert SVG to: {out}/' + _name)
284+
kernellog.verbose(app, 'convert SVG to: {out}/' + _name)
280285
ok = svg2pdf(app, src_fname, dst_fname)
281286

282287
if not ok:
@@ -305,7 +310,8 @@ def dot2format(app, dot_fname, out_fname):
305310
with open(out_fname, "w") as out:
306311
exit_code = subprocess.call(cmd, stdout = out)
307312
if exit_code != 0:
308-
app.warn("Error #%d when calling: %s" % (exit_code, " ".join(cmd)))
313+
kernellog.warn(app,
314+
"Error #%d when calling: %s" % (exit_code, " ".join(cmd)))
309315
return bool(exit_code == 0)
310316

311317
def svg2pdf(app, svg_fname, pdf_fname):
@@ -322,7 +328,7 @@ def svg2pdf(app, svg_fname, pdf_fname):
322328
# use stdout and stderr from parent
323329
exit_code = subprocess.call(cmd)
324330
if exit_code != 0:
325-
app.warn("Error #%d when calling: %s" % (exit_code, " ".join(cmd)))
331+
kernellog.warn(app, "Error #%d when calling: %s" % (exit_code, " ".join(cmd)))
326332
return bool(exit_code == 0)
327333

328334

@@ -415,15 +421,15 @@ def visit_kernel_render(self, node):
415421
app = self.builder.app
416422
srclang = node.get('srclang')
417423

418-
app.verbose('visit kernel-render node lang: "%s"' % (srclang))
424+
kernellog.verbose(app, 'visit kernel-render node lang: "%s"' % (srclang))
419425

420426
tmp_ext = RENDER_MARKUP_EXT.get(srclang, None)
421427
if tmp_ext is None:
422-
app.warn('kernel-render: "%s" unknown / include raw.' % (srclang))
428+
kernellog.warn(app, 'kernel-render: "%s" unknown / include raw.' % (srclang))
423429
return
424430

425431
if not dot_cmd and tmp_ext == '.dot':
426-
app.verbose("dot from graphviz not available / include raw.")
432+
kernellog.verbose(app, "dot from graphviz not available / include raw.")
427433
return
428434

429435
literal_block = node[0]

Documentation/sysctl/net.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ Values :
9292
0 - disable JIT kallsyms export (default value)
9393
1 - enable JIT kallsyms export for privileged users only
9494

95+
bpf_jit_limit
96+
-------------
97+
98+
This enforces a global limit for memory allocations to the BPF JIT
99+
compiler in order to reject unprivileged JIT requests once it has
100+
been surpassed. bpf_jit_limit contains the value of the global limit
101+
in bytes.
102+
95103
dev_weight
96104
--------------
97105

Documentation/x86/mds.rst

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -142,45 +142,13 @@ Mitigation points
142142
mds_user_clear.
143143

144144
The mitigation is invoked in prepare_exit_to_usermode() which covers
145-
most of the kernel to user space transitions. There are a few exceptions
146-
which are not invoking prepare_exit_to_usermode() on return to user
147-
space. These exceptions use the paranoid exit code.
145+
all but one of the kernel to user space transitions. The exception
146+
is when we return from a Non Maskable Interrupt (NMI), which is
147+
handled directly in do_nmi().
148148

149-
- Non Maskable Interrupt (NMI):
150-
151-
Access to sensible data like keys, credentials in the NMI context is
152-
mostly theoretical: The CPU can do prefetching or execute a
153-
misspeculated code path and thereby fetching data which might end up
154-
leaking through a buffer.
155-
156-
But for mounting other attacks the kernel stack address of the task is
157-
already valuable information. So in full mitigation mode, the NMI is
158-
mitigated on the return from do_nmi() to provide almost complete
159-
coverage.
160-
161-
- Double fault (#DF):
162-
163-
A double fault is usually fatal, but the ESPFIX workaround, which can
164-
be triggered from user space through modify_ldt(2) is a recoverable
165-
double fault. #DF uses the paranoid exit path, so explicit mitigation
166-
in the double fault handler is required.
167-
168-
- Machine Check Exception (#MC):
169-
170-
Another corner case is a #MC which hits between the CPU buffer clear
171-
invocation and the actual return to user. As this still is in kernel
172-
space it takes the paranoid exit path which does not clear the CPU
173-
buffers. So the #MC handler repopulates the buffers to some
174-
extent. Machine checks are not reliably controllable and the window is
175-
extremly small so mitigation would just tick a checkbox that this
176-
theoretical corner case is covered. To keep the amount of special
177-
cases small, ignore #MC.
178-
179-
- Debug Exception (#DB):
180-
181-
This takes the paranoid exit path only when the INT1 breakpoint is in
182-
kernel space. #DB on a user space address takes the regular exit path,
183-
so no extra mitigation required.
149+
(The reason that NMI is special is that prepare_exit_to_usermode() can
150+
enable IRQs. In NMI context, NMIs are blocked, and we don't want to
151+
enable IRQs with NMIs blocked.)
184152

185153

186154
2. C-State transition

Makefile

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 4
33
PATCHLEVEL = 19
4-
SUBLEVEL = 44
5-
EXTRAVERSION = -linux4sam-6.1-rc2
4+
SUBLEVEL = 56
5+
EXTRAVERSION =
66
NAME = "People's Front"
77

88
# *DOCUMENTATION*
@@ -508,13 +508,6 @@ export RETPOLINE_VDSO_CFLAGS
508508
KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
509509
KBUILD_AFLAGS += $(call cc-option,-fno-PIE)
510510

511-
# check for 'asm goto'
512-
ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
513-
CC_HAVE_ASM_GOTO := 1
514-
KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
515-
KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
516-
endif
517-
518511
# The expansion should be delayed until arch/$(SRCARCH)/Makefile is included.
519512
# Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile.
520513
# CC_VERSION_TEXT is referenced from Kconfig (so it needs export),
@@ -623,7 +616,7 @@ ifeq ($(may-sync-config),1)
623616
# Read in dependencies to all Kconfig* files, make sure to run syncconfig if
624617
# changes are detected. This should be included after arch/$(SRCARCH)/Makefile
625618
# because some architectures define CROSS_COMPILE there.
626-
-include include/config/auto.conf.cmd
619+
include include/config/auto.conf.cmd
627620

628621
# To avoid any implicit rule to kick in, define an empty command
629622
$(KCONFIG_CONFIG): ;
@@ -659,6 +652,7 @@ KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
659652
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
660653
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
661654
KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context)
655+
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
662656

663657
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
664658
KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
@@ -703,7 +697,6 @@ ifeq ($(cc-name),clang)
703697
KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
704698
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
705699
KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
706-
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
707700
# Quiet clang warning: comparison of unsigned expression < 0 is always false
708701
KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
709702
# CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the

0 commit comments

Comments
 (0)