~xnox/ubuntu/+source/linux/+git/unstable:master-5.12

Last commit made on 2021-05-12
Get this branch:
git clone -b master-5.12 https://git.launchpad.net/~xnox/ubuntu/+source/linux/+git/unstable
Only Dimitri John Ledkov can upload to this branch. If you are Dimitri John Ledkov please log in for upload directions.

Branch merges

Branch information

Name:
master-5.12
Repository:
lp:~xnox/ubuntu/+source/linux/+git/unstable

Recent commits

c79c172... by Greg Kroah-Hartman <email address hidden>

Linux 5.12.3

BugLink: https://bugs.launchpad.net/bugs/1928184

Tested-by: Jon Hunter <email address hidden>
Reviewed-by: Florian Fainelli <email address hidden>
Tested-by: Linux Kernel Functional Testing <email address hidden>
Tested-by: Fox Chen <email address hidden>
Tested-by: Guenter Roeck <email address hidden>
Tested-by: Jason Self <email address hidden>
Tested-by: Shuah Khan <email address hidden>
Tested-by: Justin M. Forbes <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

e5dc798... by Lukasz Luba <email address hidden>

thermal/core/fair share: Lock the thermal zone while looping over instances

BugLink: https://bugs.launchpad.net/bugs/1928184

commit fef05776eb02238dcad8d5514e666a42572c3f32 upstream.

The tz->lock must be hold during the looping over the instances in that
thermal zone. This lock was missing in the governor code since the
beginning, so it's hard to point into a particular commit.

CC: <email address hidden> # 4.4+
Signed-off-by: Lukasz Luba <email address hidden>
Signed-off-by: Daniel Lezcano <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

0532125... by brian-sy yang <email address hidden>

thermal/drivers/cpufreq_cooling: Fix slab OOB issue

BugLink: https://bugs.launchpad.net/bugs/1928184

commit 34ab17cc6c2c1ac93d7e5d53bb972df9a968f085 upstream.

Slab OOB issue is scanned by KASAN in cpu_power_to_freq().
If power is limited below the power of OPP0 in EM table,
it will cause slab out-of-bound issue with negative array
index.

Return the lowest frequency if limited power cannot found
a suitable OPP in EM table to fix this issue.

Backtrace:
[<ffffffd02d2a37f0>] die+0x104/0x5ac
[<ffffffd02d2a5630>] bug_handler+0x64/0xd0
[<ffffffd02d288ce4>] brk_handler+0x160/0x258
[<ffffffd02d281e5c>] do_debug_exception+0x248/0x3f0
[<ffffffd02d284488>] el1_dbg+0x14/0xbc
[<ffffffd02d75d1d4>] __kasan_report+0x1dc/0x1e0
[<ffffffd02d75c2e0>] kasan_report+0x10/0x20
[<ffffffd02d75def8>] __asan_report_load8_noabort+0x18/0x28
[<ffffffd02e6fce5c>] cpufreq_power2state+0x180/0x43c
[<ffffffd02e6ead80>] power_actor_set_power+0x114/0x1d4
[<ffffffd02e6fac24>] allocate_power+0xaec/0xde0
[<ffffffd02e6f9f80>] power_allocator_throttle+0x3ec/0x5a4
[<ffffffd02e6ea888>] handle_thermal_trip+0x160/0x294
[<ffffffd02e6edd08>] thermal_zone_device_check+0xe4/0x154
[<ffffffd02d351cb4>] process_one_work+0x5e4/0xe28
[<ffffffd02d352f44>] worker_thread+0xa4c/0xfac
[<ffffffd02d360124>] kthread+0x33c/0x358
[<ffffffd02d289940>] ret_from_fork+0xc/0x18

Fixes: 371a3bc79c11b ("thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power")
Signed-off-by: brian-sy yang <email address hidden>
Signed-off-by: Michael Kao <email address hidden>
Reviewed-by: Lukasz Luba <email address hidden>
Cc: <email address hidden> #v5.7
Signed-off-by: Daniel Lezcano <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

f1646ee... by Rasmus Villemoes

lib/vsprintf.c: remove leftover 'f' and 'F' cases from bstr_printf()

BugLink: https://bugs.launchpad.net/bugs/1928184

commit 84696cfaf4d90945eb2a8302edc6cf627db56b84 upstream.

Commit 9af7706492f9 ("lib/vsprintf: Remove support for %pF and %pf in
favour of %pS and %ps") removed support for %pF and %pf, and correctly
removed the handling of those cases in vbin_printf(). However, the
corresponding cases in bstr_printf() were left behind.

In the same series, %pf was re-purposed for dealing with
fwnodes (3bd32d6a2ee6, "lib/vsprintf: Add %pfw conversion specifier
for printing fwnode names").

So should anyone use %pf with the binary printf routines,
vbin_printf() would (correctly, as it involves dereferencing the
pointer) do the string formatting to the u32 array, but bstr_printf()
would not copy the string from the u32 array, but instead interpret
the first sizeof(void*) bytes of the formatted string as a pointer -
which generally won't end well (also, all subsequent get_args would be
out of sync).

Fixes: 9af7706492f9 ("lib/vsprintf: Remove support for %pF and %pf in favour of %pS and %ps")
Cc: <email address hidden>
Signed-off-by: Rasmus Villemoes <email address hidden>
Reviewed-by: Sakari Ailus <email address hidden>
Signed-off-by: Petr Mladek <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

9157e46... by =?utf-8?b?5ZGo55Cw5p2wIChaaG91IFlhbmppZSk=?= <email address hidden>

pinctrl: Ingenic: Add support for read the pin configuration of X1830.

BugLink: https://bugs.launchpad.net/bugs/1928184

commit 1d0bd580ef83b78a10c0b37f3313eaa59d8c80db upstream.

Add X1830 support in "ingenic_pinconf_get()", so that it can read the
configuration of X1830 SoC correctly.

Fixes: d7da2a1e4e08 ("pinctrl: Ingenic: Add pinctrl driver for X1830.")
Cc: <email address hidden>
Signed-off-by: 周琰杰 (Zhou Yanjie) <email address hidden>
Reviewed-by: Andy Shevchenko <email address hidden>
Reviewed-by: Paul Cercueil <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

4965b1b... by =?utf-8?b?5ZGo55Cw5p2wIChaaG91IFlhbmppZSk=?= <email address hidden>

pinctrl: Ingenic: Add missing pins to the JZ4770 MAC MII group.

BugLink: https://bugs.launchpad.net/bugs/1928184

commit 65afd97630a9d6dd9ea83ff182dfdb15bc58c5d1 upstream.

The MII group of JZ4770's MAC should have 7 pins, add missing
pins to the MII group.

Fixes: 5de1a73e78ed ("Pinctrl: Ingenic: Add missing parts for JZ4770 and JZ4780.")
Cc: <email address hidden>
Signed-off-by: 周琰杰 (Zhou Yanjie) <email address hidden>
Reviewed-by: Andy Shevchenko <email address hidden>
Reviewed-by: Paul Cercueil <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

4d6ee43... by Benjamin Block <email address hidden>

dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails

BugLink: https://bugs.launchpad.net/bugs/1928184

commit 8e947c8f4a5620df77e43c9c75310dc510250166 upstream.

When loading a device-mapper table for a request-based mapped device,
and the allocation/initialization of the blk_mq_tag_set for the device
fails, a following device remove will cause a double free.

E.g. (dmesg):
  device-mapper: core: Cannot initialize queue for request-based dm-mq mapped device
  device-mapper: ioctl: unable to set up device queue for new table.
  Unable to handle kernel pointer dereference in virtual kernel address space
  Failing address: 0305e098835de000 TEID: 0305e098835de803
  Fault in home space mode while using kernel ASCE.
  AS:000000025efe0007 R3:0000000000000024
  Oops: 0038 ilc:3 [#1] SMP
  Modules linked in: ... lots of modules ...
  Supported: Yes, External
  CPU: 0 PID: 7348 Comm: multipathd Kdump: loaded Tainted: G W X 5.3.18-53-default #1 SLE15-SP3
  Hardware name: IBM 8561 T01 7I2 (LPAR)
  Krnl PSW : 0704e00180000000 000000025e368eca (kfree+0x42/0x330)
             R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 RI:0 EA:3
  Krnl GPRS: 000000000000004a 000000025efe5230 c1773200d779968d 0000000000000000
             000000025e520270 000000025e8d1b40 0000000000000003 00000007aae10000
             000000025e5202a2 0000000000000001 c1773200d779968d 0305e098835de640
             00000007a8170000 000003ff80138650 000000025e5202a2 000003e00396faa8
  Krnl Code: 000000025e368eb8: c4180041e100 lgrl %r1,25eba50b8
             000000025e368ebe: ecba06b93a55 risbg %r11,%r10,6,185,58
            #000000025e368ec4: e3b010000008 ag %r11,0(%r1)
            >000000025e368eca: e310b0080004 lg %r1,8(%r11)
             000000025e368ed0: a7110001 tmll %r1,1
             000000025e368ed4: a7740129 brc 7,25e369126
             000000025e368ed8: e320b0080004 lg %r2,8(%r11)
             000000025e368ede: b904001b lgr %r1,%r11
  Call Trace:
   [<000000025e368eca>] kfree+0x42/0x330
   [<000000025e5202a2>] blk_mq_free_tag_set+0x72/0xb8
   [<000003ff801316a8>] dm_mq_cleanup_mapped_device+0x38/0x50 [dm_mod]
   [<000003ff80120082>] free_dev+0x52/0xd0 [dm_mod]
   [<000003ff801233f0>] __dm_destroy+0x150/0x1d0 [dm_mod]
   [<000003ff8012bb9a>] dev_remove+0x162/0x1c0 [dm_mod]
   [<000003ff8012a988>] ctl_ioctl+0x198/0x478 [dm_mod]
   [<000003ff8012ac8a>] dm_ctl_ioctl+0x22/0x38 [dm_mod]
   [<000000025e3b11ee>] ksys_ioctl+0xbe/0xe0
   [<000000025e3b127a>] __s390x_sys_ioctl+0x2a/0x40
   [<000000025e8c15ac>] system_call+0xd8/0x2c8
  Last Breaking-Event-Address:
   [<000000025e52029c>] blk_mq_free_tag_set+0x6c/0xb8
  Kernel panic - not syncing: Fatal exception: panic_on_oops

When allocation/initialization of the blk_mq_tag_set fails in
dm_mq_init_request_queue(), it is uninitialized/freed, but the pointer
is not reset to NULL; so when dev_remove() later gets into
dm_mq_cleanup_mapped_device() it sees the pointer and tries to
uninitialize and free it again.

Fix this by setting the pointer to NULL in dm_mq_init_request_queue()
error-handling. Also set it to NULL in dm_mq_cleanup_mapped_device().

Cc: <email address hidden> # 4.6+
Fixes: 1c357a1e86a4 ("dm: allocate blk_mq_tag_set rather than embed in mapped_device")
Signed-off-by: Benjamin Block <email address hidden>
Signed-off-by: Mike Snitzer <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

8e3f2e7... by Tian Tao <email address hidden>

dm integrity: fix missing goto in bitmap_flush_interval error handling

BugLink: https://bugs.launchpad.net/bugs/1928184

commit 17e9e134a8efabbbf689a0904eee92bb5a868172 upstream.

Fixes: 468dfca38b1a ("dm integrity: add a bitmap mode")
Cc: <email address hidden>
Signed-off-by: Tian Tao <email address hidden>
Signed-off-by: Mike Snitzer <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

a13b09e... by Joe Thornber <email address hidden>

dm space map common: fix division bug in sm_ll_find_free_block()

BugLink: https://bugs.launchpad.net/bugs/1928184

commit 5208692e80a1f3c8ce2063a22b675dd5589d1d80 upstream.

This division bug meant the search for free metadata space could skip
the final allocation bitmap's worth of entries. Fix affects DM thinp,
cache and era targets.

Cc: <email address hidden>
Signed-off-by: Joe Thornber <email address hidden>
Tested-by: Ming-Hung Tsai <email address hidden>
Signed-off-by: Mike Snitzer <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>

83c4f9d... by Joe Thornber <email address hidden>

dm persistent data: packed struct should have an aligned() attribute too

BugLink: https://bugs.launchpad.net/bugs/1928184

commit a88b2358f1da2c9f9fcc432f2e0a79617fea397c upstream.

Otherwise most non-x86 architectures (e.g. riscv, arm) will resort to
byte-by-byte access.

Cc: <email address hidden>
Signed-off-by: Joe Thornber <email address hidden>
Signed-off-by: Mike Snitzer <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Paolo Pisati <email address hidden>