Commit graph

1,058,063 commits

Author SHA1 Message Date
Yafang Shao
ceeadb83ae sched: Make struct sched_statistics independent of fair sched class
If we want to use the schedstats facility to trace other sched classes, we
should make it independent of fair sched class. The struct sched_statistics
is the schedular statistics of a task_struct or a task_group. So we can
move it into struct task_struct and struct task_group to achieve the goal.

After the patch, schestats are orgnized as follows,

    struct task_struct {
       ...
       struct sched_entity se;
       struct sched_rt_entity rt;
       struct sched_dl_entity dl;
       ...
       struct sched_statistics stats;
       ...
   };

Regarding the task group, schedstats is only supported for fair group
sched, and a new struct sched_entity_stats is introduced, suggested by
Peter -

    struct sched_entity_stats {
        struct sched_entity     se;
        struct sched_statistics stats;
    } __no_randomize_layout;

Then with the se in a task_group, we can easily get the stats.

The sched_statistics members may be frequently modified when schedstats is
enabled, in order to avoid impacting on random data which may in the same
cacheline with them, the struct sched_statistics is defined as cacheline
aligned.

As this patch changes the core struct of scheduler, so I verified the
performance it may impact on the scheduler with 'perf bench sched
pipe', suggested by Mel. Below is the result, in which all the values
are in usecs/op.
                                  Before               After
      kernel.sched_schedstats=0  5.2~5.4               5.2~5.4
      kernel.sched_schedstats=1  5.3~5.5               5.3~5.5
[These data is a little difference with the earlier version, that is
 because my old test machine is destroyed so I have to use a new
 different test machine.]

Almost no impact on the sched performance.

No functional change.

[lkp@intel.com: reported build failure in earlier version]

Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Mel Gorman <mgorman@suse.de>
Link: https://lore.kernel.org/r/20210905143547.4668-3-laoar.shao@gmail.com
2021-10-05 15:51:45 +02:00
Yafang Shao
a2dcb276ff sched/fair: Use __schedstat_set() in set_next_entity()
schedstat_enabled() has been already checked, so we can use
__schedstat_set() directly.

Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Mel Gorman <mgorman@suse.de>
Link: https://lore.kernel.org/r/20210905143547.4668-2-laoar.shao@gmail.com
2021-10-05 15:51:44 +02:00
Li Zhijian
1c36432b27 kselftests/sched: cleanup the child processes
Previously, 'make -C sched run_tests' will block forever when it occurs
something wrong where the *selftests framework* is waiting for its child
processes to exit.

[root@iaas-rpma sched]# ./cs_prctl_test

 ## Create a thread/process/process group hiearchy
Not a core sched system
tid=74985, / tgid=74985 / pgid=74985: ffffffffffffffff
Not a core sched system
    tid=74986, / tgid=74986 / pgid=74985: ffffffffffffffff
Not a core sched system
        tid=74988, / tgid=74986 / pgid=74985: ffffffffffffffff
Not a core sched system
        tid=74989, / tgid=74986 / pgid=74985: ffffffffffffffff
Not a core sched system
        tid=74990, / tgid=74986 / pgid=74985: ffffffffffffffff
Not a core sched system
    tid=74987, / tgid=74987 / pgid=74985: ffffffffffffffff
Not a core sched system
        tid=74991, / tgid=74987 / pgid=74985: ffffffffffffffff
Not a core sched system
        tid=74992, / tgid=74987 / pgid=74985: ffffffffffffffff
Not a core sched system
        tid=74993, / tgid=74987 / pgid=74985: ffffffffffffffff

Not a core sched system
(268) FAILED: get_cs_cookie(0) == 0

 ## Set a cookie on entire process group
-1 = prctl(62, 1, 0, 2, 0)
core_sched create failed -- PGID: Invalid argument
(cs_prctl_test.c:272) -
[root@iaas-rpma sched]# ps
    PID TTY          TIME CMD
   4605 pts/2    00:00:00 bash
  74986 pts/2    00:00:00 cs_prctl_test
  74987 pts/2    00:00:00 cs_prctl_test
  74999 pts/2    00:00:00 ps

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Chris Hyser <chris.hyser@oracle.com>
Link: https://lore.kernel.org/r/20210902024333.75983-1-lizhijian@cn.fujitsu.com
2021-10-05 15:51:43 +02:00
Huaixin Chang
d73df887b6 sched/fair: Add document for burstable CFS bandwidth
Basic description of usage and effect for CFS Bandwidth Control Burst.

Co-developed-by: Shanpei Chen <shanpeic@linux.alibaba.com>
Signed-off-by: Shanpei Chen <shanpeic@linux.alibaba.com>
Co-developed-by: Tianchen Ding <dtcccc@linux.alibaba.com>
Signed-off-by: Tianchen Ding <dtcccc@linux.alibaba.com>
Signed-off-by: Huaixin Chang <changhuaixin@linux.alibaba.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20210830032215.16302-3-changhuaixin@linux.alibaba.com
2021-10-05 15:51:41 +02:00
Huaixin Chang
bcb1704a1e sched/fair: Add cfs bandwidth burst statistics
Two new statistics are introduced to show the internal of burst feature
and explain why burst helps or not.

nr_bursts:  number of periods bandwidth burst occurs
burst_time: cumulative wall-time (in nanoseconds) that any cpus has
	    used above quota in respective periods

Co-developed-by: Shanpei Chen <shanpeic@linux.alibaba.com>
Signed-off-by: Shanpei Chen <shanpeic@linux.alibaba.com>
Co-developed-by: Tianchen Ding <dtcccc@linux.alibaba.com>
Signed-off-by: Tianchen Ding <dtcccc@linux.alibaba.com>
Signed-off-by: Huaixin Chang <changhuaixin@linux.alibaba.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20210830032215.16302-2-changhuaixin@linux.alibaba.com
2021-10-05 15:51:40 +02:00
Josh Don
2cae3948ed sched: adjust sleeper credit for SCHED_IDLE entities
Give reduced sleeper credit to SCHED_IDLE entities. As a result, woken
SCHED_IDLE entities will take longer to preempt normal entities.

The benefit of this change is to make it less likely that a newly woken
SCHED_IDLE entity will preempt a short-running normal entity before it
blocks.

We still give a small sleeper credit to SCHED_IDLE entities, so that
idle<->idle competition retains some fairness.

Example: With HZ=1000, spawned four threads affined to one cpu, one of
which was set to SCHED_IDLE. Without this patch, wakeup latency for the
SCHED_IDLE thread was ~1-2ms, with the patch the wakeup latency was
~5ms.

Signed-off-by: Josh Don <joshdon@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Reviewed-by: Jiang Biao <benbjiang@tencent.com>
Link: https://lore.kernel.org/r/20210820010403.946838-5-joshdon@google.com
2021-10-05 15:51:39 +02:00
Josh Don
51ce83ed52 sched: reduce sched slice for SCHED_IDLE entities
Use a small, non-scaled min granularity for SCHED_IDLE entities, when
competing with normal entities. This reduces the latency of getting
a normal entity back on cpu, at the expense of increased context
switch frequency of SCHED_IDLE entities.

The benefit of this change is to reduce the round-robin latency for
normal entities when competing with a SCHED_IDLE entity.

Example: on a machine with HZ=1000, spawned two threads, one of which is
SCHED_IDLE, and affined to one cpu. Without this patch, the SCHED_IDLE
thread runs for 4ms then waits for 1.4s. With this patch, it runs for
1ms and waits 340ms (as it round-robins with the other thread).

Signed-off-by: Josh Don <joshdon@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Link: https://lore.kernel.org/r/20210820010403.946838-4-joshdon@google.com
2021-10-05 15:51:37 +02:00
Josh Don
a480addecc sched: Account number of SCHED_IDLE entities on each cfs_rq
Adds cfs_rq->idle_nr_running, which accounts the number of idle entities
directly enqueued on the cfs_rq.

Signed-off-by: Josh Don <joshdon@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Link: https://lore.kernel.org/r/20210820010403.946838-3-joshdon@google.com
2021-10-05 15:51:36 +02:00
Josh Don
a130e8fbc7 fs/proc/uptime.c: Fix idle time reporting in /proc/uptime
/proc/uptime reports idle time by reading the CPUTIME_IDLE field from
the per-cpu kcpustats. However, on NO_HZ systems, idle time is not
continually updated on idle cpus, leading this value to appear
incorrectly small.

/proc/stat performs an accounting update when reading idle time; we
can use the same approach for uptime.

With this patch, /proc/stat and /proc/uptime now agree on idle time.
Additionally, the following shows idle time tick up consistently on an
idle machine:

  (while true; do cat /proc/uptime; sleep 1; done) | awk '{print $2-prev; prev=$2}'

Reported-by: Luigi Rizzo <lrizzo@google.com>
Signed-off-by: Josh Don <joshdon@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lkml.kernel.org/r/20210827165438.3280779-1-joshdon@google.com
2021-10-05 15:51:35 +02:00
Peter Zijlstra
bc9ffef31b sched/core: Simplify core-wide task selection
Tao suggested a two-pass task selection to avoid the retry loop.

Not only does it avoid the retry loop, it results in *much* simpler
code.

This also fixes an issue spotted by Josh Don where, for SMT3+, we can
forget to update max on the first pass and get to do an extra round.

Suggested-by: Tao Zhou <tao.zhou@linux.dev>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Josh Don <joshdon@google.com>
Reviewed-by: Vineeth Pillai (Microsoft) <vineethrp@gmail.com>
Link: https://lkml.kernel.org/r/YSS9+k1teA9oPEKl@hirez.programming.kicks-ass.net
2021-10-05 15:51:33 +02:00
Sebastian Andrzej Siewior
c33627e9a1 sched: Switch wait_task_inactive to HRTIMER_MODE_REL_HARD
With PREEMPT_RT enabled all hrtimers callbacks will be invoked in
softirq mode unless they are explicitly marked as HRTIMER_MODE_HARD.
During boot kthread_bind() is used for the creation of per-CPU threads
and then hangs in wait_task_inactive() if the ksoftirqd is not
yet up and running.
The hang disappeared since commit
   26c7295be0 ("kthread: Do not preempt current task if it is going to call schedule()")

but enabling function trace on boot reliably leads to the freeze on boot
behaviour again.
The timer in wait_task_inactive() can not be directly used by a user
interface to abuse it and create a mass wake up of several tasks at the
same time leading to long sections with disabled interrupts.
Therefore it is safe to make the timer HRTIMER_MODE_REL_HARD.

Switch the timer to HRTIMER_MODE_REL_HARD.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20210826170408.vm7rlj7odslshwch@linutronix.de
2021-10-05 15:51:32 +02:00
Valentin Schneider
7fd7a9e0ca sched/fair: Trigger nohz.next_balance updates when a CPU goes NOHZ-idle
Consider a system with some NOHZ-idle CPUs, such that

  nohz.idle_cpus_mask = S
  nohz.next_balance = T

When a new CPU k goes NOHZ idle (nohz_balance_enter_idle()), we end up
with:

  nohz.idle_cpus_mask = S \U {k}
  nohz.next_balance = T

Note that the nohz.next_balance hasn't changed - it won't be updated until
a NOHZ balance is triggered. This is problematic if the newly NOHZ idle CPU
has an earlier rq.next_balance than the other NOHZ idle CPUs, IOW if:

  cpu_rq(k).next_balance < nohz.next_balance

In such scenarios, the existing nohz.next_balance will prevent any NOHZ
balance from happening, which itself will prevent nohz.next_balance from
being updated to this new cpu_rq(k).next_balance. Unnecessary load balance
delays of over 12ms caused by this were observed on an arm64 RB5 board.

Use the new nohz.needs_update flag to mark the presence of newly-idle CPUs
that need their rq->next_balance to be collated into
nohz.next_balance. Trigger a NOHZ_NEXT_KICK when the flag is set.

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Link: https://lkml.kernel.org/r/20210823111700.2842997-3-valentin.schneider@arm.com
2021-10-05 15:51:31 +02:00
Valentin Schneider
efd984c481 sched/fair: Add NOHZ balancer flag for nohz.next_balance updates
A following patch will trigger NOHZ idle balances as a means to update
nohz.next_balance. Vincent noted that blocked load updates can have
non-negligible overhead, which should be avoided if the intent is to only
update nohz.next_balance.

Add a new NOHZ balance kick flag, NOHZ_NEXT_KICK. Gate NOHZ blocked load
update by the presence of NOHZ_STATS_KICK - currently all NOHZ balance
kicks will have the NOHZ_STATS_KICK flag set, so no change in behaviour is
expected.

Suggested-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Link: https://lkml.kernel.org/r/20210823111700.2842997-2-valentin.schneider@arm.com
2021-10-05 15:51:30 +02:00
Srinivas Kandagatla
f9a470db27 misc: fastrpc: Add missing lock before accessing find_vma()
fastrpc driver is using find_vma() without any protection, as a
result we see below warning due to recent patch 5b78ed24e8
("mm/pagemap: add mmap_assert_locked() annotations to find_vma*()")
which added mmap_assert_locked() in find_vma() function.

This bug went un-noticed in previous versions. Fix this issue by adding
required protection while calling find_vma().

CPU: 0 PID: 209746 Comm: benchmark_model Not tainted 5.15.0-rc2-00445-ge14fe2bf817a-dirty #969
Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : find_vma+0x64/0xd0
lr : find_vma+0x60/0xd0
sp : ffff8000158ebc40
...

Call trace:
 find_vma+0x64/0xd0
 fastrpc_internal_invoke+0x570/0xda8
 fastrpc_device_ioctl+0x3e0/0x928
 __arm64_sys_ioctl+0xac/0xf0
 invoke_syscall+0x44/0x100
 el0_svc_common.constprop.3+0x70/0xf8
 do_el0_svc+0x24/0x88
 el0_svc+0x3c/0x138
 el0t_64_sync_handler+0x90/0xb8
 el0t_64_sync+0x180/0x184

Fixes: 80f3afd72b ("misc: fastrpc: consider address offset before sending to DSP")
Cc: stable@vger.kernel.org
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20210922154326.8927-1-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:50:27 +02:00
Arnd Bergmann
42641042c1 cb710: avoid NULL pointer subtraction
clang-14 complains about an unusual way of converting a pointer to
an integer:

drivers/misc/cb710/sgbuf2.c:50:15: error: performing pointer subtraction with a null pointer has undefined behavior [-Werror,-Wnull-pointer-subtraction]
        return ((ptr - NULL) & 3) != 0;

Replace this with a normal cast to uintptr_t.

Fixes: 5f5bac8272 ("mmc: Driver for CB710/720 memory card reader (MMC part)")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210927121408.939246-1-arnd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:50:05 +02:00
Mark Brown
a3e1693731 misc: gehc: Add SPI ID table
Currently autoloading for SPI devices does not use the DT ID table, it uses
SPI modalises. Supporting OF modalises is going to be difficult if not
impractical, an attempt was made but has been reverted, so ensure that
module autoloading works for this driver by adding a SPI ID table entry
for the device name part of the compatible - currently only the full
compatible is listed which isn't very idiomatic and won't match the
modalias that is generated.

Fixes: 96c8395e21 ("spi: Revert modalias changes")
Cc: stable <stable@vger.kernel.org>
Tested-by: Martyn Welch <martyn.welch@collabora.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210923194609.52647-1-broonie@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:47:18 +02:00
Arnd Bergmann
34186b48d2
ARM: sharpsl_param: work around -Wstringop-overread warning
gcc warns that accessing a pointer based on a numeric constant may
be an offset into a NULL pointer, and would therefore has zero
accessible bytes:

arch/arm/common/sharpsl_param.c: In function ‘sharpsl_save_param’:
arch/arm/common/sharpsl_param.c:43:9: error: ‘memcpy’ reading 64 bytes from a region of size 0 [-Werror=stringop-overread]
   43 |         memcpy(&sharpsl_param, param_start(PARAM_BASE), sizeof(struct sharpsl_param_info));
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In this particular case, the warning is bogus since this is the actual
pointer, not an offset on a NULL pointer. Add a local variable to shut
up the warning and hope it doesn't come back.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Daniel Mack <daniel@zonque.org>
Cc: Daniel Mack <daniel@zonque.org>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Linus Walleij <linus.walleij@linaro.org>
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
Link: https://lore.kernel.org/r/20210927145332.2784005-1-arnd@kernel.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:44:56 +02:00
Max Gurtovoy
cee0ad4a21 PCI/sysfs: use NUMA_NO_NODE macro
Use the proper macro instead of hard-coded (-1) value.

Suggested-by: Krzysztof Wilczyński <kw@linux.com>
Reviewed-by: Krzysztof Wilczyński <kw@linux.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Link: https://lore.kernel.org/r/20211004133453.18881-2-mgurtovoy@nvidia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:42:22 +02:00
Max Gurtovoy
d460d7f7bb driver core: use NUMA_NO_NODE during device_initialize
Don't use (-1) constant for setting initial device node. Instead, use
the generic NUMA_NO_NODE definition to indicate that "no node id
specified".

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Link: https://lore.kernel.org/r/20211004133453.18881-1-mgurtovoy@nvidia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:42:22 +02:00
Rafael J. Wysocki
5771e582d7 ACPI: Update information in MAINTAINERS
Because Rui is now going to focus on work that is not related to the
maintenance of kernel code, drop the MAINTAINERS records for the
ACPI fan and video drivers that will be maintained by Rafael along
with the rest of the ACPI subsystem.

While at it, change the information regarding the Len Brown's role in
the ACPI subsystem to "reviewer" to reflect the current status.

Signed-off-by: Rafael J. Wysocki <rafael@kernel.org>
Reviewed-by: Len Brown <len.brown@intel.com>
2021-10-05 15:41:51 +02:00
Arnd Bergmann
efa767b372 i.MX fixes for 5.15:
- Revert cc8870bf4c to fix the regression on i.MX6 that suspend
   support becomes broken.
 - Add `qca,clk-out-frequency` property to fix Ethernet support on
   imx6qdl-pico board.
 - Re-enable FB support in imx_v6_v7_defconfig.  It gets lost due to
   f611b1e762 ("drm: Avoid circular dependencies for CONFIG_FB").
 - Fix LP5562 LED support on imx6dl-yapp4 board.
 - Add missing pinctrl-names for panel on M53Menlo board.
 - Fix USB host power regulator polarity on M53Menlo board.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmFMHfQUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM7QUwf/dO+FrGSWlVxHeG/oKMb6iQqZs0zb
 40F68OYCF+ucGJlwAkErnLcqxtC7rD8NHsGvxnXMbTNlhtjl5USw0tIki+3cw1EP
 LggbTjlOCRDLnF2YmWfXN+hLz5On38TG9TvvWt8x2CBO9WXgipaG8JHCCsxdXZus
 vk37hZSAlwqmkXHHDApBMsMTqma8ZlDRELrgnXeHL53pYFDxKWoOhL0WHvvZ+kFO
 I3lnIB4FdAOgm+EoAAW2s6v/IJobhC19KoKBrtf3FRo6KQk5A6L8T2CFPMkL0cFf
 zJboFIOmwMnw00O44RWKDPWDQKKMZYJubj+zHaAnUFRfg4D9KKSDQApffA==
 =oDbx
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcVfsACgkQmmx57+YA
 GNmUehAAr7UZBN5CH87GjCp4bzDir3tVgKA1xpGaixsk1DgfweQujxvLcVfsb2OX
 rFJuxsMHg2Yhfya73gq4aAHFY0BX0rkgQQmtrQluU1vnHDzzCZsdEdJEnrUg7OdQ
 x5E/nbG8AumoLxrVKPPvP/fYINB9LTHj+EFj5OpF0psyakGE+G3r2pZuea2sB45l
 dOm8L+b4vgT5VfgPRy3l+7sc1orYMJ6C1NaTMELRSaVl9HjSl/r3grC7oahT+dam
 zFWwFQoM0WJDru05utbmrWx0z4oeMt+nHY/kuMMbTRsqioqYaTin+ZBiyJxQilUf
 5Gy6cZZPE6p8CpNoImQgzVCezwS0g1Jm6/SYafytnhpKSAiHVhcSErL2hbWLS0PV
 2ysxj/vxLHszII7yQnJbyfZJO76oT5uOnaJFzMySrPhgW1FKWv8v+c3f/Tf3hf3y
 SyMdpw7pv1LaY4HB+hxw8GRbGMOOXkanGNjlgb1jr2KNRzC+U+1HYui3Lxq+0HRY
 lPlkavMGrAGHDayd4oSQ/T44+0QfopXIG2Njnu6cV2ekzoJhcnDHVwJs+4eiRqVL
 DWcX4DjRBg1SaAW/F55h0ja8j3Pe3hP1afA7G4HyyhG0maPdUreqg0vdNaQNYk4m
 F6BFeYSRHlVJQIne6CO9wgEhhYK7007tRJacNKU1XAtNMsiyDdQ=
 =giT+
 -----END PGP SIGNATURE-----

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

i.MX fixes for 5.15:

- Revert cc8870bf4c to fix the regression on i.MX6 that suspend
  support becomes broken.
- Add `qca,clk-out-frequency` property to fix Ethernet support on
  imx6qdl-pico board.
- Re-enable FB support in imx_v6_v7_defconfig.  It gets lost due to
  f611b1e762 ("drm: Avoid circular dependencies for CONFIG_FB").
- Fix LP5562 LED support on imx6dl-yapp4 board.
- Add missing pinctrl-names for panel on M53Menlo board.
- Fix USB host power regulator polarity on M53Menlo board.

* tag 'imx-fixes-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: imx_v6_v7_defconfig: enable fb
  ARM: dts: imx6qdl-pico: Fix Ethernet support
  ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
  ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
  Revert "ARM: imx6q: drop of_platform_default_populate() from init_machine"
  ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe

Link: https://lore.kernel.org/r/20210923063356.GK13480@dragon
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:41:15 +02:00
Linus Walleij
a694905931
ARM: defconfig: gemini: Restore framebuffer
The framebuffer is gone on the D-Link DIR-685, restore it.

Fixes: f611b1e762 ("drm: Avoid circular dependencies for CONFIG_FB")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Cc: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210922200933.1825752-1-linus.walleij@linaro.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:40:52 +02:00
Arnd Bergmann
b9af50bcbc ARM: dove: mark 'putc' as inline
This can cause a randconfig warning without the 'inline' flag
that every other platform uses:

In file included from arch/arm/boot/compressed/misc.c:29:
arch/arm/mach-dove/include/mach/uncompress.h:14:13: error: 'putc' defined but not used [-Werror=unused-function]
   14 | static void putc(const char c)
      |             ^~~~

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20210927095343.1015422-1-arnd@kernel.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:40:38 +02:00
Arnd Bergmann
94ad8aacbc ARM: omap1: move omap15xx local bus handling to usb.c
Commit 38225f2ef2 ("ARM/omap1: switch to use dma_direct_set_offset for
lbus DMA offsets") removed a lot of mach/memory.h, but left the USB
offset handling split into arch/arm/mach-omap1/usb.c and
drivers/usb/host/ohci-omap.c.

This can cause a randconfig build warning that now fails the build
with -Werror:

arch/arm/mach-omap1/usb.c:561:30: error: 'omap_1510_usb_ohci_nb' defined but not used [-Werror=unused-variable]
  561 | static struct notifier_block omap_1510_usb_ohci_nb = {
      |                              ^~~~~~~~~~~~~~~~~~~~~

Move it all into the platform file to get rid of the final
location that relies on mach/memory.h.

Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20210927144118.2464881-1-arnd@kernel.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:39:50 +02:00
Yang Yingliang
df0a181494 driver core: Fix possible memory leak in device_link_add()
I got memory leak as follows:

unreferenced object 0xffff88801f0b2200 (size 64):
  comm "i2c-lis2hh12-21", pid 5455, jiffies 4294944606 (age 15.224s)
  hex dump (first 32 bytes):
    72 65 67 75 6c 61 74 6f 72 3a 72 65 67 75 6c 61  regulator:regula
    74 6f 72 2e 30 2d 2d 69 32 63 3a 31 2d 30 30 31  tor.0--i2c:1-001
  backtrace:
    [<00000000bf5b0c3b>] __kmalloc_track_caller+0x19f/0x3a0
    [<0000000050da42d9>] kvasprintf+0xb5/0x150
    [<000000004bbbed13>] kvasprintf_const+0x60/0x190
    [<00000000cdac7480>] kobject_set_name_vargs+0x56/0x150
    [<00000000bf83f8e8>] dev_set_name+0xc0/0x100
    [<00000000cc1cf7e3>] device_link_add+0x6b4/0x17c0
    [<000000009db9faed>] _regulator_get+0x297/0x680
    [<00000000845e7f2b>] _devm_regulator_get+0x5b/0xe0
    [<000000003958ee25>] st_sensors_power_enable+0x71/0x1b0 [st_sensors]
    [<000000005f450f52>] st_accel_i2c_probe+0xd9/0x150 [st_accel_i2c]
    [<00000000b5f2ab33>] i2c_device_probe+0x4d8/0xbe0
    [<0000000070fb977b>] really_probe+0x299/0xc30
    [<0000000088e226ce>] __driver_probe_device+0x357/0x500
    [<00000000c21dda32>] driver_probe_device+0x4e/0x140
    [<000000004e650441>] __device_attach_driver+0x257/0x340
    [<00000000cf1891b8>] bus_for_each_drv+0x166/0x1e0

When device_register() returns an error, the name allocated in dev_set_name()
will be leaked, the put_device() should be used instead of kfree() to give up
the device reference, then the name will be freed in kobject_cleanup() and the
references of consumer and supplier will be decreased in device_link_release_fn().

Fixes: 287905e68d ("driver core: Expose device link details in sysfs")
Reported-by: Hulk Robot <hulkci@huawei.com>
Reviewed-by: Saravana Kannan <saravanak@google.com>
Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20210930085714.2057460-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:39:29 +02:00
Konstantin Komarov
cff32466bf
fs/ntfs3: Refactoring of ntfs_set_ea
Make code more readable.
Don't try to read zero bytes.
Add warning when size of exteneded attribute exceeds limit.

Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
2021-10-05 16:39:25 +03:00
Konstantin Komarov
d81e06be92
fs/ntfs3: Remove locked argument in ntfs_set_ea
We always need to lock now, because locks became smaller
(see d562e901f2
"fs/ntfs3: Move ni_lock_dir and ni_unlock into ntfs_create_inode").

Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
2021-10-05 16:39:24 +03:00
Konstantin Komarov
b1e0c55a40
fs/ntfs3: Use available posix_acl_release instead of ntfs_posix_acl_release
We don't need to maintain ntfs_posix_acl_release.

Reviewed-by: Kari Argillander <kari.argillander@gmail.com>
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
2021-10-05 16:39:17 +03:00
Rafael J. Wysocki
fa1a25c51d PCI: PM: Do not call platform_pci_power_manageable() unnecessarily
Drop two invocations of platform_pci_power_manageable() that are not
necessary, because the functions called when it returns 'true' do the
requisite "power manageable" checks themselves.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Ferry Toth <fntoth@gmail.com>
2021-10-05 15:38:05 +02:00
Rafael J. Wysocki
6407e5ecdc PCI: PM: Make pci_choose_state() call pci_target_state()
The pci_choose_state() and pci_target_state() implementations are
somewhat divergent without a good reason, because they are used
for similar purposes.

Change the pci_choose_state() implementation to use pci_target_state()
internally except for transitions to the working state of the system
in which case it is expected to return D0.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Ferry Toth <fntoth@gmail.com>
2021-10-05 15:38:05 +02:00
Rafael J. Wysocki
bf39c929f9 PCI: PM: Rearrange pci_target_state()
Make pci_target_state() return D3cold or D0 without checking PME
support if the current power state of the device is D3cold or if it
does not support the standard PCI PM, respectively.

Next, drop the tergat_state local variable that has become redundant
from it.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Ferry Toth <fntoth@gmail.com>
2021-10-05 15:38:05 +02:00
Arnd Bergmann
6147eb53bb Qualcomm driver fixes for v5.15
This restricts the QCOM_SCM driver to depend on ARCH_QCOM, to reduce
 it's presence after becoming a loadable module.
 
 It then fixes a regression in the mdt_loader, where firmware with the
 hash segment marked as PT_LOAD would no longer be accepted, preventing
 several MSM8974 and SDM660 devices from loading remoteproc firmware.
 
 Lastly it corrects the drvdata associated with the socinfo device during
 probe, to match that expected by the remove function.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmFVJj0bHGJqb3JuLmFu
 ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FvDEP/iON76XThrTEUVeNGSoj
 19UvpdYhdZuD81H5hHxyqQR1MA2GODoYRzvp3UiWxvJbTN8a3TGX+67O1b5Pe+1g
 CtauaLgUpi8OzariDrLUomvxco1D0Gpmoi1eBmwGD88ZDxnH12qHrvTlezm9NDNa
 GvIdSPBh5ScbICtWQlNu5aYQDlXYLOF6tV85jSdsuA3pGiDtgOriHMwZqVsgLaRG
 ARvvBMPCt3876wEg2mBbLSay/69KHUIGEa8n/j0+oaiGQBlCg3VGKHzUPtwBotpw
 1vPJz3QBg+kJlCAVqv2c+vnTllRwZkpZv7uFteu5IQsnqaRQa3a6OD6G2ywaKDtS
 1wbHTb8cCjLhUU+P1bUXpQwjrB4g1r0OroWiAMA0zK1yf8Qe5RfYfZ8uOkviHhS0
 6dZbHm5i9B2Tj+aCva4BLTTqGUy6Ui0IR8QGo4C437EvXHPVNEYo7xlX2LCN3+31
 zBW9LmGDLbABbRmxi6Xb66JPwlt6RKzNfUxNCEtUiVSrVUEHnkaiqrZ2Mx+2c2iV
 WyrmqPE2oLN5yBk1rfgoZ8klHAcaCZ50/WDIHADyIlxYclW7MybEWAhRrBx8Strj
 V3bj23ek2c0OvZ92FppeFH7xChEzPyMdigoVybOb7LkhJUI7AiNgWS21T55AuR+2
 XdOLoj7vFBkQBiIWGTE/n4rT
 =c3Iv
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcVTwACgkQmmx57+YA
 GNl7IhAAj2kkD3PKGfeonFoYThA3G0Fze8j/cJ9cjNnrIJWtly7dAR6CYgbcVzjk
 0jCZl6+OUJAyNN06mDU1aeWNw56iUvLfNyRonHHqIY6uDerYlqme17DcAmTeHS20
 1+wdWGRDZjHmat1gqwtDojxVw+vmYbv21oVm80JaxgbR1ZBpZcrU47j1w5aXV9Jy
 LaehiomJ5LgS1sSpdh8sNq+we7+zuwJV2V4ERR9mIdOWrpD2+nPTVPNMR5tn41ei
 tKl672t9JcbpGaS3h6KDjIGZM5kEJSJyjBlBqgVagHoLebnvaRrugqcBpbGqbuXR
 YkfA87cnMBene0JjO12Ms1S7B2zqKmAUBZQaTwT48SEroE2hfCCos98MYKlMFulU
 GoJoMPN/oCJ9PfOOXcCCC2yaKHc9yDxklWbImVBnl41Lzg6rAFaw33wFdC40jV2X
 bLG3yFeFZpCTM1xpbE3rhC1ilu89/iqQ2ko+ggD+Yl74Sx5qfP/2UxGAY+AqeMdz
 mkRKTMaZIBWOLWPH/tNRxefmOOWzD27gzcelJLc7NG6Zc9/pifXNQ0sRyM0I8uYA
 +RyzToJrguwyfSzL7EdxrGn9HrWFtx1olYpD69VH+XzHHYPsLLc+EzyNFIQgNPvT
 MwvCimWl2NqR/w4bZJ3Az0Mfkk61bOdYjrNrxdv3ndImrZhEbbM=
 =x5sv
 -----END PGP SIGNATURE-----

Merge tag 'qcom-drivers-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm driver fixes for v5.15

This restricts the QCOM_SCM driver to depend on ARCH_QCOM, to reduce
it's presence after becoming a loadable module.

It then fixes a regression in the mdt_loader, where firmware with the
hash segment marked as PT_LOAD would no longer be accepted, preventing
several MSM8974 and SDM660 devices from loading remoteproc firmware.

Lastly it corrects the drvdata associated with the socinfo device during
probe, to match that expected by the remove function.

* tag 'qcom-drivers-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  firmware: qcom_scm: QCOM_SCM should depend on ARCH_QCOM
  soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
  soc: qcom: socinfo: Fixed argument passed to platform_set_data()

Link: https://lore.kernel.org/r/20210930025456.1035-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:38:04 +02:00
Arnd Bergmann
04e0ae8d2b Qualcomm ARM64 DTS fixes for 5.15
This starts by reverting the SC7280 CPUfreq update, which was merged
 before concensus about the associated drivers changes was reached.
 
 It then moves the reserved-memory changes done to get IPA working on the
 Lenovo Yoga C630 into the Yoga specific DTS, as changing the memory map
 on the platform level did break a couple of the other boards.
 
 It fixes the HDMI audio on Trogdor and add missing Aggre2 NOC qos clocks
 on SDM6{30,36,60} which prevented some boards from booting.
 
 Lastly it enables the PON module on SM8250/QRB5165, as the lack thereof
 is blocking automated testing in LKFT.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmFVJG0bHGJqb3JuLmFu
 ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FERkQAM3FaUFBCPGOTfUUrn0U
 3SVgzk2i6z+lw3YKWXxsx0248aGwHQX2+DgvnPdP7Fr2B+TVYZFP/bIXLQoL2OFP
 F05g1dXsLxEBsCAt03DrJc6mLDBFVl3qdgBySqtWTjpIaV3lqlR3YBazxxltKWcW
 pFh2fqAZVhaUgP4Di+4CCyW5I87rojnEIRzZ4e/AHF64+96dpjumzjBCgE/azki7
 m981qvT+q4EyErVY83kkwc7B4hDmCoMxqKbFhQCfbw3TbogT8Md6ZZwJUskP5Ku9
 1ILcO7U2fW2PVeqL6cvzxbIkxEYGVeHxoLK1Cw90z5ChOYK5EEH1IPkZ+P6x0mhN
 3SDI0Yl5HnZ1PpLRXMcNWcID7qARN/ZDajP+u48d3cOHB8KeJM7eAQ1mDeAT7/HB
 vFMTQiqiosqSknEoHCI6mtMtZ+mq6CelDEH3Lr0IjK0siH80yfirCcNpWqDTlmmq
 Z9+bFl32unChO1VVAoH+/hTydyFkue0rNG8dvub/QrGZPbVBzKDaDsLIWy1EavgU
 C65uzihAHzywUfGq+iCgqANIsSTld9qS6Q2fNLg9JKkXNTzcpAd6W8kK/SYSId1p
 ozXU8z85PFHEcd+9MbJLL4K1vJy7zaoUU2l0vyrv2zxR2f7oHZODuN/8Sjh5HawF
 bvyXXiQVQjqnBO4yBuuXGZ3/
 =QK4n
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcVP8ACgkQmmx57+YA
 GNnaShAAjz6TDZZTGWga9CVadv6uMOstX/4XQ2sTfvUT3avEP8gJCA6VwffmanBl
 PQSCslzL9YZn55nH9DXd9CAGTtp/WG75ENNoIUr8x/fsSi/Xd2XYnGcWG3MHWSxm
 kn03S1mK+QLKmV+K7IUYL/sGrjDQfMDTxHhUPULvtI9DAvdL94hRpPEl6YSJgUSZ
 bxiK805q3/biQxCmQ6mzTvRxijbb7fEJ5cOTr4gZKGadtiW4NpNFQgRTnBTN9As/
 caGKNcpbEEpddrwdJIwk81ppx6nlNP6VmfYmOc1FJfQKSZNCYRxA4atngKE/WBsr
 O8BEj4JlUFGFx+oL6DgYyq873l5yhGTJb09pq4WU2m/mAFJBV8uEEYrumWgoK3mE
 XT7Pluh9uFOojjDPMzLLd2JHKjQm+aBzXwBqtyemp6we9iR8oL1QvPq6ajHEHelj
 Y4IByE64DsfjAmX4CrpMmLSC1NiOP0Zy18ehTijlcpArfmCdDi9919sm1OQtiWwB
 fNCU1nx/Wu/W1EDzY5rAWedlDa6NqA/gL1kx/OzasQMbC8VTPAtRM/bhZPj6vrle
 nfkhsjKsbof+lxQEyS7VUwYN2Egy/K3YjVHmqckAF4aej6i7ZFeYGdQ4NLp5aPzl
 Mm2yhfh7eT47UdhKeRyGhhdAsPItevrQyvgTxWfgkyYpA15L/eg=
 =lLJz
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm ARM64 DTS fixes for 5.15

This starts by reverting the SC7280 CPUfreq update, which was merged
before concensus about the associated drivers changes was reached.

It then moves the reserved-memory changes done to get IPA working on the
Lenovo Yoga C630 into the Yoga specific DTS, as changing the memory map
on the platform level did break a couple of the other boards.

It fixes the HDMI audio on Trogdor and add missing Aggre2 NOC qos clocks
on SDM6{30,36,60} which prevented some boards from booting.

Lastly it enables the PON module on SM8250/QRB5165, as the lack thereof
is blocking automated testing in LKFT.

* tag 'qcom-arm64-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: dts: qcom: sdm630: Add missing a2noc qos clocks
  arm64: dts: qcom: qrb5165-rb5: enabled pwrkey and resin nodes
  arm64: dts: qcom: pm8150: specify reboot mode magics
  arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
  arm64: dts: qcom: sc7180-trogdor: Fix lpass dai link for HDMI
  arm64: dts: qcom: sdm850-yoga: Reshuffle IPA memory mappings
  Revert "arm64: dts: qcom: sc7280: Fixup the cpufreq node"

Link: https://lore.kernel.org/r/20210930025509.1091-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:37:03 +02:00
Arnd Bergmann
2ecfddb105 Juno/Vexpress fixes for v5.15
Bunch of DTS fixes to resolve addressing issues with some of the device
 nodes, dropping unused/undocumented properties in various nodes, and
 aligning node names with dtschema.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmFRoAMACgkQAEG6vDF+
 4pg36hAArryRAl9lXly7K6DMK5CmUaRfrwrq+ZRd3Ay/ot3qXjwHenrUtYa5Qgjl
 gzk7O/i/nUZ8snTsf8d6LaI/XBpYIAXiB/VNrFEK+SrejU48h8k+oiPTo8nFcdv7
 HaGtGrAcHRLaQnDnAnpdH/jvUiWSmwItAiHZ15Z5pYjQJo+WOR6MtSCIM//y7755
 1dxLhrKboofs0UN/uTKQnf+3e7tMtFYls7dhGZqx/BPer+EPAiBduxSqfOU6qC0D
 ncgjkXA/ixDCYzbfWorGtYeNEPjQ1+25Eo+miLfD9VSprLtABUhY5mpU6OZdTMLu
 AD498p/14YODD6/iKFWuwxOv9tusVnLYKbCi7f2j2HFNvHo0DvAF+f3wOuvvk6VZ
 euO0ZL9wi8GtuL8ucQG0BEZqowYySOT11O5q3VFdF9Z3hNT3VH01FEJxfSYnuigw
 FGKpW/F34iVUqoN2pfBEoS8TGp8bctrcH6GYNrMc+I+WBvq5oCGXPPxEO2wioYQj
 XxuU2kzAmztkkVnUpzItz+p1uQoyq8FpAhlJHlpRTJ6yD5ADdPJWPko1yKjP82o0
 esZDmwmW86guanC2iCVceijwXl0URlULrp45ZRITnxBxoRYKHu3oikG3xhghEU+d
 5wVtFWYCiERsHqCcHBA3MtD3sJ8iSouQ4wi/deWYOQg7yemvL6c=
 =t92O
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcVMMACgkQmmx57+YA
 GNno/w/+Ore7cFcGJmHnarzStAuf4a1xO62SFVp0vCpxPCDbB8HROOqejjtLZlkZ
 tA2TqToVfyIIkhxddJgpmU3HDyjTI+79pu7/TWbnL2m22l+HH1HYOn66PQra8Omg
 GDgrfYc5wb7ijAcOxyNNy5o4mB3AqksbW6AgE+AMlbZftiaTRIM/pNxkA5xfwcUf
 1Hm1gRvatzegdginF54wCkaKb4hrfEvwQUQHqGcQD8rK8BL10ue2vHBVTvCVESyi
 6daMi3KjKTo/3kKd0LmFG/Z9Z6kYvDq0K0Zkz9tFLpX1FesoMy0nNTf0sIWt5foP
 WSgTOnjOu660kRqBqMuMWF/M9D58zyPA9CjTv43gIkEPttKbh65H3JUJF5AdiBDc
 zkisF5AuXolbJmNfJE0mZRI5gtIYSDTCqOPgMCz0g5HOcaeU4DGXz4Pc3t5PFmRK
 7LlDyWruesblCe41Ry2sdAlfSlHMQ7Nz2+b4oDK6SmtxGgAEL7Kg29nWarCkNdpH
 EEmg/ZmnBPmZEBFKivwPXJoLsR810mmDYP8JBUuaIjr1l78i7FS3PP8jWdcy9KCQ
 222dvYJSDJ8Aack7TileX5/Dgy/5pCgUmzAbQymadhmZGVQ2ck35jDSzW3y1H98y
 iYrOHZEreuspCXb4ruLAxeTanrJStHg1+EYSgLDXutQzt4Gr6Ek=
 =YUKB
 -----END PGP SIGNATURE-----

Merge tag 'juno-fixes-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/fixes

 Juno/Vexpress fixes for v5.15

Bunch of DTS fixes to resolve addressing issues with some of the device
nodes, dropping unused/undocumented properties in various nodes, and
aligning node names with dtschema.

* tag 'juno-fixes-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  arm: dts: vexpress: Fix motherboard bus 'interrupt-map'
  arm: dts: vexpress: Fix addressing issues with 'motherboard-bus' nodes
  arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address
  arm: dts: vexpress: Drop unused properties from motherboard node
  arm64: dts: arm: drop unused interrupt-names in MHU
  ARM: dts: arm: align watchdog and mmc node names with dtschema
  arm64: dts: arm: align watchdog and mmc node names with dtschema
  arm64: dts: fvp: Remove panel timings

Link: https://lore.kernel.org/r/20210927105249.3583380-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:36:03 +02:00
Arnd Bergmann
c147392b65 Qualcomm DTS fixes for v5.15
This corrects the use of depricated chipid and clock names, for which
 support was finally dropped from the driver. It also ensures that the
 DSI PLL is fed by the correct clock, now that it's being migrated to not
 rely on global clock names.
 -----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmFVI2QbHGJqb3JuLmFu
 ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FFUwP+wX+3kpgbggkS3i1WkX7
 A2TKXn35FSbn6co3GLcC8vdtsdAuXo+zdGGvRqScXa2hOIN255hpPCkuPwNr8jlP
 OO1VvxSthrLqnv20iKJGuWjw1UNiGHf8yy1ifPYNXhCWuuQfdpKXZJJNT36sskx5
 cVbMzayUwKyswmGYKvLPCmRZbcuvHq5FUPz9f9OZFxwRBsvL91tDMDPUlPXL3Xb7
 i0Y9sYy1U2sUC9O4NTCEOMO8KQWj5vGgHQ6J/26tIoPfs4dw6NdjLoXHDESi2tlT
 rabNHImvvFkT4/KxIr/Z4STyR5q34Q5miuvslQToCe6DvARE0wP+urlDTngXJe5+
 5UxTYGmZ3hQe+khy+gCJ6VFQU6v2R0YiU+/UvvXJquPkppP7JccX8SrV5FVd6oc7
 zHs6Oej6MSjgH738oqB4d4M8o3Bgo+2vTtNM0N0S6Ccn7GRtaLXsJtQ3cKwZlyAt
 lfrPEoMEAsGXRu6afNidRKv2MF4KCtMKp09ZjyztWJXH4mqN/0h5uAK4Bz8xhGuq
 B3MPjOsRl8pOvszW+mG9Efc5cJt2W+fWH4ZlYDBcEywdTCHD5gLakKFQW8iIxLZb
 QCTkfc+qfjBQMGiFmVJnjj0TxPf3IkCuh8Es397pJxG1Nrj5h8ghazTd51Xvg3/w
 VDilbU0R/0paKQEts4riKmZv
 =xHHw
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcVCwACgkQmmx57+YA
 GNkpEw/+OgfIFF/1v9TYSMEIuQLZGpyXu2Efp4bj9hroO9IPZ778ju5XPetp5s6s
 QVZUMWKyFRRKTCn5MHjx15fKrQiW5UhZXPZiXXee9UiAH7/v3o5ZpC0/YEy7rDf/
 qzMyxj623h7zqIYGGpn/DSh9xbdgoHnOU2WXv0xR0Vkkdq+cwLP9684gmtXpl3yY
 KBE5lopoKqortsA1WAxdqKNg1KC9QUvITDZ7J0cNVp4q3BwvxkVDT0/E+vsTbCuy
 OPgdP0BE45XqzQvPL2MqIyTAk8VgTWZ8mAtcIM5wdYGS1n0s7v2tspFCd8PWkfL0
 KBmdojBL//vp7xxzvVGqzwFAfnlnHybnnAeoosh18fKbyKRZ0DNasM8Fiq7PpNKY
 HFy01WYgZGNRFSdXP0Lgwn6iS7Ksf8+H+lUTT1C9hPRse54XCmbclqj46GsoP71w
 o1rC2OafSiUD2LKK4DJA9l/Ygk9a0uj0nl/zBwS/ROYvRu7v90cQtTVI6Up5NC/B
 09Viyntbn5Hh//Wh8QFi7gc38QGwrjqXOUvYXA9vv3A1xdoilodLrD8glz+gMm/W
 +BdhSnSMOIe8dkL5sZMED4Oj1WQggvOpH2jfNRLr0630xAc9A5TDyOmgreRnAC2G
 SyJ18zGfyWQVnwIdDkcFtoVrI2x0/51tpD+Ur5AYIp17oFaxsIY=
 =C1Zc
 -----END PGP SIGNATURE-----

Merge tag 'qcom-dts-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm DTS fixes for v5.15

This corrects the use of depricated chipid and clock names, for which
support was finally dropped from the driver. It also ensures that the
DSI PLL is fed by the correct clock, now that it's being migrated to not
rely on global clock names.

* tag 'qcom-dts-fixes-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  ARM: dts: qcom: apq8064: update Adreno clock names
  ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
  ARM: dts: qcom: apq8064: use compatible which contains chipid

Link: https://lore.kernel.org/r/20210930025526.1146-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:33:32 +02:00
Arnd Bergmann
325c81e3fd AT91 fixes #2 for 5.15:
- More fixes for AT91 platform power management code related to the
   introduction of sama7g5:
   - management of DDR3L regulator rails for sama7g5ek
   - loading of TLB on different cores
 
 - PIO controller slew-rate settings for sama7g5ek: be aligned with
   datasheet requirements.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ5TRCVIBiyi/S+BG4fOrpwrNPNDAUCYVrmgAAKCRAfOrpwrNPN
 DC+cAP4xdLuKn1ClN3SVVutTuw9V0gRntjjcNhtWtJMl5RBxoQD/aD7cqFJZbAJA
 FP6nrsy7RYfXLQv87Wm/v5xsTi5Ctwc=
 =x2my
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcU+8ACgkQmmx57+YA
 GNnxeRAAvlG4HA7w9eQ9qhbqd8rh+tOJpXDzhL9M6bDiPby/34k1Mi0Tu9+/CbRQ
 vZj8KCIFLTUWdraESpLHnAuwYG6nqpW6uN+EPMPpMXaLPyPajzJb2jSMDWBSWUNn
 5GuE5pfgsJBC8dK3xy7eiI/AC0+m83K6slkE39jk4WbbqFDAaO+/ST96cW7Th7KI
 NOxnvTjCqzTpwxyi0r90vZ1bRbiPN0NYqNYt/90EliPGFZ6z4BJHPBf9bEzbiepd
 Hhvmlum7iaPIahLCCRTH6cOJruSyKDGWD0QaLx6rlX06tDQI7CueJiD4X2kKginm
 tSSu8PsVwjMDS5tQtuPfmyralTct78l6O2+25TJ/Bc90FUxi79AF3W9Ii6jyxof8
 3fXhVx5n/uUBkU77ri7+/qbVVlz+0J7qpowRB/W9XKCrkXgS7LG7Nhpdv7GFBWeT
 u8F+eLkJwqvwP7Dn9uDRzQfHlQJr2yA9T1rjl4mlWD5P7yam2uqDb3RAlNrk4uZh
 tTtRhLCOPD2QrEEslqCfqq5Z0c4f0FLYN3uAWZxVkQLfBDru7UopNjQZ/uuxvh2q
 bbAU3h08f6ePJRUJ2meT61ByLKTnF0Y3bW/r2+e6mVoHkRu64jIHDP9UQmMT6fTa
 i3rwTXqABZpIyrmcph8qAmyBSHB5WqXoWRCJEH732UPUkUJdIPQ=
 =8NKm
 -----END PGP SIGNATURE-----

Merge tag 'at91-fixes-5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/fixes

AT91 fixes #2 for 5.15:

- More fixes for AT91 platform power management code related to the
  introduction of sama7g5:
  - management of DDR3L regulator rails for sama7g5ek
  - loading of TLB on different cores

- PIO controller slew-rate settings for sama7g5ek: be aligned with
  datasheet requirements.

* tag 'at91-fixes-5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: dts: at91: sama7g5ek: to not touch slew-rate for SDMMC pins
  ARM: dts: at91: sama7g5ek: use proper slew-rate settings for GMACs
  ARM: at91: pm: preload base address of controllers in tlb
  ARM: at91: pm: group constants and addresses loading
  ARM: dts: at91: sama7g5ek: add suspend voltage for ddr3l rail

Link: https://lore.kernel.org/r/20211004114344.19304-1-nicolas.ferre@microchip.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:32:31 +02:00
Nishanth Menon
dd6a2ed801
MAINTAINERS: Add Vignesh to TI K3 platform maintainership
Add Vignesh to TI K3 platform maintainership. We will rotate roles for
each kernel version to help spread the work load a little better.

Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20210915121308.26795-1-nm@ti.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:31:52 +02:00
Arnd Bergmann
f81fd21476 Fix OP-TEE shm_pool lint warning
-----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEEFV+gSSXZJY9ZyuB5LinzTIcAHJcFAmFB18waHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQLinzTIcAHJfBbQ/+P4A36HbemyujbgGwR9WM
 a6Yp4cjWZj/yelv0/71vpZb9Ly34eGkSoaBOCUd5HuOq58tRmWm7cyPtK2O8EwhY
 a2aAc2mcTFvzRTRJHoaBlPAj4DlOpEybJaSIvU04AOZKhaVtgPJsthFphJ417c98
 +WrBWLVa/Y1u7/wX2yqKrjJB0QNJnqpWnX4mNlwL0b0TINZ+oBsaN7iP3EWGz/rC
 oWB8GKnVHikb0Qk27xLcpcgC2FKFXPtXBpT3Xs/oIBKvmcONzkp2hm8QiFW1pQdJ
 fl7d606utkg9hONSUZj6xM3f9zmqHzR47FCs+Wgp41G+YNjVuvjK4c2+l7KbjtRe
 tYMAFeRIHkEXkWrjhe1eE8keXMGrxeUoxgjZpZP0Xue9A+H0k8M9FvYdjlPOgU8q
 L7ttXqiMN33ALd6DxRGRmYmMYRKG56cXS0vMVEK0sceP9HAsSZ0gvXC7ny/jaFY/
 9TUkSvhHaWw5SWQRvkwI/ZoKDpyKP2UZTRD1NOOJcwFatlpu4JBrLE9QyiAIz2/s
 yLjp4KoZzsA7vSIfpdrHLWKRxrP1mf5D6nIvYNT9l5sohPnPV1xf05JkpZ3pkwTX
 M4MsSMP1WW/Qdanv41Bxg1MzvBMqErjVkerOGnQlunDg6QG3EVODB7nHq5h3ECgE
 S193iaOuLlNc76gmOCBfWnw=
 =htLP
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmFcU4wACgkQmmx57+YA
 GNlAxA/+OTYyhxb8FiT1tHqPnO33oA8Gf5XIz/T2uMPKj8uY89Rcrf/rwAFUjMYa
 DgtlsXU0ncP3UpbnqEdY8DyoxyVYglHMJZYUCXH25Wvz7ixY6H/5sRy1885hoZoy
 27vcFtjoUIM8AgkX11eWPBVDcP2kcRwsq9vMcap2tTekxlmkds6gDyK/l3WyM9M8
 zJdlMwdVLok50u3anOk99YyZJu2fPa2n+7hIg1W5fm9gUhzvO0Kt0XrbbEK95CRZ
 +iRT6VpsQZUtxln8czW7suxMsiQshr1EmbDYCiiSmeYrobjh4H6zhwSPQdGIs1Mx
 6yngZCfJjNtBa+ExujnFbwUYTIpvpN/8yAE/7gT/BzjVQLDvyFpqF0JjdEjbTxTA
 IkaIDHS4naM/FobgXuK3XkoKeQQAtkFBnizPi1KgAdZWqJAFudxWeR3tR62pyTTJ
 S3SQWDNDgjMpr7rmFtwMbAYA7CiffVnKQGw8uoTkAz4e06Tu6i/3hRu7fuu6F/oU
 8cvL0u4cnm/IIZ8wwwIfOn6IJqN1b7H+rSt4hI92NaZv6u2307X238Nuo/Nh6rEZ
 4MFL37gxSbsS/x0JGSnYSfuJryGnKOTylXIIiSq4OJtaONLBE/41lGYEOkQ0W0Xd
 vHYQrAKRncSmKDS+ZrW3hrOpRR9QVbHA4RzEPqT3vORjjLfGCRs=
 =66au
 -----END PGP SIGNATURE-----

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

Fix OP-TEE shm_pool lint warning

* tag 'optee-fix-for-v5.15' of git://git.linaro.org/people/jens.wiklander/linux-tee:
  tee/optee/shm_pool: fix application of sizeof to pointer

Link: https://lore.kernel.org/r/20210915113813.GA509196@jade
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2021-10-05 15:30:52 +02:00
Srinivas Pandruvada
57577c996d cpufreq: intel_pstate: Process HWP Guaranteed change notification
It is possible that HWP guaranteed ratio is changed in response to
change in power and thermal limits. For example when Intel Speed Select
performance profile is changed or there is change in TDP, hardware can
send notifications. It is possible that the guaranteed ratio is
increased. This creates an issue when turbo is disabled, as the old
limits set in MSR_HWP_REQUEST are still lower and hardware will clip
to older limits.

This change enables HWP interrupt and process HWP interrupts. When
guaranteed is changed, calls cpufreq_update_policy() so that driver
callbacks are called to update to new HWP limits. This callback
is called from a delayed workqueue of 10ms to avoid frequent updates.

Although the scope of IA32_HWP_INTERRUPT is per logical cpu, on some
plaforms interrupt is generated on all CPUs. This is particularly a
problem during initialization, when the driver didn't allocated
data for other CPUs. So this change uses a cpumask of enabled CPUs and
process interrupts on those CPUs only.

When the cpufreq offline() or suspend() callback is called, HWP interrupt
is disabled on those CPUs and also cancels any pending work item.

Spin lock is used to protect data and processing shared with interrupt
handler. Here READ_ONCE(), WRITE_ONCE() macros are used to designate
shared data, even though spin lock act as an optimization barrier here.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tested-by: pablomh@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2021-10-05 15:30:44 +02:00
Rafael J. Wysocki
f091837121 PCI: PM: Simplify acpi_pci_power_manageable()
Make acpi_pci_power_manageable() more straightforward.

No functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Ferry Toth <fntoth@gmail.com>
2021-10-05 15:26:23 +02:00
Rafael J. Wysocki
98634aa8d8 PCI: PM: Drop struct pci_platform_pm_ops
After previous changes there are no more users of struct
pci_platform_pm_ops in the tree, so drop it along with all of the
remaining related code.

No functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Ferry Toth <fntoth@gmail.com>
2021-10-05 15:25:06 +02:00
Johan Hovold
cb2282213e serial: 8250: allow disabling of Freescale 16550 compile test
The SERIAL_8250_FSL option is used to enable a workaround for a
break-detection erratum for Freescale 16550 UARTs in the 8250 driver and
is currently also used to enable support for ACPI enumeration.

It is enabled on PPC, ARM and ARM64 whenever 8250 console support is
enabled (since the quirk is needed for sysrq handling).

Commit b1442c55ce ("serial: 8250: extend compile-test coverage")
enabled compile testing of the code in question but did not provide a
means to disable the option when COMPILE_TEST is enabled.

Add a conditional input prompt instead so that SERIAL_8250_FSL is no
longer enabled by default when compile testing while continuing to
always enable the quirk for platforms that may need it.

Fixes: b1442c55ce ("serial: 8250: extend compile-test coverage")
Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20210924141232.4419-1-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:07:44 +02:00
Pali Rohár
32262e2e42 serial: 8250: Fix reporting real baudrate value in c_ospeed field
In most cases it is not possible to set exact baudrate value to hardware.

So fix reporting real baudrate value which was set to hardware via c_ospeed
termios field. It can be retrieved by ioctl(TCGETS2) from userspace.

Real baudrate value is calculated from chosen hardware divisor and base
clock. It is implemented in a new function serial8250_compute_baud_rate()
which is inverse of serial8250_get_divisor() function.

With this change is fixed also UART timeout value (it is updated via
uart_update_timeout() function), which is calculated from the now fixed
baudrate value too.

Cc: stable@vger.kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Link: https://lore.kernel.org/r/20210927093704.19768-1-pali@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:02:58 +02:00
Pali Rohár
027b57170b serial: core: Fix initializing and restoring termios speed
Since commit edc6afc549 ("tty: switch to ktermios and new framework")
termios speed is no longer stored only in c_cflag member but also in new
additional c_ispeed and c_ospeed members. If BOTHER flag is set in c_cflag
then termios speed is stored only in these new members.

Therefore to correctly restore termios speed it is required to store also
ispeed and ospeed members, not only cflag member.

In case only cflag member with BOTHER flag is restored then functions
tty_termios_baud_rate() and tty_termios_input_baud_rate() returns baudrate
stored in c_ospeed / c_ispeed member, which is zero as it was not restored
too. If reported baudrate is invalid (e.g. zero) then serial core functions
report fallback baudrate value 9600. So it means that in this case original
baudrate is lost and kernel changes it to value 9600.

Simple reproducer of this issue is to boot kernel with following command
line argument: "console=ttyXXX,86400" (where ttyXXX is the device name).
For speed 86400 there is no Bnnn constant and therefore kernel has to
represent this speed via BOTHER c_cflag. Which means that speed is stored
only in c_ospeed and c_ispeed members, not in c_cflag anymore.

If bootloader correctly configures serial device to speed 86400 then kernel
prints boot log to early console at speed speed 86400 without any issue.
But after kernel starts initializing real console device ttyXXX then speed
is changed to fallback value 9600 because information about speed was lost.

This patch fixes above issue by storing and restoring also ispeed and
ospeed members, which are required for BOTHER flag.

Fixes: edc6afc549 ("[PATCH] tty: switch to ktermios and new framework")
Cc: stable@vger.kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Link: https://lore.kernel.org/r/20211002130900.9518-1-pali@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:02:44 +02:00
Pali Rohár
4545b069aa tty: baudrate: Explicit usage of B0 for encoding input baudrate
Function tty_termios_input_baud_rate() checks IBSHIFT & CBAUD against B0
constant to determinate if input speed equals to output speed. So do same
B0 check also in tty_termios_encode_baud_rate() function to make these two
functions compatible.

Currently macro B0 is defined to 0 so there is no functional change.

This change just make code more explicit to show that Bnnn constants are
stored in CBAUD.

Signed-off-by: Pali Rohár <pali@kernel.org>
Link: https://lore.kernel.org/r/20210927133516.8671-1-pali@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 15:00:56 +02:00
Colin Ian King
27e8c8b483 serial: sifive: set pointer to NULL rather than 0.
Clean up the assignment of sifive_serial_console_ports[ssp->port.line],
this is a pointer to a struct sifive_serial_port so the assignment
should be a NULL rather than a integer 0.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20210925224726.183360-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-10-05 14:54:21 +02:00
Quentin Perret
6e6a8ef088 KVM: arm64: Release mmap_lock when using VM_SHARED with MTE
VM_SHARED mappings are currently forbidden in a memslot with MTE to
prevent two VMs racing to sanitise the same page. However, this check
is performed while holding current->mm's mmap_lock, but fails to release
it. Fix this by releasing the lock when needed.

Fixes: ea7fc1bb1c ("KVM: arm64: Introduce MTE VM feature")
Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211005122031.809857-1-qperret@google.com
2021-10-05 13:22:45 +01:00
Jakub Kicinski
49ed8dde37 net: usb: use eth_hw_addr_set() for dev->addr_len cases
Convert usb drivers from memcpy(... dev->addr_len)
to eth_hw_addr_set():

  @@
  expression dev, np;
  @@
  - memcpy(dev->dev_addr, np, dev->addr_len)
  + eth_hw_addr_set(dev, np)

Manually checked these are either usbnet or pure etherdevs.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-10-05 13:16:48 +01:00
Jakub Kicinski
a05e4c0af4 ethernet: use eth_hw_addr_set() for dev->addr_len cases
Convert all Ethernet drivers from memcpy(... dev->addr_len)
to eth_hw_addr_set():

  @@
  expression dev, np;
  @@
  - memcpy(dev->dev_addr, np, dev->addr_len)
  + eth_hw_addr_set(dev, np)

In theory addr_len may not be ETH_ALEN, but we don't expect
non-Ethernet devices to live under this directory, and only
the following cases of setting addr_len exist:
 - cxgb4 for mgmt device,
and the drivers which set it to ETH_ALEN: s2io, mlx4, vxge.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-10-05 13:16:48 +01:00
David S. Miller
5e8fba848e Merge branch 'mlx4-const-dev_addr'
Jakub Kicinski says:

====================
mlx4: prep for constant dev->dev_addr

This patch converts mlx4 for dev->dev_addr being const. It converts
to use of common helpers but also removes some seemingly unnecessary
idiosyncrasies.

Please review.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2021-10-05 13:15:35 +01:00