Commit graph

881,818 commits

Author SHA1 Message Date
Suren Baghdasaryan
ff8a1bae44 ANDROID: GKI: update abi definitions
ABI changes as a result of SPF padding additions for GKI 1.0.

Leaf changes summary: 3072 artifacts changed (34 filtered out)
Changed leaf types summary: 3 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 3026 Changed (34 filtered out), 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 43 Changed, 0 Added variable

3026 functions with some sub-type change:
...

'struct mm_struct at mm_types.h:383:1' changed:
  type size changed from 7040 to 7104 (in bits)
  there are data member changes:
...
  2847 impacted interfaces

'struct vm_area_struct at mm_types.h:293:1' changed:
  type size changed from 1728 to 1792 (in bits)
  1 data member insertion:
    'u64 vm_area_struct::android_vendor_data1', at offset 1728 (in bits) at mm_types.h:370:1
  2847 impacted interfaces

'struct vm_fault at mm.h:418:1' changed:
  type size changed from 960 to 1088 (in bits)
  2 data member insertions:
    'u64 vm_fault::android_vendor_data1', at offset 960 (in bits) at mm.h:457:1
    'u64 vm_fault::android_vendor_data2', at offset 1024 (in bits) at mm.h:458:1
  2847 impacted interfaces

Bug: 155842923
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ieb63c9897da176c75215c60dcbe72d2022203caa
2020-07-14 20:36:08 +00:00
Hyesoo Yu
9411d27783 ANDROID: mm: add vendor padding for SPECULATIVE_PAGE_FAULTS
Fields are added on mm_struct, vm_area_struct and vm_fault
to support vendor feature, speculative page fault.

Bug: 155842923
Change-Id: Iedda086d6f83f1353da5a2ed1e24f7ba7dde43f2
Merged-In: Iedda086d6f83f1353da5a2ed1e24f7ba7dde43f2
Signed-off-by: Hyesoo Yu <hyesoo.yu@samsung.com>
2020-07-14 20:36:00 +00:00
Greg Kroah-Hartman
7121ba12e2 ANDROID: GKI: enable usb storage drivers
This enables both CONFIG_USB_STORAGE=y and CONFIG_USB_UAS=y so that
systems that want to support usb storage devices will work with the GKI
base kernel image.

Bug: 161091250
Bug: 161190032
Cc: zhang sanshan <pete.zhang@nxp.com>
Cc: JaeHun Jung <jh0801.jung@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibda9ad03aea3f192c057fd3e479742d52d060f7b
2020-07-14 19:01:23 +02:00
Satya Tangirala
6561560c01 ANDROID: fscrypt: fix DUN contiguity with inline encryption + IV_INO_LBLK_32 policies
IV_INO_LBLK_32 policies introduced the possibility that logically
contiguous data blocks might not have contiguous DUNs (because of
potential DUN wraparound). As such, whenever a page is merged into a
bio, fscrypt_mergeable_bio() must be called to check DUN contiguity.

Further, fscrypt inline encryption does not handle the case when the DUN
wraps around within a page (which can happen when the data unit size !=
PAGE_SIZE). For now, we handle that by disallowing inline encryption
with IV_INO_LBLK_32 policies when the data unit size != PAGE_SIZE (and
dropping the now redundant check for this in fscrypt_dio_supported()).

Bug: 144046242
Change-Id: I9cb414fcc284b197b9d3d1b9643029c6b875df5a
Signed-off-by: Satya Tangirala <satyat@google.com>
2020-07-14 15:48:10 +00:00
Todd Kjos
cfed4cb19a ANDROID: GKI: set CONFIG_STATIC_USERMODEHELPER_PATH
The android.security.cts.KernelConfigTest#testConfigDisableUsermodehelper
test is failing because CONFIG_STATIC_USERMODEHELPER_PATH is set to
an invalid value ("/sbin/usermode-helper") for the test. Setting to ""
instead.

Bug: 160949257
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: I1d9f003c15a6b1d9a7f47804e50661a44a0725d5
2020-07-13 18:33:24 +00:00
JaeHun Jung
e265d59708 ANDROID: sound: usb: Add vendor's hooking interface
In mobile, a co-processor can be used with USB audio to improve power
consumption.  To support this type of hardware, hooks need to be added
to the USB audio subsystem to be able to call into the hardware when
needed.

The main operation of the call-backs are:
  - Initialize the co-processor by transmitting data when initializing.
  - Change the co-processor setting value through the interface
    function.
  - Configure sampling rate
  - pcm open/close
  - other housekeeping

Known issues:
  - This only supports one set of callback hooks, meaning that this only
    works if there is one type of USB controller in the system.  This
    should be changed to be a per-host-controller interface instead of
    one global set of callbacks.

Bug: 156315379
Change-Id: I32e1dd408e64aaef68ee06c480c4b4d4c95546dc
Signed-off-by: JaeHun Jung <jh0801.jung@samsung.com>
[rework api to be a bit more self-contained and obvious - gregkh]
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-07-13 17:24:54 +02:00
Saravana Kannan
bb0ed73573 UPSTREAM: slimbus: core: Set fwnode for a device when setting of_node
When setting the of_node for a newly created device, also set the
fwnode. This allows fw_devlink feature to work for slimbus devices.

Also, remove some unnecessary NULL checks. The functions in question
already do NULL checks.

Signed-off-by: Saravana Kannan <saravanak@google.com>
[Srini: removed unnecessary NULL check from other patch]
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20200511151334.362-2-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit dbf4d13382be7b272417025f5f6687641eb7dd21)
Bug: 152464107
Signed-off-by: Saravana Kannan <saravanak@google.com>
Change-Id: I09bb28a12a020615bd79f8d4c989862c1429513a
2020-07-10 23:29:03 +00:00
Eric Biggers
9950b5db5b ANDROID: f2fs: add back compress inode check
f2fs_force_buffered_io() originally had two checks of
f2fs_compressed_file(), when only one was needed.  The one via
f2fs_post_read_required() got removed by ANDROID commit 403731b15a
("ANDROID: ext4, f2fs: enable direct I/O with inline encryption").  Then
more recently, the second was removed by upstream commit 39430f72f0
("f2fs: remove redundant compress inode check"), but this wasn't fixed
up during the merge resolution.

This incorrectly left no checks remaining, so add one back.

Reported at
https://lkml.kernel.org/r/560266ca-0164-c02e-18ea-55564683d13e@huawei.com

Fixes: 5ad12102f2 ("Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-5.4.y' into android-5.4-stable")
Change-Id: I3f6afdd221b6e44f1caa5a92d3c751a573e284df
Signed-off-by: Eric Biggers <ebiggers@google.com>
2020-07-10 14:02:20 -07:00
Sandeep Patil
1e2677dc69 ANDROID: abi: update abi dump for CONFIG_KPROBES
Short summary
  Leaf changes summary: 2251 artifacts changed (24 filtered out)
  Changed leaf types summary: 1 leaf type changed
  Removed/Changed/Added functions summary: 0 Removed, 2215 Changed (24 filtered out), 0 Added function
  Removed/Changed/Added variables summary: 0 Removed, 35 Changed, 0 Added variable

  2215 functions with some sub-type change:
  ...
  'struct module at module.h:349:1' changed:
    type size hasn't changed
    2 data member insertions:
      'error_injection_entry* module::ei_funcs', at offset 6720 (in bits) at module.h:515:1
      'unsigned int module::num_ei_funcs', at offset 6784 (in bits) at module.h:516:1
    there are data member changes:
      'u64 module::android_kabi_reserved1' offset changed from 6720 to 6848 (in bits) (by +128 bits)
      'u64 module::android_kabi_reserved2' offset changed from 6784 to 6912 (in bits) (by +128 bits)
      'u64 module::android_kabi_reserved3' offset changed from 6848 to 6976 (in bits) (by +128 bits)
      'u64 module::android_kabi_reserved4' offset changed from 6912 to 7040 (in bits) (by +128 bits)
    2844 impacted interfaces

Bug: 149659981
Signed-off-by: Sandeep Patil <sspatil@google.com>
Change-Id: I54a678ff969f0e37f63d6bc7da40683c39a1326e
2020-07-10 08:37:22 +00:00
Sandeep Patil
7eeea07674 ANDROID: gki_defconfig: Enable Kprobes
This commit effectively reverts commmit
   2f7f6ce2cf ("ANDROID: gki_defconfig: disable KPROBES, update ABI")

The change at https://android-review.googlesource.com/1328978 restricts
access to kprobes enough to mitigate potential issues with it.

Bug: 149659981

Signed-off-by: Sandeep Patil <sspatil@google.com>
Change-Id: I3772b7683e7844017bff4b388e74d52698f896f9
2020-07-09 17:46:09 -07:00
Matthias Maennich
f631956032 ANDROID: Correct branch name after rename
Bug: 160880893
Bug: 158856685
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: If302b007ff595ad8b5d42450138da78cc9409b6f
2020-07-09 23:55:25 +02:00
Greg Kroah-Hartman
e2b40b8f2b ANDROID: GKI: update ABI due to power supply changes
Leaf changes summary: 20 artifacts changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 19 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

19 functions with some sub-type change:

  [C] 'function power_supply* devm_power_supply_get_by_phandle(device*, const char*)' at power_supply_core.c:541:1 has some sub-type changes:
  [C] 'function power_supply* devm_power_supply_register(device*, const power_supply_desc*, const power_supply_config*)' at power_supply.h:433:1 has some sub-type changes:
  [C] 'function int hid_add_device(hid_device*)' at hid.h:848:1 has some sub-type changes:
  [C] 'function hid_device* hid_allocate_device()' at hid.h:888:1 has some sub-type changes:
  [C] 'function void hid_destroy_device(hid_device*)' at hid.h:849:1 has some sub-type changes:
  [C] 'function bool hid_ignore(hid_device*)' at hid.h:847:1 has some sub-type changes:
  [C] 'function int hid_input_report(hid_device*, int, unsigned char*, unsigned int, int)' at hid.h:880:1 has some sub-type changes:
  [C] 'function int hid_parse_report(hid_device*, unsigned char*, unsigned int)' at hid.h:892:1 has some sub-type changes:
  [C] 'function void power_supply_changed(power_supply*)' at power_supply.h:402:1 has some sub-type changes:
  [C] 'function int power_supply_get_battery_info(power_supply*, power_supply_battery_info*)' at power_supply_core.c:565:1 has some sub-type changes:
  [C] 'function power_supply* power_supply_get_by_name(const char*)' at power_supply_core.c:451:1 has some sub-type changes:
  [C] 'function void* power_supply_get_drvdata(power_supply*)' at power_supply.h:445:1 has some sub-type changes:
  [C] 'function int power_supply_get_property(power_supply*, power_supply_property, power_supply_propval*)' at power_supply_core.c:837:1 has some sub-type changes:
  [C] 'function int power_supply_powers(power_supply*, device*)' at power_supply.h:441:1 has some sub-type changes:
  [C] 'function void power_supply_put(power_supply*)' at power_supply_core.c:473:1 has some sub-type changes:
  [C] 'function void power_supply_put_battery_info(power_supply*, power_supply_battery_info*)' at power_supply_core.c:708:1 has some sub-type changes:
  [C] 'function power_supply* power_supply_register(device*, const power_supply_desc*, const power_supply_config*)' at power_supply.h:425:1 has some sub-type changes:
  [C] 'function int power_supply_set_property(power_supply*, power_supply_property, const power_supply_propval*)' at power_supply_core.c:851:1 has some sub-type changes:
  [C] 'function void power_supply_unregister(power_supply*)' at power_supply.h:440:1 has some sub-type changes:

'enum power_supply_property at power_supply.h:94:1' changed:
  type size hasn't changed
  4 enumerator insertions:
    'power_supply_property::POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN' value '49'
    'power_supply_property::POWER_SUPPLY_PROP_MANUFACTURE_YEAR' value '69'
    'power_supply_property::POWER_SUPPLY_PROP_MANUFACTURE_MONTH' value '70'
    'power_supply_property::POWER_SUPPLY_PROP_MANUFACTURE_DAY' value '71'
  22 enumerator changes:
    'power_supply_property::POWER_SUPPLY_PROP_CAPACITY_LEVEL' from value '49' to '50' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP' from value '50' to '51' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP_MAX' from value '51' to '52' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP_MIN' from value '52' to '53' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP_ALERT_MIN' from value '53' to '54' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP_ALERT_MAX' from value '54' to '55' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP_AMBIENT' from value '55' to '56' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN' from value '56' to '57' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX' from value '57' to '58' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW' from value '58' to '59' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG' from value '59' to '60' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TIME_TO_FULL_NOW' from value '60' to '61' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TIME_TO_FULL_AVG' from value '61' to '62' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_TYPE' from value '62' to '63' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_USB_TYPE' from value '63' to '64' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_SCOPE' from value '64' to '65' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_PRECHARGE_CURRENT' from value '65' to '66' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT' from value '66' to '67' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_CALIBRATE' from value '67' to '68' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_MODEL_NAME' from value '68' to '72' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_MANUFACTURER' from value '69' to '73' at power_supply.h:95:1
    'power_supply_property::POWER_SUPPLY_PROP_SERIAL_NUMBER' from value '70' to '74' at power_supply.h:95:1
  19 impacted interfaces

Bug: 160867814
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I140f91dd18eabca8c8cd69dbe2ba1da06970666e
2020-07-09 17:27:13 +02:00
Sebastian Reichel
9039e68208 UPSTREAM: power: supply: core: add POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED
Some battery fuel gauges know when the battery needs to
be recalibrated before providing usable values. This
should be reported via the health property.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit 601c2a543f02da484362b3ff9074b2cfe08750de)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ib361b1dccd4e0ca5d6f7a4425379519e025f18e7
2020-07-09 17:27:13 +02:00
Sebastian Reichel
d5215f06a9 UPSTREAM: power: supply: core: add manufacture date properties
Some smart batteries store their manufacture date, which is
useful to identify the battery and/or to know about the cell
quality.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit feabe49e46bb556b8d43e28d4a0d459940f7a5cb)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I94db7ae8bddd9110d026c1c0e7af4340f925cef6
2020-07-09 17:27:12 +02:00
Sebastian Reichel
b871e425a9 UPSTREAM: power: supply: core: add capacity error margin property
Add a property for reporting the error margin expected
by fuel gauge chips.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit bac705abcf345c28e419157cfcd1c44032cc9db2)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I95e67006d5e398b7cb902f9e96df245f0f85c6d2
2020-07-09 17:27:12 +02:00
Mathew King
559731a7a0 UPSTREAM: power: supply: core: Add type property to uevent env
Add POWER_SUPPLY_TYPE to the uevent env for power supply. Type is a
property of all power supplies and there is a sysfs entry for it but it
is not included in the properties array of the power supply so
explicitly add it to the udev env.

Signed-off-by: Mathew King <mathewk@chromium.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit 2ad3d74e3c69fb371412f37d8226f2da3a3b6cc2)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibf8d580267f2143e1083599845fdb1c806f6917f
2020-07-09 17:27:12 +02:00
Mathew King
fdeaf705c6 UPSTREAM: power: supply: core: Add a macro that maps enum properties to text values
Reduce the number of touch points to add a new enum property to the
power_supply class by mapping the array of text values to the device
attribute descriptor. A new enum property can now added by creating an
array with the text values named POWER_SUPPLY_${PROPNAME}_TEXT and
adding POWER_SUPPLY_ENUM_ATTR(${PROPNAME}) to the power_supply_attrs
array.

Signed-off-by: Mathew King <mathewk@chromium.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit 5b505366ac6c77a623e18fe18cedb2d4d3c9a7f3)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6e14c215bd2c2cc39d7649062c238e65d11eabaa
2020-07-09 17:27:12 +02:00
Mathew King
e959065e68 UPSTREAM: power: supply: core: Use designated initializer for property text arrays
Use designated initializers for the sysfs power supply text values. This
will help ensure that the text values are kept in sync with the enum
values from power_supply.h.

Signed-off-by: Mathew King <mathewk@chromium.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit d960d91f86880d28a6dc8edb4e7b605bcf6354eb)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ia01c0cab23add107b648193af7105ed2e6ae771c
2020-07-09 17:27:12 +02:00
Mathew King
48bf257e80 UPSTREAM: power: supply: core: Cleanup power supply sysfs attribute list
Make the device attribute list used to create sysfs attributes more
robust by decoupling the list order from order of the enum defined in
power_supply.h. This is done by using a designated initializer in the
POWER_SUPPLY_ATTR macro.

Signed-off-by: Mathew King <mathewk@chromium.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit 2cabeaf151294eceaa0f0e0fab2fe9fe66868869)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ic15f7d3bd7774cccb25d2bb18f2466e99c6e542f
2020-07-09 17:27:12 +02:00
Michał Mirosław
c88326c2ed UPSTREAM: power: supply: core: reduce power_supply_show_usb_type() parameters
Reduce power_supply_show_usb_type() parameter count by folding
power_supply_desc dereference into the function.  This makes following
patch making usb_types const easier.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
(cherry picked from commit de46e0289310b5e56994eafec2f0d2a5da095ea9)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1dc82a94f1aedd38052961cfc669dbeffea680f8
2020-07-09 17:27:12 +02:00
Todd Kjos
2e904b4388 ANDROID: fix copyright notice
New vendor hook files cite Google, Inc instead of Google LLC

Bug: 149632552
Fixes: 7f62740112ef ("ANDROID: add support for vendor hooks")
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: If42762c4bbe6d0a7ff1cc75b64a3b224902e121c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-07-09 15:26:50 +02:00
Todd Kjos
5965ee663d ANDROID: add support for vendor hooks
Add support for vendor hooks. Adds include/trace/hooks
directory for trace definition headers where hooks
can be defined and vendor_hook.c for instantiating
and exporting them for vendor modules.

There are two variants of vendor hooks, both based
on tracepoints:

Normal: this uses the DECLARE_HOOK macro
to create a tracepoint function with the name trace_<name>
where <name> is the unique identifier for the trace.

Restricted: restricted hooks are needed for cases like
scheduler hooks where the attached function must be
called even if the cpu is offline or requires a
non-atomic context. Restricted vendor hooks cannot
be detached, so modules that attach to a restricted
hook can never unload. Also, only 1 attachment is
allowed (any other attempts to attach will fail with
-EBUSY).

For either case, modules attach to the hook by using
register_trace_<name>(func_ptr, NULL).

New hooks should be defined in headers in the
include/trace/hooks/ directory using the
DECLARE_HOOK() or DECLARE_RESTRICTED_HOOK()
macros.

New files added to include/trace/hooks should
be #include'd from drivers/android/vendor_hooks.c.
The EXPORT_TRACEPOINT_SYMBOL_GPL() should be
also added to drivers/android/vendor_hooks.c.

For example, if a new hook, 'android_vh_foo(int &ret)'
is added in do_exit() in exit.c, these changes are
needed:

1. create a new header file include/trace/hooks/foo.h
which contains:
	#include <trace/hooks/vendor_hooks.h>
	...
 	DECLARE_HOOK(android_vh_foo,
		     TP_PROTO(int *retp),
		     TP_ARGS(retp);

2. in exit.c, add
	#include <trace/hooks/foo.h>
	...
  	int ret = 0;
	...
  	android_vh_foo(&ret);
  	if (ret)
    		return ret;
	...

3. in drivers/android/vendor_hooks.c, add
	#include <trace/hooks/foo.h>
	...
	EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_foo);

The hook can then be attached by adding the registration code
to the module:

	#include <trace/hooks/sched.h>
	...
	static void my_foo(int *retp)
	{
		*retp = 0;
	}
	...
	rc = register_trace_android_vh_sched_exit(my_foo, NULL);

Bug: 156285741
Bug: 149632552
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: I6a7d1c8919dae91c965e2a0450df50eac2d282db
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-07-09 15:26:29 +02:00
Greg Kroah-Hartman
24b970e086 ANDROID: GKI: update abi definitions
Sound changes to revert back to the abi of 5.4.49.

Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 2 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

2 functions with some sub-type change:

  [C] 'function snd_usb_substream* find_snd_usb_substream(unsigned int, unsigned int, unsigned int, snd_usb_audio**, void (snd_usb_audio*)*)' at card.c:109:1 has some sub-type changes:

    CRC value (modversions) changed from 0x6000531e to 0x80788f3c

  [C] 'function int snd_usb_enable_audio_stream(snd_usb_substream*, int, bool)' at pcm.c:649:1 has some sub-type changes:

    CRC value (modversions) changed from 0x9a5dc24e to 0xb4ab6563

'struct snd_usb_endpoint at card.h:56:1' changed:
  type size changed from 44992 to 44800 (in bits)
  4 data member deletions:
    'unsigned int snd_usb_endpoint::framesize[2]', at offset 43744 (in bits) at card.h:89:1
    'unsigned int snd_usb_endpoint::sample_rem', at offset 43808 (in bits) at card.h:90:1
    'unsigned int snd_usb_endpoint::sample_accum', at offset 43840 (in bits) at card.h:91:1
    'unsigned int snd_usb_endpoint::fps', at offset 43872 (in bits) at card.h:92:1
  2 impacted interfaces

Fixes: 4022b5a85f ("Merge 5.4.51 into android11-5.4")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I3b082d65a1c27721e8719336f4153209ec308012
2020-07-09 14:58:32 +02:00
Greg Kroah-Hartman
4022b5a85f This is the 5.4.51 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAl8GyVUACgkQONu9yGCS
 aT6MCBAAxQpPQYQ8XNq40G2U3rENx2gIOgSA9WjkGsCij6Ad8VjkbA2KqqJ6v0GF
 McIomgdR+bviZKYPJHfdVlOGWGGTtDe1hi6GVoXuc/CTOPK386/v/vMTumdQ2bLb
 5fkuvpFGNdxGmhi+Vpu6zajvF8CVHmCggQQGlrIyIIOXPwN/DB/7XK6lmtx0vcff
 YYZI3L1+q1rJz6vV5K5xTwpPwCQDsdYW93KQpcccVKMAmnAzFolaWyvWitvqOgT5
 xrnelzjrIy5v2BST0S7jL0nzEeXB6bq1tmJHbd+cTvIaKJx4NR8yx2cXzvospi3l
 TpwuycBo/0LRWAiFZ+29+HOHkvUx7sa+BFCLiZEu1dLAxRXdi/W0a/i0QFGb0ex/
 YO8dBVEdHVRm0aXlfnipJYuNdTxzSzUG0GHOvZB11h/zxybiLWjJGutofX0tZXYj
 JuO9UhP0eSldtfuATrXRPsSsTWWen1igVTWFVHEZPWGvR4TiU8jpFPOTFcrraglM
 07M3ooA6FlWrTt7n9YdGLaQY6w2z+pREMgnUesNY9yQeRxY2EAsa95Lu+Y6aTeYP
 YfTPQHhbbz3XggFljGYIbvM6wlzgghSLH09CX8zxFqeYyTSFsNDKBuLslmTMS/21
 zwpG81hm7fE58N3uUHqSU3/bN8kzCH6GsU78bFAXb+jaNKgG5Qg=
 =0uVY
 -----END PGP SIGNATURE-----

Merge 5.4.51 into android11-5.4

Changes in 5.4.51
	io_uring: make sure async workqueue is canceled on exit
	mm: fix swap cache node allocation mask
	EDAC/amd64: Read back the scrub rate PCI register on F15h
	usbnet: smsc95xx: Fix use-after-free after removal
	sched/debug: Make sd->flags sysctl read-only
	mm/slub.c: fix corrupted freechain in deactivate_slab()
	mm/slub: fix stack overruns with SLUB_STATS
	rxrpc: Fix race between incoming ACK parser and retransmitter
	usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
	tools lib traceevent: Add append() function helper for appending strings
	tools lib traceevent: Handle __attribute__((user)) in field names
	s390/debug: avoid kernel warning on too large number of pages
	nvme-multipath: set bdi capabilities once
	nvme-multipath: fix deadlock between ana_work and scan_work
	nvme-multipath: fix deadlock due to head->lock
	nvme-multipath: fix bogus request queue reference put
	kgdb: Avoid suspicious RCU usage warning
	selftests: tpm: Use /bin/sh instead of /bin/bash
	tpm: Fix TIS locality timeout problems
	crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
	drm/msm/dpu: fix error return code in dpu_encoder_init
	rxrpc: Fix afs large storage transmission performance drop
	RDMA/counter: Query a counter before release
	cxgb4: use unaligned conversion for fetching timestamp
	cxgb4: parse TC-U32 key values and masks natively
	cxgb4: fix endian conversions for L4 ports in filters
	cxgb4: use correct type for all-mask IP address comparison
	cxgb4: fix SGE queue dump destination buffer context
	hwmon: (max6697) Make sure the OVERT mask is set correctly
	hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
	thermal/drivers/mediatek: Fix bank number settings on mt8183
	thermal/drivers/rcar_gen3: Fix undefined temperature if negative
	nfsd4: fix nfsdfs reference count loop
	nfsd: fix nfsdfs inode reference count leak
	drm: sun4i: hdmi: Remove extra HPD polling
	virtio-blk: free vblk-vqs in error path of virtblk_probe()
	SMB3: Honor 'posix' flag for multiuser mounts
	nvme: fix identify error status silent ignore
	nvme: fix a crash in nvme_mpath_add_disk
	samples/vfs: avoid warning in statx override
	i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
	i2c: mlxcpld: check correct size of maximum RECV_LEN packet
	spi: spi-fsl-dspi: Fix external abort on interrupt in resume or exit paths
	nfsd: apply umask on fs without ACL support
	Revert "ALSA: usb-audio: Improve frames size computation"
	SMB3: Honor 'seal' flag for multiuser mounts
	SMB3: Honor persistent/resilient handle flags for multiuser mounts
	SMB3: Honor lease disabling for multiuser mounts
	SMB3: Honor 'handletimeout' flag for multiuser mounts
	cifs: Fix the target file was deleted when rename failed.
	MIPS: lantiq: xway: sysctrl: fix the GPHY clock alias names
	MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
	drm/amd/display: Only revalidate bandwidth on medium and fast updates
	drm/amdgpu: use %u rather than %d for sclk/mclk
	drm/amdgpu/atomfirmware: fix vram_info fetching for renoir
	dma-buf: Move dma_buf_release() from fops to dentry_ops
	irqchip/gic: Atomically update affinity
	mm, compaction: fully assume capture is not NULL in compact_zone_order()
	mm, compaction: make capture control handling safe wrt interrupts
	x86/resctrl: Fix memory bandwidth counter width for AMD
	dm zoned: assign max_io_len correctly
	efi: Make it possible to disable efivar_ssdt entirely
	Linux 5.4.51

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ib29e1b61540451995ee757cf90c9ba24e6b8d6b3
2020-07-09 10:41:26 +02:00
Greg Kroah-Hartman
1c54d3c15a Linux 5.4.51 2020-07-09 09:37:57 +02:00
Peter Jones
8ba1913cd6 efi: Make it possible to disable efivar_ssdt entirely
commit 435d1a471598752446a72ad1201b3c980526d869 upstream.

In most cases, such as CONFIG_ACPI_CUSTOM_DSDT and
CONFIG_ACPI_TABLE_UPGRADE, boot-time modifications to firmware tables
are tied to specific Kconfig options.  Currently this is not the case
for modifying the ACPI SSDT via the efivar_ssdt kernel command line
option and associated EFI variable.

This patch adds CONFIG_EFI_CUSTOM_SSDT_OVERLAYS, which defaults
disabled, in order to allow enabling or disabling that feature during
the build.

Cc: <stable@vger.kernel.org>
Signed-off-by: Peter Jones <pjones@redhat.com>
Link: https://lore.kernel.org/r/20200615202408.2242614-1-pjones@redhat.com
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:57 +02:00
Hou Tao
43986c32ee dm zoned: assign max_io_len correctly
commit 7b2377486767503d47265e4d487a63c651f6b55d upstream.

The unit of max_io_len is sector instead of byte (spotted through
code review), so fix it.

Fixes: 3b1a94c88b ("dm zoned: drive-managed zoned block device target")
Cc: stable@vger.kernel.org
Signed-off-by: Hou Tao <houtao1@huawei.com>
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:57 +02:00
Babu Moger
215e562251 x86/resctrl: Fix memory bandwidth counter width for AMD
commit 2c18bd525c47f882f033b0a813ecd09c93e1ecdf upstream.

Memory bandwidth is calculated reading the monitoring counter
at two intervals and calculating the delta. It is the software’s
responsibility to read the count often enough to avoid having
the count roll over _twice_ between reads.

The current code hardcodes the bandwidth monitoring counter's width
to 24 bits for AMD. This is due to default base counter width which
is 24. Currently, AMD does not implement the CPUID 0xF.[ECX=1]:EAX
to adjust the counter width. But, the AMD hardware supports much
wider bandwidth counter with the default width of 44 bits.

Kernel reads these monitoring counters every 1 second and adjusts the
counter value for overflow. With 24 bits and scale value of 64 for AMD,
it can only measure up to 1GB/s without overflowing. For the rates
above 1GB/s this will fail to measure the bandwidth.

Fix the issue setting the default width to 44 bits by adjusting the
offset.

AMD future products will implement CPUID 0xF.[ECX=1]:EAX.

 [ bp: Let the line stick out and drop {}-brackets around a single
   statement. ]

Fixes: 4d05bf71f1 ("x86/resctrl: Introduce AMD QOS feature")
Signed-off-by: Babu Moger <babu.moger@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/159129975546.62538.5656031125604254041.stgit@naples-babu.amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:57 +02:00
Vlastimil Babka
d827fe702e mm, compaction: make capture control handling safe wrt interrupts
commit b9e20f0da1f5c9c68689450a8cb436c9486434c8 upstream.

Hugh reports:

 "While stressing compaction, one run oopsed on NULL capc->cc in
  __free_one_page()'s task_capc(zone): compact_zone_order() had been
  interrupted, and a page was being freed in the return from interrupt.

  Though you would not expect it from the source, both gccs I was using
  (4.8.1 and 7.5.0) had chosen to compile compact_zone_order() with the
  ".cc = &cc" implemented by mov %rbx,-0xb0(%rbp) immediately before
  callq compact_zone - long after the "current->capture_control =
  &capc". An interrupt in between those finds capc->cc NULL (zeroed by
  an earlier rep stos).

  This could presumably be fixed by a barrier() before setting
  current->capture_control in compact_zone_order(); but would also need
  more care on return from compact_zone(), in order not to risk leaking
  a page captured by interrupt just before capture_control is reset.

  Maybe that is the preferable fix, but I felt safer for task_capc() to
  exclude the rather surprising possibility of capture at interrupt
  time"

I have checked that gcc10 also behaves the same.

The advantage of fix in compact_zone_order() is that we don't add
another test in the page freeing hot path, and that it might prevent
future problems if we stop exposing pointers to uninitialized structures
in current task.

So this patch implements the suggestion for compact_zone_order() with
barrier() (and WRITE_ONCE() to prevent store tearing) for setting
current->capture_control, and prevents page leaking with
WRITE_ONCE/READ_ONCE in the proper order.

Link: http://lkml.kernel.org/r/20200616082649.27173-1-vbabka@suse.cz
Fixes: 5e1f0f098b ("mm, compaction: capture a page under direct compaction")
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Reported-by: Hugh Dickins <hughd@google.com>
Suggested-by: Hugh Dickins <hughd@google.com>
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Alex Shi <alex.shi@linux.alibaba.com>
Cc: Li Wang <liwang@redhat.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: <stable@vger.kernel.org>	[5.1+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:57 +02:00
Vlastimil Babka
64a94c550c mm, compaction: fully assume capture is not NULL in compact_zone_order()
commit 6467552ca64c4ddd2b83ed73192107d7145f533b upstream.

Dan reports:

The patch 5e1f0f098b: "mm, compaction: capture a page under direct
compaction" from Mar 5, 2019, leads to the following Smatch complaint:

    mm/compaction.c:2321 compact_zone_order()
     error: we previously assumed 'capture' could be null (see line 2313)

mm/compaction.c
  2288  static enum compact_result compact_zone_order(struct zone *zone, int order,
  2289                  gfp_t gfp_mask, enum compact_priority prio,
  2290                  unsigned int alloc_flags, int classzone_idx,
  2291                  struct page **capture)
                                      ^^^^^^^

  2313		if (capture)
                    ^^^^^^^
Check for NULL

  2314			current->capture_control = &capc;
  2315
  2316		ret = compact_zone(&cc, &capc);
  2317
  2318		VM_BUG_ON(!list_empty(&cc.freepages));
  2319		VM_BUG_ON(!list_empty(&cc.migratepages));
  2320
  2321		*capture = capc.page;
                ^^^^^^^^
Unchecked dereference.

  2322		current->capture_control = NULL;
  2323

In practice this is not an issue, as the only caller path passes non-NULL
capture:

__alloc_pages_direct_compact()
  struct page *page = NULL;
  try_to_compact_pages(capture = &page);
    compact_zone_order(capture = capture);

So let's remove the unnecessary check, which should also make Smatch happy.

Fixes: 5e1f0f098b ("mm, compaction: capture a page under direct compaction")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Suggested-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Link: http://lkml.kernel.org/r/18b0df3c-0589-d96c-23fa-040798fee187@suse.cz
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:57 +02:00
Marc Zyngier
2a9278ac9c irqchip/gic: Atomically update affinity
commit 005c34ae4b44f085120d7f371121ec7ded677761 upstream.

The GIC driver uses a RMW sequence to update the affinity, and
relies on the gic_lock_irqsave/gic_unlock_irqrestore sequences
to update it atomically.

But these sequences only expand into anything meaningful if
the BL_SWITCHER option is selected, which almost never happens.

It also turns out that using a RMW and locks is just as silly,
as the GIC distributor supports byte accesses for the GICD_TARGETRn
registers, which when used make the update atomic by definition.

Drop the terminally broken code and replace it by a byte write.

Fixes: 04c8b0f82c ("irqchip/gic: Make locking a BL_SWITCHER only feature")
Cc: stable@vger.kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:56 +02:00
Sumit Semwal
7ba23593cb dma-buf: Move dma_buf_release() from fops to dentry_ops
commit 4ab59c3c638c6c8952bf07739805d20eb6358a4d upstream.

Charan Teja reported a 'use-after-free' in dmabuffs_dname [1], which
happens if the dma_buf_release() is called while the userspace is
accessing the dma_buf pseudo fs's dmabuffs_dname() in another process,
and dma_buf_release() releases the dmabuf object when the last reference
to the struct file goes away.

I discussed with Arnd Bergmann, and he suggested that rather than tying
the dma_buf_release() to the file_operations' release(), we can tie it to
the dentry_operations' d_release(), which will be called when the last ref
to the dentry is removed.

The path exercised by __fput() calls f_op->release() first, and then calls
dput, which eventually calls d_op->d_release().

In the 'normal' case, when no userspace access is happening via dma_buf
pseudo fs, there should be exactly one fd, file, dentry and inode, so
closing the fd will kill of everything right away.

In the presented case, the dentry's d_release() will be called only when
the dentry's last ref is released.

Therefore, lets move dma_buf_release() from fops->release() to
d_ops->d_release()

Many thanks to Arnd for his FS insights :)

[1]: https://lore.kernel.org/patchwork/patch/1238278/

Fixes: bb2bb90304 ("dma-buf: add DMA_BUF_SET_NAME ioctls")
Reported-by: syzbot+3643a18836bce555bff6@syzkaller.appspotmail.com
Cc: <stable@vger.kernel.org> [5.3+]
Cc: Arnd Bergmann <arnd@arndb.de>
Reported-by: Charan Teja Reddy <charante@codeaurora.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Tested-by: Charan Teja Reddy <charante@codeaurora.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200611114418.19852-1-sumit.semwal@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:56 +02:00
Alex Deucher
4ae695a055 drm/amdgpu/atomfirmware: fix vram_info fetching for renoir
commit d7a6634a4cfba073ff6a526cb4265d6e58ece234 upstream.

Renoir uses integrated_system_info table v12.  The table
has the same layout as v11 with respect to this data.  Just
reuse the existing code for v12 for stable.

Fixes incorrectly reported vram info in the driver output.

Acked-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:56 +02:00
Alex Deucher
2b8c0876bf drm/amdgpu: use %u rather than %d for sclk/mclk
commit beaf10efca64ac824240838ab1f054dfbefab5e6 upstream.

Large clock values may overflow and show up as negative.

Reported by prOMiNd on IRC.

Acked-by: Nirmoy Das <nirmoy.das@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:56 +02:00
Nicholas Kazlauskas
94de85d16b drm/amd/display: Only revalidate bandwidth on medium and fast updates
commit 6eb3cf2e06d22b2b08e6b0ab48cb9c05a8e1a107 upstream.

[Why]
Changes that are fast don't require updating DLG parameters making
this call unnecessary. Considering this is an expensive call it should
not be done on every flip.

DML touches clocks, p-state support, DLG params and a few other DC
internal flags and these aren't expected during fast. A hang has been
reported with this change when called on every flip which suggests that
modifying these fields is not recommended behavior on fast updates.

[How]
Guard the validation to only happen if update type isn't FAST.

Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1191
Fixes: a24eaa5c51255b ("drm/amd/display: Revalidate bandwidth before commiting DC updates")
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Roman Li <Roman.Li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:56 +02:00
Hauke Mehrtens
032343ed69 MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
commit fcec538ef8cca0ad0b84432235dccd9059c8e6f8 upstream.

This resolves the hazard between the mtc0 in the change_c0_status() and
the mfc0 in configure_exception_vector(). Without resolving this hazard
configure_exception_vector() could read an old value and would restore
this old value again. This would revert the changes change_c0_status()
did. I checked this by printing out the read_c0_status() at the end of
per_cpu_trap_init() and the ST0_MX is not set without this patch.

The hazard is documented in the MIPS Architecture Reference Manual Vol.
III: MIPS32/microMIPS32 Privileged Resource Architecture (MD00088), rev
6.03 table 8.1 which includes:

   Producer | Consumer | Hazard
  ----------|----------|----------------------------
   mtc0     | mfc0     | any coprocessor 0 register

I saw this hazard on an Atheros AR9344 rev 2 SoC with a MIPS 74Kc CPU.
There the change_c0_status() function would activate the DSPen by
setting ST0_MX in the c0_status register. This was reverted and then the
system got a DSP exception when the DSP registers were saved in
save_dsp() in the first process switch. The crash looks like this:

[    0.089999] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.097796] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.107070] Kernel panic - not syncing: Unexpected DSP exception
[    0.113470] Rebooting in 1 seconds..

We saw this problem in OpenWrt only on the MIPS 74Kc based Atheros SoCs,
not on the 24Kc based SoCs. We only saw it with kernel 5.4 not with
kernel 4.19, in addition we had to use GCC 8.4 or 9.X, with GCC 8.3 it
did not happen.

In the kernel I bisected this problem to commit 9012d01166 ("compiler:
allow all arches to enable CONFIG_OPTIMIZE_INLINING"), but when this was
reverted it also happened after commit 172dcd935c ("MIPS: Always
allocate exception vector for MIPSr2+").

Commit 0b24cae4d5 ("MIPS: Add missing EHB in mtc0 -> mfc0 sequence.")
does similar changes to a different file. I am not sure if there are
more places affected by this problem.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:56 +02:00
Martin Blumenstingl
2e859b14da MIPS: lantiq: xway: sysctrl: fix the GPHY clock alias names
commit 03e62fd67d3ab33f39573fc8787d89dc9b4d7255 upstream.

The dt-bindings for the GSWIP describe that the node should be named
"switch". Use the same name in sysctrl.c so the GSWIP driver can
actually find the "gphy0" and "gphy1" clocks.

Fixes: 14fceff477 ("net: dsa: Add Lantiq / Intel DSA driver for vrx200")
Cc: stable@vger.kernel.org
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:56 +02:00
Zhang Xiaoxu
71a20b798d cifs: Fix the target file was deleted when rename failed.
commit 9ffad9263b467efd8f8dc7ae1941a0a655a2bab2 upstream.

When xfstest generic/035, we found the target file was deleted
if the rename return -EACESS.

In cifs_rename2, we unlink the positive target dentry if rename
failed with EACESS or EEXIST, even if the target dentry is positived
before rename. Then the existing file was deleted.

We should just delete the target file which created during the
rename.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Cc: stable@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
Paul Aurich
49dae9bed7 SMB3: Honor 'handletimeout' flag for multiuser mounts
commit 6b356f6cf941d5054d7fab072cae4a5f8658e3db upstream.

Fixes: ca567eb2b3 ("SMB3: Allow persistent handle timeout to be configurable on mount")
Signed-off-by: Paul Aurich <paul@darkrain42.org>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
Paul Aurich
7ab27439fe SMB3: Honor lease disabling for multiuser mounts
commit ad35f169db6cd5a4c5c0a5a42fb0cad3efeccb83 upstream.

Fixes: 3e7a02d478 ("smb3: allow disabling requesting leases")
Signed-off-by: Paul Aurich <paul@darkrain42.org>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
Paul Aurich
0d5824aea7 SMB3: Honor persistent/resilient handle flags for multiuser mounts
commit 00dfbc2f9c61185a2e662f27c45a0bb29b2a134f upstream.

Without this:

- persistent handles will only be enabled for per-user tcons if the
  server advertises the 'Continuous Availabity' capability
- resilient handles would never be enabled for per-user tcons

Signed-off-by: Paul Aurich <paul@darkrain42.org>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
Paul Aurich
d56787683c SMB3: Honor 'seal' flag for multiuser mounts
commit cc15461c73d7d044d56c47e869a215e49bd429c8 upstream.

Ensure multiuser SMB3 mounts use encryption for all users' tcons if the
mount options are configured to require encryption. Without this, only
the primary tcon and IPC tcons are guaranteed to be encrypted. Per-user
tcons would only be encrypted if the server was configured to require
encryption.

Signed-off-by: Paul Aurich <paul@darkrain42.org>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
Greg Kroah-Hartman
e0ed5a36fb Revert "ALSA: usb-audio: Improve frames size computation"
This reverts commit aba41867dd which is
commit f0bd62b64016508938df9babe47f65c2c727d25c upstream.

It causes a number of reported issues and a fix for it has not hit
Linus's tree yet.  Revert this to resolve those problems.

Cc: Alexander Tsoy <alexander@tsoy.me>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Sasha Levin <sashal@kernel.org>
Cc: Hans de Goede <jwrdegoede@fedoraproject.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
J. Bruce Fields
fe05e114d0 nfsd: apply umask on fs without ACL support
commit 22cf8419f1319ff87ec759d0ebdff4cbafaee832 upstream.

The server is failing to apply the umask when creating new objects on
filesystems without ACL support.

To reproduce this, you need to use NFSv4.2 and a client and server
recent enough to support umask, and you need to export a filesystem that
lacks ACL support (for example, ext4 with the "noacl" mount option).

Filesystems with ACL support are expected to take care of the umask
themselves (usually by calling posix_acl_create).

For filesystems without ACL support, this is up to the caller of
vfs_create(), vfs_mknod(), or vfs_mkdir().

Reported-by: Elliott Mitchell <ehem+debian@m5p.com>
Reported-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Fixes: 47057abde5 ("nfsd: add support for the umask attribute")
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
Krzysztof Kozlowski
4ee7f1d2f1 spi: spi-fsl-dspi: Fix external abort on interrupt in resume or exit paths
commit 3d87b613d6a3c6f0980e877ab0895785a2dde581 upstream.

If shared interrupt comes late, during probe error path or device remove
(could be triggered with CONFIG_DEBUG_SHIRQ), the interrupt handler
dspi_interrupt() will access registers with the clock being disabled.
This leads to external abort on non-linefetch on Toradex Colibri VF50
module (with Vybrid VF5xx):

    $ echo 4002d000.spi > /sys/devices/platform/soc/40000000.bus/4002d000.spi/driver/unbind

    Unhandled fault: external abort on non-linefetch (0x1008) at 0x8887f02c
    Internal error: : 1008 [#1] ARM
    Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
    Backtrace:
      (regmap_mmio_read32le)
      (regmap_mmio_read)
      (_regmap_bus_reg_read)
      (_regmap_read)
      (regmap_read)
      (dspi_interrupt)
      (free_irq)
      (devm_irq_release)
      (release_nodes)
      (devres_release_all)
      (device_release_driver_internal)

The resource-managed framework should not be used for shared interrupt
handling, because the interrupt handler might be called after releasing
other resources and disabling clocks.

Similar bug could happen during suspend - the shared interrupt handler
could be invoked after suspending the device.  Each device sharing this
interrupt line should disable the IRQ during suspend so handler will be
invoked only in following cases:
1. None suspended,
2. All devices resumed.

Fixes: 349ad66c0a ("spi:Add Freescale DSPI driver for Vybrid VF610 platform")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200622110543.5035-3-krzk@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-09 09:37:55 +02:00
Wolfram Sang
9d60af5c3b i2c: mlxcpld: check correct size of maximum RECV_LEN packet
[ Upstream commit 597911287fcd13c3a4b4aa3e0a52b33d431e0a8e ]

I2C_SMBUS_BLOCK_MAX defines already the maximum number as defined in the
SMBus 2.0 specs. I don't see a reason to add 1 here. Also, fix the errno
to what is suggested for this error.

Fixes: c9bfdc7c16 ("i2c: mlxcpld: Add support for smbus block read transaction")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Michael Shych <michaelsh@mellanox.com>
Tested-by: Michael Shych <michaelsh@mellanox.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-07-09 09:37:54 +02:00
Chris Packham
b460fc9d05 i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
[ Upstream commit cd217f2300793a106b49c7dfcbfb26e348bc7593 ]

The PCA9665 datasheet says that I2CSTA = 78h indicates that SCL is stuck
low, this differs to the PCA9564 which uses 90h for this indication.
Treat either 0x78 or 0x90 as an indication that the SCL line is stuck.

Based on looking through the PCA9564 and PCA9665 datasheets this should
be safe for both chips. The PCA9564 should not return 0x78 for any valid
state and the PCA9665 should not return 0x90.

Fixes: eff9ec95ef ("i2c-algo-pca: Add PCA9665 support")
Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-07-09 09:37:54 +02:00
Kees Cook
a632f91f7a samples/vfs: avoid warning in statx override
[ Upstream commit c3eeaae9fd736b7f2afbda8d3cbb1cbae06decf3 ]

Something changed recently to uncover this warning:

  samples/vfs/test-statx.c:24:15: warning: `struct foo' declared inside parameter list will not be visible outside of this definition or declaration
     24 | #define statx foo
        |               ^~~

Which is due the use of "struct statx" (here, "struct foo") in a function
prototype argument list before it has been defined:

 int
 # 56 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h"
    foo
 # 56 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" 3 4
          (int __dirfd, const char *__restrict __path, int __flags,
            unsigned int __mask, struct
 # 57 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h"
                                       foo
 # 57 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" 3 4
                                             *__restrict __buf)
   __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 5)));

Add explicit struct before #include to avoid warning.

Fixes: f1b5618e01 ("vfs: Add a sample program for the new mount API")
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Miklos Szeredi <mszeredi@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: David Howells <dhowells@redhat.com>
Link: http://lkml.kernel.org/r/202006282213.C516EA6@keescook
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-07-09 09:37:54 +02:00
Christoph Hellwig
cd62eeb315 nvme: fix a crash in nvme_mpath_add_disk
[ Upstream commit 72d447113bb751ded97b2e2c38f886e4a4139082 ]

For private namespaces ns->head_disk is NULL, so add a NULL check
before updating the BDI capabilities.

Fixes: b2ce4d90690b ("nvme-multipath: set bdi capabilities once")
Reported-by: Avinash M N <Avinash.M.N@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-07-09 09:37:54 +02:00
Sagi Grimberg
c64141c68f nvme: fix identify error status silent ignore
[ Upstream commit ea43d9709f727e728e933a8157a7a7ca1a868281 ]

Commit 59c7c3caaaf8 intended to only silently ignore non retry-able
errors (DNR bit set) such that we can still identify misbehaving
controllers, and in the other hand propagate retry-able errors (DNR bit
cleared) so we don't wrongly abandon a namespace just because it happens
to be temporarily inaccessible.

The goal remains the same as the original commit where this was
introduced but unfortunately had the logic backwards.

Fixes: 59c7c3caaaf8 ("nvme: fix possible hang when ns scanning fails during error recovery")
Reported-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-07-09 09:37:54 +02:00