Commit graph

1075150 commits

Author SHA1 Message Date
Yang Li
3d4a39404b NFS: Fix nfs4_proc_get_locations() kernel-doc comment
Add the description of @server and @fhandle, and remove the excess
@inode in nfs4_proc_get_locations() kernel-doc comment to remove
warnings found by running scripts/kernel-doc, which is caused by
using 'make W=1'.

fs/nfs/nfs4proc.c:8219: warning: Function parameter or member 'server'
not described in 'nfs4_proc_get_locations'
fs/nfs/nfs4proc.c:8219: warning: Function parameter or member 'fhandle'
not described in 'nfs4_proc_get_locations'
fs/nfs/nfs4proc.c:8219: warning: Excess function parameter 'inode'
description in 'nfs4_proc_get_locations'

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2022-02-08 09:14:26 -05:00
Dan Aloni
a9c10b5b3b xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
If there are failures then we must not leave the non-NULL pointers with
the error value, otherwise `rpcrdma_ep_destroy` gets confused and tries
free them, resulting in an Oops.

Signed-off-by: Dan Aloni <dan.aloni@vastdata.com>
Acked-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2022-02-08 09:14:26 -05:00
Trond Myklebust
468d126dab NFS: Fix initialisation of nfs_client cl_flags field
For some long forgotten reason, the nfs_client cl_flags field is
initialised in nfs_get_client() instead of being initialised at
allocation time. This quirk was harmless until we moved the call to
nfs_create_rpc_client().

Fixes: dd99e9f98f ("NFSv4: Initialise connection to the server in nfs4_alloc_client()")
Cc: stable@vger.kernel.org # 4.8.x
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2022-02-08 09:13:49 -05:00
Daniel Vetter
db405774f6 MAINTAINERS: Add entry for fbdev core
Ever since Tomi extracted the core code in 2014 it's been defacto me
maintaining this, with help from others from dri-devel and sometimes
Linus (but those are mostly merge conflicts):

$ git shortlog -ns  drivers/video/fbdev/core/ | head -n5
    35  Daniel Vetter
    23  Linus Torvalds
    10  Hans de Goede
     9  Dave Airlie
     6  Peter Rosin

I think ideally we'd also record that the various firmware fb drivers
(efifb, vesafb, ...) are also maintained in drm-misc because for the
past few years the patches have either been to fix handover issues
with drm drivers, or caused handover issues with drm drivers. So any
other tree just doesn't make sense. But also, there's plenty of
outdated MAINTAINER entries for these with people and git trees that
haven't been active in years, so maybe let's just leave them alone.
And furthermore distros are now adopting simpledrm as the firmware fb
driver, so hopefully the need to care about the fbdev firmware drivers
will go down going forward.

Note that drm-misc is group maintained, I expect that to continue like
we've done before, so no new expectations that patches all go through
my hands. That would be silly. This also means I'm happy to put any
other volunteer's name in the M: line, but otherwise git log says I'm
the one who's stuck with this.

Acked-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>Cc: Dave Airlie <airlied@gmail.com>
Acked-by: Helge Deller <deller@gmx.de>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Maxime Ripard <maxime@cerno.tech>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Fbdev development list <linux-fbdev@vger.kernel.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Javier Martinez Canillas <javierm@redhat.com>
Cc: DRI Development <dri-devel@lists.freedesktop.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Claudio Suarez <cssk@net-c.es>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Sven Schnelle <svens@stackframe.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220131210552.482606-2-daniel.vetter@ffwll.ch
2022-02-08 15:10:04 +01:00
Helge Deller
50b10528aa fbcon: Avoid 'cap' set but not used warning
Fix this kernel test robot warning:

  drivers/video/fbdev/core/fbcon.c: In function 'fbcon_init':
  drivers/video/fbdev/core/fbcon.c:1028:6: warning: variable 'cap' set but not used [-Wunused-but-set-variable]

The cap variable is only used when CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION
is enabled. Drop the temporary variable and use info->flags instead.

Fixes: 87ab9f6b74 ("Revert "fbcon: Disable accelerated scrolling")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/YgFB4xqI+As196FR@p100
2022-02-08 14:44:15 +01:00
Oliver Barta
4e2a354e37
regulator: core: fix false positive in regulator_late_cleanup()
The check done by regulator_late_cleanup() to detect whether a regulator
is on was inconsistent with the check done by _regulator_is_enabled().
While _regulator_is_enabled() takes the enable GPIO into account,
regulator_late_cleanup() was not doing that.

This resulted in a false positive, e.g. when a GPIO-controlled fixed
regulator was used, which was not enabled at boot time, e.g.

reg_disp_1v2: reg_disp_1v2 {
	compatible = "regulator-fixed";
	regulator-name = "display_1v2";
	regulator-min-microvolt = <1200000>;
	regulator-max-microvolt = <1200000>;
	gpio = <&tlmm 148 0>;
	enable-active-high;
};

Such regulator doesn't have an is_enabled() operation. Nevertheless
it's state can be determined based on the enable GPIO. The check in
regulator_late_cleanup() wrongly assumed that the regulator is on and
tried to disable it.

Signed-off-by: Oliver Barta <oliver.barta@aptiv.com>
Link: https://lore.kernel.org/r/20220208084645.8686-1-oliver.barta@aptiv.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-02-08 13:37:48 +00:00
Kai Vehmanen
4c33de0673
ASoC: rt5682: do not block workqueue if card is unbound
The current rt5682_jack_detect_handler() assumes the component
and card will always show up and implements an infinite usleep
loop waiting for them to show up.

This does not hold true if a codec interrupt (or other
event) occurs when the card is unbound. The codec driver's
remove  or shutdown functions cannot cancel the workqueue due
to the wait loop. As a result, code can either end up blocking
the workqueue, or hit a kernel oops when the card is freed.

Fix the issue by rescheduling the jack detect handler in
case the card is not ready. In case card never shows up,
the shutdown/remove/suspend calls can now cancel the detect
task.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Shuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20220207153000.3452802-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-02-08 13:37:46 +00:00
Kai Vehmanen
a6d78661dc
ASoC: rt5668: do not block workqueue if card is unbound
The current rt5668_jack_detect_handler() assumes the component
and card will always show up and implements an infinite usleep
loop waiting for them to show up.

This does not hold true if a codec interrupt (or other
event) occurs when the card is unbound. The codec driver's
remove  or shutdown functions cannot cancel the workqueue due
to the wait loop. As a result, code can either end up blocking
the workqueue, or hit a kernel oops when the card is freed.

Fix the issue by rescheduling the jack detect handler in
case the card is not ready. In case card never shows up,
the shutdown/remove/suspend calls can now cancel the detect
task.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Shuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20220207153000.3452802-2-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-02-08 13:37:44 +00:00
Kai Vehmanen
d7b530fdc4
ASoC: rt5682s: do not block workqueue if card is unbound
The current rt5682s_jack_detect_handler() assumes the component
and card will always show up and implements an infinite usleep
loop waiting for them to show up.

This does not hold true if a codec interrupt (or other
event) occurs when the card is unbound. The codec driver's
remove  or shutdown functions cannot cancel the workqueue due
to the wait loop. As a result, code can either end up blocking
the workqueue, or hit a kernel oops when the card is freed.

Fix the issue by rescheduling the jack detect handler in
case the card is not ready. In case card never shows up,
the shutdown/remove/suspend calls can now cancel the detect
task.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Shuming Fan <shumingf@realtek.com>
Link: https://lore.kernel.org/r/20220207153000.3452802-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-02-08 13:37:43 +00:00
Martin Povišer
307f314520
ASoC: tas2770: Insert post reset delay
Per TAS2770 datasheet there must be a 1 ms delay from reset to first
command. So insert delays into the driver where appropriate.

Fixes: 1a476abc72 ("tas2770: add tas2770 smart PA kernel driver")
Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Link: https://lore.kernel.org/r/20220204095301.5554-1-povik+lin@cutebit.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-02-08 13:37:40 +00:00
Guenter Roeck
946eb87114
ASoC: Revert "ASoC: mediatek: Check for error clk pointer"
This reverts commit 9de2b9286a ("ASoC: mediatek: Check for error clk
pointer").

With this patch in the tree, Chromebooks running the affected hardware
no longer boot. Bisect points to this patch, and reverting it fixes
the problem.

An analysis of the code with this patch applied shows:

        ret = init_clks(pdev, clk);
        if (ret)
                return ERR_PTR(ret);
...
                for (j = 0; j < MAX_CLKS && data->clk_id[j]; j++) {
                        struct clk *c = clk[data->clk_id[j]];

                        if (IS_ERR(c)) {
                                dev_err(&pdev->dev, "%s: clk unavailable\n",
                                        data->name);
                                return ERR_CAST(c);
                        }

                        scpd->clk[j] = c;
                }

Not all clocks in the clk_names array have to be present. Only the clocks
in the data->clk_id array are actually needed. The code already checks if
the required clocks are available and bails out if not. The assumption that
all clocks have to be present is wrong, and commit 9de2b9286a ("ASoC:
mediatek: Check for error clk pointer") needs to be reverted.

Cc: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Cc: Mark Brown <broonie@kernel.org>
Cc: James Liao <jamesjj.liao@mediatek.com>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Reported-by: Frank Wunderlich <frank-w@public-files.de>
Reported-by: Daniel Golle <daniel@makrotopia.org>
Fixes: 9de2b9286a ("ASoC: mediatek: Check for error clk pointer")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20220207160923.3911501-1-linux@roeck-us.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-02-08 13:37:39 +00:00
Udipto Goswami
117b4e96c7 usb: dwc3: gadget: Prevent core from processing stale TRBs
With CPU re-ordering on write instructions, there might
be a chance that the HWO is set before the TRB is updated
with the new mapped buffer address.
And in the case where core is processing a list of TRBs
it is possible that it fetched the TRBs when the HWO is set
but before the buffer address is updated.
Prevent this by adding a memory barrier before the HWO
is updated to ensure that the core always process the
updated TRBs.

Fixes: f6bafc6a1c ("usb: dwc3: convert TRBs into bitshifts")
Cc: stable <stable@vger.kernel.org>
Reviewed-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
Link: https://lore.kernel.org/r/1644207958-18287-1-git-send-email-quic_ugoswami@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-02-08 12:33:59 +01:00
Samuel Thibault
bca828ccdd speakup-dectlk: Restore pitch setting
d97a9d7aea ("staging/speakup: Add inflection synth parameter")
introduced the inflection parameter, but happened to drop the pitch
parameter from the dectlk driver. This restores it.

Cc: stable@vger.kernel.org
Fixes: d97a9d7aea ("staging/speakup: Add inflection synth parameter")
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Link: https://lore.kernel.org/r/20220206015626.aesbhvvdkmqsrbaw@begin
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-02-08 12:15:04 +01:00
Arnd Bergmann
7896020612 Amlogic fixes for v5.17-rc
- meson6/meson8/meson8b UART compatible fixup to notably fix earlycon
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmHb/ZwACgkQd9zb2sjI
 SdFqgg/+IYDjXrHANH0j6q0wjHCOXbmErqsNimVM9HPjBzYd71dNy+VO0kn6Cobv
 HcxnMWjgvEY3AYRBWbSH4Hqq+rse6VJHQqoxzivyQRJhzlDZQVAjBPIzcX6GPQpD
 VCAGR2B3/xVZFmDHuQUPgVPr2yJXFksWJAi5VfPWLj/moQW0EH9VEu8B1+iDrTkN
 DxTYhjGVM0eM54Ms3RbaRAv5zOXCC2rZmFvtN8LXhItneuovzG/kKAP3htFVEG1g
 s8ASmikXbPD5rw8uiorJAyQXAM1pNJgVE/34TVc1ge8fuNiV1pxIpKxfKDdiPj6J
 iDW5jz8ygCpXnn9Nc3qCnb14/+d/MV0SBOqjZg7eFRFpFtXAEudii7dSkCQYzOS5
 qdaw5xIRYomxNQ6I+52BYB2Ma34IVduuRBcti4AxHJhlo3hQRHHDvI5oQvnWcP9b
 duQeCXDWE0W77Hm4yvIVL+gLNEOgLv6imNJqOHYvs8e+lqhFUc1qT+ZOFBGXUnwN
 nQ4l4nmtHTnt2m2A6z2fFbQ4KrMmVrw3I7AT2fZHIvSxR7O5XMvyHz6Uc+AzU5sX
 NumcZsqjqGHhctmbn5hW8gsSse6pcHuRRrJ2k24OTmNJDfFeJSc2FCXvJ+c87Ahp
 XtuTbas/3IENHfn0VAzCFMOFiMzMOX/4Zj22/un4XOuLrTI6sc4=
 =E9tl
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmICPQkACgkQmmx57+YA
 GNmVbQ//cnDurfbE7PijtfiWb5n81bX0q+h5FBXrbLLxK2B13leq44JxoJ4WLg5w
 q4okOn8ni0aKT8y64GV2LD3+m7HYMGyAGhyOp3hoXKNCQcx+Yfm8Tsku0tEQqKTu
 EOzhO03fba9exJMt3LKRgcwTYmsxF+EP0DbyGnEkKV2ly66aB4X7ocVYvCBh1VZL
 SspWWUtem0PJkPsr+2X62poyhzCE0rRorzIw7n3Szo9T4WDTrRyB4L09SVs57h40
 yAPVV7kUz+NjHeCJpAnSLozIGjJyudeBtBtTD0/ezP4yY1Spmlo4n0Q1Enh29dZN
 /XWDYrkJQqamAyRRrkSmWm1wDluqNBckvZ9mwhZ9BAVam/WQnn2Y7Rh5jg5mQbcj
 fIGHXFKXq4cIprLW/1LpLwcZbYXac3oShGbsIMKsI0igClPqoOdSjrn5MZ8ekksQ
 lnJlbnZkietqL4gYT9sHb1/Y/sqjX5Eq1neYZsWCOl6mJJEntOQu0rVFZf0eNkOe
 IdJvQi44uoKnGSOomzbQWIFjbCLulqYxyrSPhrBva+Z6Q0M+T6NdFqG1rhPp7Ieq
 U9apzuxbGVsa7SHDdidVrV6eM4PHWZK71Ctfc064xvkSvGGogvYju/RztAT7/7ls
 VF/9wq7Xdc9H3ER2xzISGqYQYLNFJbn/DflZceyC8J0R3RK6/cc=
 =31SM
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-fixes-v5.17-rc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into arm/fixes

Amlogic fixes for v5.17-rc
- meson6/meson8/meson8b UART compatible fixup to notably fix earlycon

* tag 'amlogic-fixes-v5.17-rc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  ARM: dts: meson8b: Fix the UART device-tree schema validation
  ARM: dts: meson8: Fix the UART device-tree schema validation
  ARM: dts: meson: Fix the UART compatible strings

Link: https://lore.kernel.org/r/746a7f25-1c96-9d27-3a08-e86b2af608ef@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 10:51:05 +01:00
Niklas Cassel
cc38ef9368 gpio: sifive: use the correct register to read output values
Setting the output of a GPIO to 1 using gpiod_set_value(), followed by
reading the same GPIO using gpiod_get_value(), will currently yield an
incorrect result.

This is because the SiFive GPIO device stores the output values in reg_set,
not reg_dat.

Supply the flag BGPIOF_READ_OUTPUT_REG_SET to bgpio_init() so that the
generic driver reads the correct register.

Fixes: 96868dce64 ("gpio/sifive: Add GPIO driver for SiFive SoCs")
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
[Bartosz: added the Fixes tag]
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2022-02-08 10:43:15 +01:00
Andy Shevchenko
95a4eed7dd gpiolib: Never return internal error codes to user space
Currently it's possible that character device interface may return
the error codes which are not supposed to be seen by user space.
In this case it's EPROBE_DEFER.

Wrap it to return -ENODEV instead as sysfs does.

Fixes: d7c51b47ac ("gpio: userspace ABI for reading/writing GPIO lines")
Fixes: 61f922db72 ("gpio: userspace ABI for reading GPIO line events")
Fixes: 3c0d9c635a ("gpiolib: cdev: support GPIO_V2_GET_LINE_IOCTL and GPIO_V2_LINE_GET_VALUES_IOCTL")
Reported-by: Suresh Balakrishnan <suresh.balakrishnan@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2022-02-08 10:34:15 +01:00
Michael Walle
4a64f2d352
MAINTAINERS: add myself as a maintainer for the sl28cpld
The sl28cpld is a management controller found on the Kontron SMARC-sAL28
board for now. Support for it was added by me quite a while ago, but I
didn't add a MAINTAINERS entry. Add it now.

Signed-off-by: Michael Walle <michael@walle.cc>
Link: https://lore.kernel.org/r/20220207184652.1218447-1-michael@walle.cc'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:59:05 +01:00
Krzysztof Kozlowski
5b52ada714 MAINTAINERS: add IRC to ARM sub-architectures and Devicetree
Mention the IRC channels used for discussions about ARM/ARM64
sub-architectures and Devicetree.  This documents purely existing state.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Link: https://lore.kernel.org/r/20220207175503.425200-2-krzysztof.kozlowski@canonical.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:58:35 +01:00
Krzysztof Kozlowski
d9bc0de02a MAINTAINERS: arm: samsung: add Git tree and IRC
Add already used Krzysztof Kozlowski's Git tree for Samsung
S3C/S5P/Exynos ARM sub-architecture and IRC channel (#linux-exynos at
Libera).  This documents purely existing state.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Link: https://lore.kernel.org/r/20220207175503.425200-1-krzysztof.kozlowski@canonical.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:58:34 +01:00
Arnd Bergmann
6efb9f739d SoCFPGA fix for v5.17, part 1
- Fix a build error for socfpga_defconfig
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAmIA7rwUHGRpbmd1eWVu
 QGtlcm5lbC5vcmcACgkQGZQEC4GjKPSeUhAAnRpzOonqCbMXbj9JZz1zD0Hk39lW
 fmpafw6SA42/pd0jo4zzK2Z3lMkfvalY9qi2K4QUzp8n/CFW3f8PbW0jbWzCzC+m
 J7tJbtcyH0m/GS5pfPCvM8jBW3hEBPTlKfkY+FBJxWxvLBNJnQKMVg4tpeVtjYNH
 AieHJ4fllK4qocJF4l3pXl+mthY5ols9i+MtF1cUfeAnch7PwdqVrL1aEFr0lryW
 7geZuHfQZuPLTVf5q4G1Ot1mR2rF1EX9jLOFZV7YfX637YdwkO7KxpagXYacxbZG
 5Uhi8nNI/AZURHz1YSZSmCe6VzAhydQQFU8s/YY502NinXouzSgvs1/Sz5BBYmWd
 8q4y2kPuctUwqRYJP+aXjNlUhWnVMciSCK4E918746vas5jD/sPepHfGzwESQJT+
 HOpg2w6NLm+Ufx6fr6n45moM41qHjF71lKWjsD2M0+XcJ6vpBE+npwb7aGYyR6Se
 sz2MLDDp4On3hOHC/FR2Dwoen2zJuxQiNoeAEdrEFRjUbo9GaXMXASfDK3opMCJw
 FrhRj7WaxzFD6Twf9JdVPMVvVS1Vmfh8a+Lof+mJRs6FfBINNznBopVKPGCo0xDd
 DX28K6mhvUAcY/ag3ADccek6aeXfurLR/3QAAZbQ+LSxqWxnHCNoVrHmFDeT3h8p
 uiS6DR1uj1cncl4=
 =o/0j
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmICMGMACgkQmmx57+YA
 GNltPBAAlddVxWn5xIByFIz2bCNHiEiIimmA5v0fYTE1qM1zAaR8ynXUVfaajKfz
 a50jkQp8cObI/Yi3heJCNi8k8TjvjH6WVUArZqp7N0nSP2UElWpnDv+6T6xN35v9
 bi0UfFQ16irgkyFEn/aCIocvrn/6fNME37lAtrd95Su09L+ip992niHcYCndSJBB
 Sxe8kxUtJQsN2HN6hkPHdzi+fpFhIKI5isCZBiCaCTNorbNFOZfe5YCdwnmKHvYC
 Pa5EdbK30Fl34KGNpzCUTlnUpTVhr3zlM7nf8eclfNRABpjESMcLwGu+Rsi/jfnY
 lz2i+m57vx8dQAGUu8Z9eg9ozOtfrqECllmWeMJmHMiDJ8CLHApJ9VLAnSlWahlc
 BnGuhPsnYURIeRCo6YjVTqKBMK8rh6m0xL1HJsTd/iL3OXnZ2R62fhTnwS55fl1Q
 O5w2bZgr6zJv7zWXB9IgM09z5jvt6toEH7k7GUMtqe8eo/zAd+WJIdZkp/zWhkq+
 mKAw6tJSr3TCWouzkf9wWChVvGScdz7yQm6kreIdHBhx+zeb6j5y4VfOkcNRp6CZ
 z3ggc3dWSQCKA0x46voqWkcl6bbu7R09ZmZ2FvGuPcOm0OAgHEoy7sSZ1nN9kXUg
 CANebWTIHR2Vpwdg/lRzgzhFk40Hjo1ts6Y3MwUZN8/6Nw1Fq+8=
 =bJ/L
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_fix_for_v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/fixes

SoCFPGA fix for v5.17, part 1
- Fix a build error for socfpga_defconfig

* tag 'socfpga_fix_for_v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  ARM: socfpga: fix missing RESET_CONTROLLER

Link: https://lore.kernel.org/r/20220207101002.7566-1-dinguyen@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:57:07 +01:00
Linus Walleij
d9058d6a0e
ARM: dts: Fix boot regression on Skomer
The signal routing on the Skomer board was incorrect making
it impossible to mount root from the SD card. Fix this up.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Cc: stable@vger.kernel.org
Cc: Stefan Hansson <newbyte@disroot.org>
Link: https://lore.kernel.org/r/20220205235312.446730-1-linus.walleij@linaro.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:56:36 +01:00
Arnd Bergmann
99c410e89e Device Tree fixes for TI K3 platform for v5.17 merge window
* Update J721S2 platform to switch serial aliases to ttyS2.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmH9I2EACgkQ3bWEnRc2
 JJ2/bQ//V5hmXYedSYjX2LWg8xBnUu/3lYK7QGtU+uA21Btg9XipJg6xvBUfRYd8
 Oop5qnMM+wU/isqxyYGYspGuSGUAaVvzDh6t7RNVY5sKgP8trLXBIFGrqYdC9vFJ
 DHs9MKdjNjz3NsCOqS7lMMS2Gb6o3WnFkLtLuW5HN3Yrss8YT+RabwzKY6eUdUCD
 QyZxh+agVjPzV6IVACiOt/ebklrC9AUGwOKyNlWS65NATRFativNiX9xFgshqTMM
 7lscweZWLXaw9n4NmniZYOzzL9nY9OZ1E9+MmvLAh8r4sjnvn1Dip6c7iDSGsT75
 BLmeMde+5DFCoJDLgxurjQYVGbF9CfBxzKHa3xRGavir7fVJdEz6s8hd7hiNaOTn
 ZlvloivSFS3LdI5wV+/bXNEZcuH2dqbgnIgx0bmz7CEQuzGdgg3tVEomFUH/vBDb
 hJLbWJ3DV1D3GfCdH78SAwgRSVtWGCVmiQXuMVNznb7qOAttqj/WqHL0mNB+qdnV
 GtofhSxeyEn+KNAeFh+Q4J4pWdSae3b+KK+EHfJn4d4UxJjl2MsXZW01n/V56FDS
 B0ElyA4Gift01oBkBECv5sXBzSo1bFkXsPtriL6NCmxnSUXK3+XSgiD7Xz4Yyb33
 K3qWyK1ljpNOdW8QKf2fu52bcEW7y6elu4DAgotE465bD8B9Htk=
 =Vjuy
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmICMBkACgkQmmx57+YA
 GNmKIA/+JDAzUO3pracr4ODTt0T9Mqf/95i3D95azRP8d44WRs5NkGnCLm/jXde1
 xGuhH9AdHJ6umZPMo6qW60gI+f3DKUn+w5aDe7xfn2gFTkNbNdKpyoPHCc+Rz7+F
 iv8s3ydXtZoX0tvQMewAbpAYp8lsmHnB8r9QvQlhtLe7KQJGq0g2nW04q8fPFfk2
 iEajdphmRbLwrm/8YqAMpZs3IqbsvmQibXr0Woiv52gfaOH6DhxgplgGQQ7HbDld
 9kzMU6k8gaNkd8Exrz5qFokZ8H9HCyjdp6AjgmiTsT9bkwErXDbyWayAglm0+/1T
 IjJS/G1R1O3la5+O6Eq4hkgICn9Udr/XLtXiE8jlu97LxzL/AfN2LLU+fxTEGKyL
 NTEXHbGQ20CrDQHetyaduE0dI+b96U42AjgyM4drh9ygi2ehMHpg6S8HJe0pL0PQ
 lhXT19VLm60IVoUPrXaYmzMiCtr9rplmkvpYaPjjnhUZK9p4mPDAPeSZORO95p5D
 gJRWM/JBMsSNTp47tV93Bed6aqW4WcexyzdsZz5xjTv5q9PDRfxZPTshB3dCVl0t
 tmho2orFqm3KXtwoeigzTXhTCDv7OfjXCtVo9rZY6zITEUwVP65eVNBcBSaizp0m
 Xdkusm6fNsohuTLF9WLF5wnd4nOGO7irr84KLC6SXuuS+AIwjKk=
 =N2Mp
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-dt-fixes-for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into arm/fixes

Device Tree fixes for TI K3 platform for v5.17 merge window

* Update J721S2 platform to switch serial aliases to ttyS2.

* tag 'ti-k3-dt-fixes-for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  arm64: dts: ti: k3-j721s2-common-proc-board: Alias console uart to serial2
  arm64: dts: ti: k3-j721s2: Move aliases to board dts

Link: https://lore.kernel.org/r/20220204130716.fjlm4vvcbtzcwlwx@chalice
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:55:53 +01:00
Rob Herring
724004a11a
ARM: dts: spear320: Drop unused and undocumented 'irq-over-gpio' property
The property 'irq-over-gpio' is both unused and undocumented. It also
happens to collide with standard *-gpio properties. As it is not needed,
drop it.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220204004117.1232902-1-robh@kernel.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:55:02 +01:00
Jae Hyun Yoo
301a5d3ad2
soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
Add a checking code when it gets -EPROBE_DEFER while getting a clock
resource. In this case, it doesn't need to print out an error message
because the probing will be re-visited.

Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com>
Link: https://lore.kernel.org/r/20211104173709.222912-1-jae.hyun.yoo@intel.com
Link: https://lore.kernel.org/r/20220201070118.196372-1-joel@jms.id.au'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:52:59 +01:00
Chia-Wei Wang
088400521e
docs/ABI: testing: aspeed-uart-routing: Escape asterisk
Escape asterisk symbols to fix the following warning:

"WARNING: Inline emphasis start-string without end-string"

Fixes: c6807970c3 ("soc: aspeed: Add UART routing support")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20220124014351.9121-1-chiawei_wang@aspeedtech.com
Link: https://lore.kernel.org/r/20220201070027.196314-1-joel@jms.id.au'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:52:41 +01:00
Arnd Bergmann
ebdd054ffa Samsung fixes for v5.17
1. Typo in CONFIG_EXYNOS_USI description.
 2. Add Alim Akhtar as a reviewer for Samsung Exynos platform.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmH1JZgQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD18UhD/oDd4CthlPz8UPFJkGh1rrsfCgq66dGUosq
 1Xgc2t/yQC2OBpQY/wM4WGrhhzQdSkgTnhQLyXQxOsoGtIWpeajr/3HbVL3zIapz
 Zajo52iRv9wfU1t0GhMokC5qGmBKH+JU4o0qKHhN3q4OqMdW+/OdWHIQCdXCtGaT
 qxuAZ6NMAT7fZIFZgzVK6yDqus2ZKu12CHTM+tL8If4nx9m2zerwydVcQBpcHnqB
 swfil28OacAiL1zzSpU8yOaev9SY4QydikClvV3Byb9nSj852ALlXaDE7mHR4qZ0
 74DmfJcHIBVjDHc0sT+6yytvmNapaalvoTsvA1hEgsDDSUEJ9pWg672pT8Dc+Ltu
 WCbR3/gZI1o9wW8yMWIBHU/h0jfRZoM+icJyeufPP253eLuhHgsPQMcw+3VDmh85
 7KzgcXQ/MNjV+dzMi8KF0NpMkfoCrJZ0r4zZYzKT7w3pPhgheTbMec3WGkyGjI5U
 RG7Xjjq8na6IbelwHMqhm/yzMJ4jhLDUpWneea2SPrEw2UgbrZEKdwesBbNM/HPM
 QRyCdozBcr4i5y05VZ0iWOJUXkK+Qp/LH7WJOo2DDeo+a3/JM2l3vK36cj5GI1ZL
 3q82MT1GVdevKMAxZGxM0sGUIE2wbIS0i3sfbNK+hthaIpSdqxjnaTNPBZGAu+4E
 K7hcmQdMnQ==
 =sp9g
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmICLzUACgkQmmx57+YA
 GNmLvRAAnOMotJRoWWt6/lq96NPO+TpXk0k3tQkcsHxKXPSautplK9/angdKZY80
 bu+WFdxUGRLtH8CfSIdNjiwVX2UKYvqmq7d4nxPuVt1tlnBG+rhO4sHrarcAVbMa
 KlljYgs7M1XZkZl/OeaGwthRlfiRGUnqa2T6ny6rYL54i0xnUd70/enQ25OKCKgW
 JnrtSGfCwxJPU+5kXPVw0GZa6L5FW5UMY1W6ceiPTNOJG6/fTDLFz3NWmlpLk3PY
 jgmBhPxS/Qg44N9o6DuL/A8fIEtHN3QKxh6wUcJKVDX4Lwol85qeVMdQBxQLGKNK
 lyVZKYHDSCqt+ytkoLvj5V+LqFMse2DntGGbtoakKwVmMjZQrqA/I1JW5AXnH1Wl
 1uWPVGEuaMYmsMpxCu1JF5w6TBE6hSicXW5+EwQOrW4XfX5QQ2Uj21ryBx821ZnN
 DXvq8GSH+HTOdSnebItk+HTIN/PvlqBwJjfhkCX+2lIfI9XOTrnEy5nVJpRD0QYo
 beJShSrJq55JWwmfIDp49HC1/0TxoX0HS94sKU4SzZuIIi4qECwFUg4ley2Ibpwv
 qnJ6sYonTlSN+97jm24e3GozmDBfZTrgWvvIHb2M5mVckMD0UdFVWFaeRJbLrOOy
 Rk3QGJu87JEikoUHnNlJH944QLxLJFd7LvjTTMR6974RSf8QteA=
 =Oyrs
 -----END PGP SIGNATURE-----

Merge tag 'samsung-fixes-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/fixes

Samsung fixes for v5.17

1. Typo in CONFIG_EXYNOS_USI description.
2. Add Alim Akhtar as a reviewer for Samsung Exynos platform.

* tag 'samsung-fixes-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  soc: samsung: Fix typo in CONFIG_EXYNOS_USI description
  MAINTAINERS: add reviewer entry for Samsung/Exynos platform

Link: https://lore.kernel.org/r/20220129115442.13474-1-krzysztof.kozlowski@canonical.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:52:05 +01:00
Arnd Bergmann
f8d1fc05e2 i.MX fixes for 5.17:
- Fix sound card model for MBa8Mx board.
 - Drop i.MX8MQ LCDIF port node unit-address to fix DTC warning.
 - Add missing SD card detect line for imx6qdl-udoo board.
 - Remove MX23_PAD_SSP1_DETECT from imx23-evk hog group. It fixes the
   broken SD ard support on the board.
 - A couple of fixes from Martin Kepplinger to fix the MIPI_CSI port
   number on i.MX8MQ.
 - Re-enable ftm_alarm0 device on ls1028a-kontron-sl28 board which was
   disabled accidentally.
 - Fix 'assigned-clocks-parents' typo in i.MX7ULP watchdog device node.
 - Disable GPU device on imx8mn-venice-gw7902 board, as it uses
   MIMX8MN5CVTI SoC which does not integrate a GPU.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmH07LcUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM4SXggAtL8LooZ32Ycf4E5j12hFXfrOxuoz
 oTboUDcw+Udyz56szmeIoADs2rGU5xW/AvuMK+RvfDlv3RvoB4S28FMWtSFs6lLH
 SBRzSuYotGKTyrJGFaJZxZSjztYaRQok6xBPDdlOF6JRzIPpifr7Lkv/ZZZcS9pA
 gijNDj+y61mylzE/XIXqgpbeKP42R2CZHMQZQNCZ1Is3mGaKgkpJ35OSMFI4ti7D
 xJTFJP3TmSldRZf3C0DFC7ZiAdFm3fm6XwqOyCOgPm9wzapwbs3H1bZ/Sb1njScp
 8wNRAPhEXHmRF6J5YT2dRIsC/TG5zbSf/Qald2haCn4YtwtL+QaJ3CqMHw==
 =1xnU
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmICLxIACgkQmmx57+YA
 GNmrJA/9FGk5xWf0jqM98yBatBMG4xBctq/J17lnSK28rdiqkg4z0IPMR9UmyWVm
 fQNDbDhnJZFH+3JISVDigOks6jMaZVkxN5V9RkGLO9kQub1SGL049dOF/jP0SXm3
 Df5DdfIBkz+dVlpW9F5QktX4QWrdZoUnM170uE1Apeywgfa1aeYMM+qEfjThPA5q
 B2NldNb80r50GZo1rn0StZ3SjZLS/ReUefdsyAMcDci3UYamThdyMF/dms97Hr+s
 x0E52WAf/H88UQPv6Q1YSY3bvGrOXvJ864TSgivPJtgdzydR86y6TnG+SEI9Divi
 Xk8UsH3AfV+Q9kICYnGaWFClWeS1626eKwB1vZd0ZvnhC8X0xPQk3+vGN9GzmkC3
 5j3IhCI1d3IvhXC2Q01PmIJflDpXA3b7OF5FFyYaZaeKn67OW0p7hEr1bczdF/x9
 PcEusErWiK4EjPA9USP7cBttkYSrlrepcSWLFYadU8ALXgRn86jE7PvqBNG+Ewld
 BEH+ZEEPe4mzjXE7TZnF6IhuJcFmGqYXxsJa4LobKZeMFqotolw15QyH6HEZUCzz
 GkRiH5rQWZQrdM0IiGktk7YVb6Kv8oeOY/6w8GPer4gxF9S3MGpd35wZIC1Fpc2e
 m0mnJABUOHCXjy2hxx6XhetqkxJBCxntyqTn3d+2KYxPDl9WvbU=
 =FTS/
 -----END PGP SIGNATURE-----

Merge tag 'imx-fixes-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes

i.MX fixes for 5.17:

- Fix sound card model for MBa8Mx board.
- Drop i.MX8MQ LCDIF port node unit-address to fix DTC warning.
- Add missing SD card detect line for imx6qdl-udoo board.
- Remove MX23_PAD_SSP1_DETECT from imx23-evk hog group. It fixes the
  broken SD ard support on the board.
- A couple of fixes from Martin Kepplinger to fix the MIPI_CSI port
  number on i.MX8MQ.
- Re-enable ftm_alarm0 device on ls1028a-kontron-sl28 board which was
  disabled accidentally.
- Fix 'assigned-clocks-parents' typo in i.MX7ULP watchdog device node.
- Disable GPU device on imx8mn-venice-gw7902 board, as it uses
  MIMX8MN5CVTI SoC which does not integrate a GPU.

* tag 'imx-fixes-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: dts: imx8mq: fix lcdif port node
  arm64: dts: imx8mq-librem5: fix mipi_csi1 port number to sensor
  arm64: dts: imx8mq: fix mipi_csi bidirectional port numbers
  ARM: dts: imx7ulp: Fix 'assigned-clocks-parents' typo
  arm64: dts: ls1028a: sl28: re-enable ftm_alarm0
  arm64: dts: freescale: Fix sound card model for MBa8Mx
  ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group
  ARM: dts: imx6qdl-udoo: Properly describe the SD card detect
  arm64: dts: imx8mn-venice-gw7902: disable gpu

Link: https://lore.kernel.org/r/20220129073150.GZ4686@dragon
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:51:30 +01:00
Arnd Bergmann
cc0def5b4e OP-TE fixes for v5.17
- Adds error checking in optee_ffa_do_call_with_arg()
 - Reintroduces an accidentally lost fix for a memref size check
 - Uses bitmap_free() to free memory obtained with bitmap_zalloc()
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEEFV+gSSXZJY9ZyuB5LinzTIcAHJcFAmHxH3YaHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQLinzTIcAHJcfyw/+ON3pjOWqnf/1vx8i6/Ff
 ClwvvnYxTzG5KLcHLVc3mQMRMuckKSOVbudEPVNh21ShzYEG10ZiBvnamVyE90d5
 w5prGYG6VJleWKu48PdPyCBab/70alG5Uz4F9zFype4/Je95GJdzW/9Cdy2Z0/BR
 UbMsBtksE8cRoHdleHu31UdUPsnfSPGzTfJDWH3zVzuZT7cqWcQMnZNnk72K+iXH
 XR9dBVGQL04pejoWVIMy0jzvKl/7MoOtBRrlmzAXxLDWwdxSgriRfmQmA1jEumM8
 LLW8NZTMb7PBI7rkMrWDWziWfyp3N32BtRdkjzvMNHW01u2frsew92XZYK1c3qki
 OgN2rZkJ214xQpT3zMl+XtlSz5qWGA1I6N3oPe7Lr4rxbs9G2ErKn6GLMREfkXgG
 Xi5xy1wzSZg3SXan6oM2DO4cDXq2LOcubqKev8oWzhVBFzYNgnjtccsZ4KXYzp0z
 7Bhs0FrBv6z9bcFNKFXsamzJTezI8m8DhaXLiphfTctgWO6T7NwmrZnOH29YeMzh
 LfdM6cKIe7nR+w65atrlUFGzfSw4YomgLa6Z6QROSpOY4iAOOceszHZsq0VrUP7x
 uDTLzcoRFbsiJflNJ+fkI0pMLV+2DRPi07Ct/KmnRGq2uXOJyCsFmNTFcPRmSHPc
 ho57USzMvl9Loh076Rt71kA=
 =dcSW
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmICLmwACgkQmmx57+YA
 GNn7eA//dwFBYgFW7ATlLzp8lWL7mOg4Dh6vzdinyLLaKp0bPTKn0oNZxuDZE6d4
 FHw7ZDKShwlD5/NwPp9IfigErPgBOUbO1j4FlfLi3rIAqeOka3yuRllRD2tRA2+H
 dl0SI5e8QLwmGZ7pWcJcvR4xm700o45nIkPWptQPQfNcEFfHrML03tnzQvQoA3S3
 ziIK13aKDMBL/9SjLKpWq5dW6d8mkFsbE6TVrmLfwaCqBgcpqy3WC9z6WmG/wI5G
 Vio3LsV2UG+ngfmLer7gePaVgQW9UbAOM2k5pmA4Zxnkh/Q4mWSlQVMFC5wLFyha
 x4fMZkSU46YGTo1zRpLHVY8UjPvpMM6uv5hWTza/j3c3jBbkN9rvm9la9GrpXz4i
 ZPA5ehaFQ51lSQlx2g2WeZaJYuRliZiWNjrR+A4aGGIBh+4aYC+2sUvky4SyavjJ
 LTKwdyvF1RTkDGr7L+mkZLnOZqLQ9xHDIOiMkM0JqLG/xbNFSqMr9oAvh1gf37mo
 42hAtjvx6mU2la21AjCsTzEZgtDXtRJO/bRvT3/3taa3f/ehR47wzUwlMOE7vWcr
 tjHpBJ5vhlg8XwLgHPNxi+nCnAW02q1guEf/QaIxuhpdgyySQQB/NrkQmgsEUYX8
 2RaxOL3iwWjNd56M7D6M+TviUwYmm/aVcrl9adbV48pWtESeL6s=
 =9uyN
 -----END PGP SIGNATURE-----

Merge tag 'optee-fixes-for-v5.17' of git://git.linaro.org/people/jens.wiklander/linux-tee into arm/fixes

OP-TE fixes for v5.17

- Adds error checking in optee_ffa_do_call_with_arg()
- Reintroduces an accidentally lost fix for a memref size check
- Uses bitmap_free() to free memory obtained with bitmap_zalloc()

* tag 'optee-fixes-for-v5.17' of git://git.linaro.org/people/jens.wiklander/linux-tee:
  optee: add error checks in optee_ffa_do_call_with_arg()
  tee: optee: do not check memref size on return from Secure World
  optee: Use bitmap_free() to free bitmap

Link: https://lore.kernel.org/r/20220126102609.GA1516258@jade
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:48:44 +01:00
Arnd Bergmann
78b390bd56 Apple SoC MAINTAINERS updates for 5.17.
Adds the watchdog driver MAINTAINERS changes. The driver itself is
 already merged.
 
 This branch is based on asahi-soc-dt-5.17-v2 to avoid a merge conflict.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSU7I7lUkZru3Mt15+lhN6SrnTN2AUCYdkc7AAKCRClhN6SrnTN
 2NriAP9fl1B48SH6xrbMqG1JLyKCqtvtSVU7MlJPD0S9m5dbbwEA01CGY0agGsh4
 +kHgDk9oZJGB7OAhO5lJL/J3uijQPQk=
 =XNUp
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmICLgoACgkQmmx57+YA
 GNntQA//R2HAGczwtT5SOsHZvwUzGr+KegTeatjMBdxgpeytWhA2SY1eR8GtzAS7
 CHEg6l+SufA/bu66ldQW6LFCLiuj+/tVbhoTv1pTDEM9ig3eOsvlR6ENtmuzpQGc
 TfBzbYBDC/Jq5BpEnkcBYHny5xsEzjfAIX4DrymKODuLm/qHifr67/isMUb8sqUa
 CpghRhkRDoccGc6XkqqoadLEjEV76lY4TTFDRCrWsm6+oaWZKifoHxzw0axlI6O1
 kXPjVVzXNKSuwKr40pGYgAcQURUe4i8HiwIqgEXeOyF4YY7PRCZBTJ3/NxeqNM2Y
 sZ70cpcDw5h4SZqR5NtIX+vH3GOQryzy2TkINxSBy1pJt99PjdJOQyXVzKtAtojt
 JIiO3ZhfQsj52TNy0/Midymp0Lm9PXvOc322JGMXcYflKNVhDmCAf2nvcAPgusly
 NrraizcIBqSZQTicD0fvSmqZwjr6f8YIZcvyBeJI9x9UJvRoo6TgAJx45NIhpNre
 f3R4WQjcxpVSHyniPcT7CivF+GMfrbGKhCWvLh5fd+UXDyKkHWk9oo0NB0M9CYwR
 +OCSTymZPTDvXg5fWEkfcSaaCuJB5Ii2llrX59USA6CGZs4wC81B2+0OTOjflV1E
 ey1LXc0/aYpRW++Yk36Qxqqwxgs6tg8a3KqidzoaxjAoYZLciSo=
 =YZuT
 -----END PGP SIGNATURE-----

Merge tag 'asahi-soc-maintainers-5.17' of https://github.com/AsahiLinux/linux into arm/fixes

Apple SoC MAINTAINERS updates for 5.17.

Adds the watchdog driver MAINTAINERS changes. The driver itself is
already merged.

This branch is based on asahi-soc-dt-5.17-v2 to avoid a merge conflict.

* tag 'asahi-soc-maintainers-5.17' of https://github.com/AsahiLinux/linux:
  MAINTAINERS: Add Apple watchdog to ARM/APPLE MACHINE SUPPORT

Link: https://lore.kernel.org/r/24ae6871-3e67-5c7f-2060-28048db439a2@marcan.st
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-02-08 09:47:06 +01:00
Zoltán Böszörményi
c8ea23d5fa ata: libata-core: Disable TRIM on M88V29
This device is a CF card, or possibly an SSD in CF form factor.
It supports NCQ and high speed DMA.

While it also advertises TRIM support, I/O errors are reported
when the discard mount option fstrim is used. TRIM also fails
when disabling NCQ and not just as an NCQ command.

TRIM must be disabled for this device.

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
2022-02-08 17:06:14 +09:00
Damien Le Moal
921d2eb096 ata: sata_fsl: fix sscanf() and sysfs_emit() format strings
Use the %u format for unsigned int parameters handling with sscanf() and
sysfs_emit() to avoid compilation warnings. In
fsl_sata_rx_watermark_store(), the call to sscanf() to parse a single
argument is replaced with a call to kstrtouint().

While at it, also replace the printk(KERN_ERR) calls with dev_err()
calls and fix blank lines in fsl_sata_rx_watermark_store().

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
2022-02-08 15:31:20 +09:00
James Smart
5852ed2a6a scsi: lpfc: Reduce log messages seen after firmware download
Messages around firmware download were incorrectly tagged as being related
to discovery trace events. Thus, firmware download status ended up dumping
the trace log as well as the firmware update message. As there were a
couple of log messages in this state, the trace log was dumped multiple
times.

Resolve this by converting from trace events to SLI events.

Link: https://lore.kernel.org/r/20220207180442.72836-1-jsmart2021@gmail.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2022-02-07 23:45:02 -05:00
James Smart
c80b27cfd9 scsi: lpfc: Remove NVMe support if kernel has NVME_FC disabled
The driver is initiating NVMe PRLIs to determine device NVMe support.  This
should not be occurring if CONFIG_NVME_FC support is disabled.

Correct this by changing the default value for FC4 support. Currently it
defaults to FCP and NVMe. With change, when NVME_FC support is not enabled
in the kernel, the default value is just FCP.

Link: https://lore.kernel.org/r/20220207180516.73052-1-jsmart2021@gmail.com
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2022-02-07 23:42:58 -05:00
Nathan Chancellor
1cf5f151d2 Makefile.extrawarn: Move -Wunaligned-access to W=1
-Wunaligned-access is a new warning in clang that is default enabled for
arm and arm64 under certain circumstances within the clang frontend (see
LLVM commit below). On v5.17-rc2, an ARCH=arm allmodconfig build shows
1284 total/70 unique instances of this warning (most of the instances
are in header files), which is quite noisy.

To keep a normal build green through CONFIG_WERROR, only show this
warning with W=1, which will allow automated build systems to catch new
instances of the warning so that the total number can be driven down to
zero eventually since catching unaligned accesses at compile time would
be generally useful.

Cc: stable@vger.kernel.org
Link: 35737df4dc
Link: https://github.com/ClangBuiltLinux/linux/issues/1569
Link: https://github.com/ClangBuiltLinux/linux/issues/1576
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2022-02-08 13:20:11 +09:00
Brenda Streiff
8a4c5b2a6d kconfig: let 'shell' return enough output for deep path names
The 'shell' built-in only returns the first 256 bytes of the command's
output. In some cases, 'shell' is used to return a path; by bumping up
the buffer size to 4096 this lets us capture up to PATH_MAX.

The specific case where I ran into this was due to commit 1e860048c5
("gcc-plugins: simplify GCC plugin-dev capability test"). After this
change, we now use `$(shell,$(CC) -print-file-name=plugin)` to return
a path; if the gcc path is particularly long, then the path ends up
truncated at the 256 byte mark, which makes the HAVE_GCC_PLUGINS
depends test always fail.

Signed-off-by: Brenda Streiff <brenda.streiff@ni.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2022-02-08 13:20:11 +09:00
Jakub Kicinski
c3e676b983 Merge branch 'inet-separate-dscp-from-ecn-bits-using-new-dscp_t-type'
Guillaume Nault says:

====================
inet: Separate DSCP from ECN bits using new dscp_t type

The networking stack currently doesn't clearly distinguish between DSCP
and ECN bits. The entire DSCP+ECN bits are stored in u8 variables (or
structure fields), and each part of the stack handles them in their own
way, using different macros. This has created several bugs in the past
and some uncommon code paths are still unfixed.

Such bugs generally manifest by selecting invalid routes because of ECN
bits interfering with FIB routes and rules lookups (more details in the
LPC 2021 talk[1] and in the RFC of this series[2]).

This patch series aims at preventing the introduction of such bugs (and
detecting existing ones), by introducing a dscp_t type, representing
"sanitised" DSCP values (that is, with no ECN information), as opposed
to plain u8 values that contain both DSCP and ECN information. dscp_t
makes it clear for the reader what we're working on, and Sparse can
flag invalid interactions between dscp_t and plain u8.

This series converts only a few variables and structures:

  * Patch 1 converts the tclass field of struct fib6_rule. It
    effectively forbids the use of ECN bits in the tos/dsfield option
    of ip -6 rule. Rules now match packets solely based on their DSCP
    bits, so ECN doesn't influence the result any more. This contrasts
    with the previous behaviour where all 8 bits of the Traffic Class
    field were used. It is believed that this change is acceptable as
    matching ECN bits wasn't usable for IPv4, so only IPv6-only
    deployments could be depending on it. Also the previous behaviour
    made DSCP-based ip6-rules fail for packets with both a DSCP and an
    ECN mark, which is another reason why any such deploy is unlikely.

  * Patch 2 converts the tos field of struct fib4_rule. This one too
    effectively forbids defining ECN bits, this time in ip -4 rule.
    Before that, setting ECN bit 1 was accepted, while ECN bit 0 was
    rejected. But even when accepted, the rule would never match, as
    the packets would have their ECN bits cleared before doing the
    rule lookup.

  * Patch 3 converts the fc_tos field of struct fib_config. This is
    equivalent to patch 2, but for IPv4 routes. Routes using a
    tos/dsfield option with any ECN bit set is now rejected. Before
    this patch, they were accepted but, as with ip4 rules, these routes
    couldn't match any packet, since their ECN bits are cleared before
    the lookup.

  * Patch 4 converts the fa_tos field of struct fib_alias. This one is
    pure internal u8 to dscp_t conversion. While patches 1-3 had user
    facing consequences, this patch shouldn't have any side effect and
    is there to give an overview of what future conversion patches will
    look like. Conversions are quite mechanical, but imply some code
    churn, which is the price for the extra clarity a possibility of
    type checking.

To summarise, all the behaviour changes required for the dscp_t type
approach to work should be contained in patches 1-3. These changes are
edge cases of ip-route and ip-rule that don't currently work properly.
So they should be safe. Also, a kernel selftest is added for each of
them.

Finally, this work also paves the way for allowing the usage of the 3
high order DSCP bits in IPv4 (a few call paths already handle them, but
in general the stack clears them before IPv4 rule and route lookups).

References:
  [1] LPC 2021 talk:
        - https://linuxplumbersconf.org/event/11/contributions/943/
        - Direct link to slide deck:
            https://linuxplumbersconf.org/event/11/contributions/943/attachments/901/1780/inet_tos_lpc2021.pdf
  [2] RFC version of this series:
      - https://lore.kernel.org/netdev/cover.1638814614.git.gnault@redhat.com/
====================

Link: https://lore.kernel.org/r/cover.1643981839.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 20:12:48 -08:00
Guillaume Nault
32ccf11079 ipv4: Use dscp_t in struct fib_alias
Use the new dscp_t type to replace the fa_tos field of fib_alias. This
ensures ECN bits are ignored and makes the field compatible with the
fc_dscp field of struct fib_config.

Converting old *tos variables and fields to dscp_t allows sparse to
flag incorrect uses of DSCP and ECN bits. This patch is entirely about
type annotation and shouldn't change any existing behaviour.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Acked-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 20:12:46 -08:00
Guillaume Nault
f55fbb6afb ipv4: Reject routes specifying ECN bits in rtm_tos
Use the new dscp_t type to replace the fc_tos field of fib_config, to
ensure IPv4 routes aren't influenced by ECN bits when configured with
non-zero rtm_tos.

Before this patch, IPv4 routes specifying an rtm_tos with some of the
ECN bits set were accepted. However they wouldn't work (never match) as
IPv4 normally clears the ECN bits with IPTOS_RT_MASK before doing a FIB
lookup (although a few buggy code paths don't).

After this patch, IPv4 routes specifying an rtm_tos with any ECN bit
set is rejected.

Note: IPv6 routes ignore rtm_tos altogether, any rtm_tos is accepted,
but treated as if it were 0.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Acked-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 20:12:46 -08:00
Guillaume Nault
563f8e97e0 ipv4: Stop taking ECN bits into account in fib4-rules
Use the new dscp_t type to replace the tos field of struct fib4_rule,
so that fib4-rules consistently ignore ECN bits.

Before this patch, fib4-rules did accept rules with the high order ECN
bit set (but not the low order one). Also, it relied on its callers
masking the ECN bits of ->flowi4_tos to prevent those from influencing
the result. This was brittle and a few call paths still do the lookup
without masking the ECN bits first.

After this patch fib4-rules only compare the DSCP bits. ECN can't
influence the result anymore, even if the caller didn't mask these
bits. Also, fib4-rules now must have both ECN bits cleared or they will
be rejected.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Acked-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 20:12:46 -08:00
Guillaume Nault
a410a0cf98 ipv6: Define dscp_t and stop taking ECN bits into account in fib6-rules
Define a dscp_t type and its appropriate helpers that ensure ECN bits
are not taken into account when handling DSCP.

Use this new type to replace the tclass field of struct fib6_rule, so
that fib6-rules don't get influenced by ECN bits anymore.

Before this patch, fib6-rules didn't make any distinction between the
DSCP and ECN bits. Therefore, rules specifying a DSCP (tos or dsfield
options in iproute2) stopped working as soon a packets had at least one
of its ECN bits set (as a work around one could create four rules for
each DSCP value to match, one for each possible ECN value).

After this patch fib6-rules only compare the DSCP bits. ECN doesn't
influence the result anymore. Also, fib6-rules now must have the ECN
bits cleared or they will be rejected.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Acked-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 20:12:45 -08:00
Yannick Vignon
642436a1ad net: stmmac: optimize locking around PTP clock reads
Reading the PTP clock is a simple operation requiring only 3 register
reads. Under a PREEMPT_RT kernel, protecting those reads by a spin_lock is
counter-productive: if the 2nd task preempting the 1st has a higher prio
but needs to read time as well, it will require 2 context switches, which
will pretty much always be more costly than just disabling preemption for
the duration of the reads. Moreover, with the code logic recently added
to get_systime(), disabling preemption is not even required anymore:
reads and writes just need to be protected from each other, to prevent a
clock read while the clock is being updated.

Improve the above situation by replacing the PTP spinlock by a rwlock, and
using read_lock for PTP clock reads so simultaneous reads do not block
each other.

Signed-off-by: Yannick Vignon <yannick.vignon@nxp.com>
Link: https://lore.kernel.org/r/20220204135545.2770625-1-yannick.vignon@oss.nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 19:59:13 -08:00
Pavel Parkhomenko
fe4f57bf7b net: phy: marvell: Fix RGMII Tx/Rx delays setting in 88e1121-compatible PHYs
It is mandatory for a software to issue a reset upon modifying RGMII
Receive Timing Control and RGMII Transmit Timing Control bit fields of MAC
Specific Control register 2 (page 2, register 21) otherwise the changes
won't be perceived by the PHY (the same is applicable for a lot of other
registers). Not setting the RGMII delays on the platforms that imply it'
being done on the PHY side will consequently cause the traffic loss. We
discovered that the denoted soft-reset is missing in the
m88e1121_config_aneg() method for the case if the RGMII delays are
modified but the MDIx polarity isn't changed or the auto-negotiation is
left enabled, thus causing the traffic loss on our platform with Marvell
Alaska 88E1510 installed. Let's fix that by issuing the soft-reset if the
delays have been actually set in the m88e1121_config_aneg_rgmii_delays()
method.

Cc: stable@vger.kernel.org
Fixes: d6ab933647 ("net: phy: marvell: Avoid unnecessary soft reset")
Signed-off-by: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Link: https://lore.kernel.org/r/20220205203932.26899-1-Pavel.Parkhomenko@baikalelectronics.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 19:57:09 -08:00
Eric Dumazet
d1d5bd647c net: typhoon: include <net/vxlan.h>
We need this to get vxlan_features_check() definition.

Fixes: d2692eee05 ("net: typhoon: implement ndo_features_check method")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20220208003502.1799728-1-eric.dumazet@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-02-07 19:53:38 -08:00
Stanislav Fomichev
5d1e9f437d bpf: test_run: Fix overflow in bpf_test_finish frags parsing
This place also uses signed min_t and passes this singed int to
copy_to_user (which accepts unsigned argument). I don't think
there is an issue, but let's be consistent.

Fixes: 7855e0db15 ("bpf: test_run: add xdp_shared_info pointer in bpf_test_finish signature")
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220204235849.14658-2-sdf@google.com
2022-02-07 18:26:13 -08:00
Stanislav Fomichev
9d63b59d1e bpf: test_run: Fix overflow in xdp frags parsing
When kattr->test.data_size_in > INT_MAX, signed min_t will assign
negative value to data_len. This negative value then gets passed
over to copy_from_user where it is converted to (big) unsigned.

Use unsigned min_t to avoid this overflow.

usercopy: Kernel memory overwrite attempt detected to wrapped address
(offset 0, size 18446612140539162846)!
------------[ cut here ]------------
kernel BUG at mm/usercopy.c:102!
invalid opcode: 0000 [#1] SMP KASAN
Modules linked in:
CPU: 0 PID: 3781 Comm: syz-executor226 Not tainted 4.15.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
RIP: 0010:usercopy_abort+0xbd/0xbf mm/usercopy.c:102
RSP: 0018:ffff8801e9703a38 EFLAGS: 00010286
RAX: 000000000000006c RBX: ffffffff84fc7040 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff816560a2 RDI: ffffed003d2e0739
RBP: ffff8801e9703a90 R08: 000000000000006c R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000000 R12: ffffffff84fc73a0
R13: ffffffff84fc7180 R14: ffffffff84fc7040 R15: ffffffff84fc7040
FS:  00007f54e0bec300(0000) GS:ffff8801f6600000(0000)
knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020000280 CR3: 00000001e90ea000 CR4: 00000000003426f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 check_bogus_address mm/usercopy.c:155 [inline]
 __check_object_size mm/usercopy.c:263 [inline]
 __check_object_size.cold+0x8c/0xad mm/usercopy.c:253
 check_object_size include/linux/thread_info.h:112 [inline]
 check_copy_size include/linux/thread_info.h:143 [inline]
 copy_from_user include/linux/uaccess.h:142 [inline]
 bpf_prog_test_run_xdp+0xe57/0x1240 net/bpf/test_run.c:989
 bpf_prog_test_run kernel/bpf/syscall.c:3377 [inline]
 __sys_bpf+0xdf2/0x4a50 kernel/bpf/syscall.c:4679
 SYSC_bpf kernel/bpf/syscall.c:4765 [inline]
 SyS_bpf+0x26/0x50 kernel/bpf/syscall.c:4763
 do_syscall_64+0x21a/0x3e0 arch/x86/entry/common.c:305
 entry_SYSCALL_64_after_hwframe+0x46/0xbb

Fixes: 1c19499825 ("bpf: introduce frags support to bpf_prog_test_run_xdp()")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220204235849.14658-1-sdf@google.com
2022-02-07 18:26:13 -08:00
Alexei Starovoitov
80123f0ac4 Merge branch 'bpf_prog_pack allocator'
Song Liu says:

====================

Changes v8 => v9:
1. Fix an error with multi function program, in 4/9.

Changes v7 => v8:
1. Rebase and fix conflicts.
2. Lock text_mutex for text_poke_copy. (Daniel)

Changes v6 => v7:
1. Redesign the interface between generic and arch logic, based on feedback
   from Alexei and Ilya.
2. Split 6/7 of v6 to 7/9 and 8/9 in v7, for cleaner logic.
3. Add bpf_arch_text_copy in 6/9.

Changes v5 => v6:
1. Make jit_hole_buffer 128 byte long. Only fill the first and last 128
   bytes of header with INT3. (Alexei)
2. Use kvmalloc for temporary buffer. (Alexei)
3. Rename tmp_header/tmp_image => rw_header/rw_image. Remove tmp_image from
   x64_jit_data. (Alexei)
4. Change fall back round_up_to in bpf_jit_binary_alloc_pack() from
   BPF_PROG_MAX_PACK_PROG_SIZE to PAGE_SIZE.

Changes v4 => v5:
1. Do not use atomic64 for bpf_jit_current. (Alexei)

Changes v3 => v4:
1. Rename text_poke_jit() => text_poke_copy(). (Peter)
2. Change comment style. (Peter)

Changes v2 => v3:
1. Fix tailcall.

Changes v1 => v2:
1. Use text_poke instead of writing through linear mapping. (Peter)
2. Avoid making changes to non-x86_64 code.

Most BPF programs are small, but they consume a page each. For systems
with busy traffic and many BPF programs, this could also add significant
pressure to instruction TLB. High iTLB pressure usually causes slow down
for the whole system, which includes visible performance degradation for
production workloads.

This set tries to solve this problem with customized allocator that pack
multiple programs into a huge page.

Patches 1-6 prepare the work. Patch 7 contains key logic of bpf_prog_pack
allocator. Patch 8 contains bpf_jit_binary_pack_alloc logic on top of
bpf_prog_pack allocator. Patch 9 uses this allocator in x86_64 jit.
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2022-02-07 18:13:02 -08:00
Song Liu
1022a5498f bpf, x86_64: Use bpf_jit_binary_pack_alloc
Use bpf_jit_binary_pack_alloc in x86_64 jit. The jit engine first writes
the program to the rw buffer. When the jit is done, the program is copied
to the final location with bpf_jit_binary_pack_finalize.

Note that we need to do bpf_tail_call_direct_fixup after finalize.
Therefore, the text_live = false logic in __bpf_arch_text_poke is no
longer needed.

Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220204185742.271030-10-song@kernel.org
2022-02-07 18:13:01 -08:00
Song Liu
33c9805860 bpf: Introduce bpf_jit_binary_pack_[alloc|finalize|free]
This is the jit binary allocator built on top of bpf_prog_pack.

bpf_prog_pack allocates RO memory, which cannot be used directly by the
JIT engine. Therefore, a temporary rw buffer is allocated for the JIT
engine. Once JIT is done, bpf_jit_binary_pack_finalize is used to copy
the program to the RO memory.

bpf_jit_binary_pack_alloc reserves 16 bytes of extra space for illegal
instructions, which is small than the 128 bytes space reserved by
bpf_jit_binary_alloc. This change is necessary for bpf_jit_binary_hdr
to find the correct header. Also, flag use_bpf_prog_pack is added to
differentiate a program allocated by bpf_jit_binary_pack_alloc.

Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220204185742.271030-9-song@kernel.org
2022-02-07 18:13:01 -08:00
Song Liu
57631054fa bpf: Introduce bpf_prog_pack allocator
Most BPF programs are small, but they consume a page each. For systems
with busy traffic and many BPF programs, this could add significant
pressure to instruction TLB. High iTLB pressure usually causes slow down
for the whole system, which includes visible performance degradation for
production workloads.

Introduce bpf_prog_pack allocator to pack multiple BPF programs in a huge
page. The memory is then allocated in 64 byte chunks.

Memory allocated by bpf_prog_pack allocator is RO protected after initial
allocation. To write to it, the user (jit engine) need to use text poke
API.

Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220204185742.271030-8-song@kernel.org
2022-02-07 18:13:01 -08:00
Song Liu
ebc1415d9b bpf: Introduce bpf_arch_text_copy
This will be used to copy JITed text to RO protected module memory. On
x86, bpf_arch_text_copy is implemented with text_poke_copy.

bpf_arch_text_copy returns pointer to dst on success, and ERR_PTR(errno)
on errors.

Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220204185742.271030-7-song@kernel.org
2022-02-07 18:13:01 -08:00