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
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>
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
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>
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
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>
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
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>
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
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
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
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
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
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
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
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
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
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
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
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>
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
-----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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
[ 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>
[ 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>
[ 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>
[ 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>
[ 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>