4.9.223-rc1 review
Greg Kroah-Hartman
maintainercover 4.9.223-rc1 review
This is the start of the stable review cycle for the 4.9.223 release. There are 18 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sun, 10 May 2020 12:29:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.223-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 4.9.223-rc1
Thomas Pedersen <[email protected]>
mac80211: add ieee80211_is_any_nullfunc()
Takashi Iwai <[email protected]>
ALSA: hda: Match both PCI ID and SSID for driver blacklist
Jere Leppänen <[email protected]>
sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
Marcin Nowakowski <[email protected]>
MIPS: perf: Remove incorrect odd/even counter handling for I6400
Chuck Lever <[email protected]>
xprtrdma: Fix backchannel allocation of extra rpcrdma_reps
Doug Berger <[email protected]>
net: systemport: suppress warnings on failed Rx SKB allocations
Doug Berger <[email protected]>
net: bcmgenet: suppress warnings on failed Rx SKB allocations
Nathan Chancellor <[email protected]>
lib/mpi: Fix building for powerpc with clang
Florian Fainelli <[email protected]>
net: dsa: b53: Rework ARL bin logic
Jeremie Francois (on alpha) <[email protected]>
scripts/config: allow colons in option strings for sed
Ronnie Sahlberg <[email protected]>
cifs: protect updating server->dstaddr with a spinlock
Julien Beraud <[email protected]>
net: stmmac: Fix sub-second increment
Xiyu Yang <[email protected]>
wimax/i2400m: Fix potential urb refcnt leak
Sebastian Reichel <[email protected]>
ASoC: sgtl5000: Fix VAG power-on handling
Tyler Hicks <[email protected]>
selftests/ipc: Fix test failure seen after initial test run
YueHaibing <[email protected]>
iio:ad7797: Use correct attribute_group
Alexey Kardashevskiy <[email protected]>
powerpc/pci/of: Parse unassigned resources
Jia He <[email protected]>
vhost: vsock: kick send_pkt worker once device is started
-------------
Diffstat:
Makefile | 4 +-- arch/mips/kernel/perf_event_mipsxx.c | 6 +++- arch/powerpc/kernel/pci_of_scan.c | 12 ++++++-- drivers/iio/adc/ad7793.c | 2 +- drivers/net/dsa/b53/b53_common.c | 30 ++++++++++++++++--- drivers/net/dsa/b53/b53_regs.h | 3 ++ drivers/net/ethernet/broadcom/bcmsysport.c | 3 +- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 +- .../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 12 +++++--- drivers/net/wimax/i2400m/usb-fw.c | 1 + drivers/vhost/vsock.c | 5 ++++ fs/cifs/connect.c | 2 ++ include/linux/ieee80211.h | 9 ++++++ lib/mpi/longlong.h | 34 +++++++++++----------- net/mac80211/mlme.c | 2 +- net/mac80211/rx.c | 8 ++--- net/mac80211/status.c | 5 ++-- net/mac80211/tx.c | 2 +- net/sctp/sm_make_chunk.c | 6 +++- net/sunrpc/xprtrdma/backchannel.c | 12 ++------ net/sunrpc/xprtrdma/verbs.c | 34 +++++++++++++--------- net/sunrpc/xprtrdma/xprt_rdma.h | 2 +- scripts/config | 5 +++- sound/pci/hda/hda_intel.c | 9 +++--- sound/soc/codecs/sgtl5000.c | 34 ++++++++++++++++++++++ sound/soc/codecs/sgtl5000.h | 1 + tools/testing/selftests/ipc/msgque.c | 2 +- 27 files changed, 173 insertions(+), 75 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/18 vhost: vsock: kick send_pkt worker once device is started
From: Jia He <[email protected]>
commit 0b841030625cde5f784dd62aec72d6a766faae70 upstream.
Ning Bo reported an abnormal 2-second gap when booting Kata container [1]. The unconditional timeout was caused by VSOCK_DEFAULT_CONNECT_TIMEOUT of connecting from the client side. The vhost vsock client tries to connect an initializing virtio vsock server.
The abnormal flow looks like:
host-userspace vhost vsock guest vsock
============== =========== ============
connect() --------> vhost_transport_send_pkt_work() initializing
| vq->private_data==NULL
| will not be queued
V
schedule_timeout(2s)
vhost_vsock_start() <--------- device ready
set vq->private_datawait for 2s and failedconnect() again vq->private_data!=NULL recv connecting pkt
Details:
1. Host userspace sends a connect pkt, at that time, guest vsock is under initializing, hence the vhost_vsock_start has not been called. So vq->private_data==NULL, and the pkt is not been queued to send to guest
2. Then it sleeps for 2s
3. After guest vsock finishes initializing, vq->private_data is set
4. When host userspace wakes up after 2s, send connecting pkt again, everything is fine.
As suggested by Stefano Garzarella, this fixes it by additional kicking the send_pkt worker in vhost_vsock_start once the virtio device is started. This makes the pending pkt sent again.
After this patch, kata-runtime (with vsock enabled) boot time is reduced from 3s to 1s on a ThunderX2 arm64 server.
[1] https://github.com/kata-containers/runtime/issues/1917
--- drivers/vhost/vsock.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/vhost/vsock.c +5 -0
@@ -460,6 +460,11 @@ static int vhost_vsock_start(struct vhosmutex_unlock (&vq->mutex); } +/* Some packets may have been queued before the device was started, +* let's kick the send worker to send them. +*/ +vhost_work_queue (&vsock->dev, &vsock->send_pkt_work); +mutex_unlock (&vsock->dev.mutex);return 0 ;
Greg Kroah-Hartman
maintainerPATCH 2/18 powerpc/pci/of: Parse unassigned resources
In reply to Greg Kroah-HartmanFrom: Alexey Kardashevskiy <[email protected]>
commit dead1c845dbe97e0061dae2017eaf3bd8f8f06ee upstream.
The pseries platform uses the PCI_PROBE_DEVTREE method of PCI probing which reads "assigned-addresses" of every PCI device and initializes the device resources. However if the property is missing or zero sized, then there is no fallback of any kind and the PCI resources remain undiscovered, i.e. pdev->resource[] array remains empty.
This adds a fallback which parses the "reg" property in pretty much same way except it marks resources as "unset" which later make Linux assign those resources proper addresses.
This has an effect when:
1. a hypervisor failed to assign any resource for a device;
2. /chosen/linux,pci-probe-only=0 is in the DT so the system may try assigning a resource.
Neither is likely to happen under PowerVM.
--- arch/powerpc/kernel/pci_of_scan.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
arch/powerpc/kernel/pci_of_scan.c +10 -2
@@ -82,10 +82,16 @@ static void of_pci_parse_addrs(struct deconst __be32 *addrs;u32 i;int proplen; +bool mark_unset = false; addrs =of_get_property (node,"assigned-addresses" , &proplen); -if (!addrs) -return ; +if (!addrs || !proplen) { + addrs =of_get_property (node,"reg" , &proplen); +if (!addrs || !proplen) +return ; + mark_unset = true; + } +pr_debug (" parse addresses (%d bytes) @ %p\n" , proplen, addrs);for (; proplen >=20 ; proplen -=20 , addrs +=5 ) { flags =pci_parse_of_flags (of_read_number (addrs,1 ),0 );
@@ -110,6 +116,8 @@ static void of_pci_parse_addrs(struct decontinue ; } res->flags = flags; +if (mark_unset) + res->flags |=IORESOURCE_UNSET ; res->name =pci_name (dev); region.start = base; region.end = base + size -1 ;
Greg Kroah-Hartman
maintainerPATCH 3/18 iio:ad7797: Use correct attribute_group
In reply to Greg Kroah-HartmanFrom: YueHaibing <[email protected]>
[ Upstream commit 28535877ac5b2b84f0d394fd67a5ec71c0c48b10 ]
It should use ad7797_attribute_group in ad7797_info,
according to commit ("iio:ad7793: Add support for the ad7796 and ad7797").
Scale is fixed for the ad7796 and not programmable, hence should not have the scale_available attribute.
--- drivers/iio/adc/ad7793.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/iio/adc/ad7793.c +1 -1
@@ -570,7 +570,7 @@ static const struct iio_info ad7797_info = { .read_raw = &ad7793_read_raw, .write_raw = &ad7793_write_raw, .write_raw_get_fmt = &ad7793_write_raw_get_fmt, - .attrs = &ad7793_attribute_group, + .attrs = &ad7797_attribute_group, .validate_trigger = ad_sd_validate_trigger, .driver_module = THIS_MODULE, };
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 4/18 selftests/ipc: Fix test failure seen after initial test run
In reply to Greg Kroah-HartmanFrom: Tyler Hicks <[email protected]>
[ Upstream commit b87080eab4c1377706c113fc9c0157f19ea8fed1 ]
After successfully running the IPC msgque test once, subsequent runs result in a test failure:
$ sudo ./run_kselftest.sh TAP version 13 1..1 # selftests: ipc: msgque # Failed to get stats for IPC queue with id 0 # Failed to dump queue: -22 # Bail out! # # Pass 0 Fail 0 Xfail 0 Xpass 0 Skip 0 Error 0 not ok 1 selftests: ipc: msgque # exit=1
The dump_queue() function loops through the possible message queue index values using calls to msgctl(kern_id, MSG_STAT, ...) where kern_id represents the index value. The first time the test is ran, the initial index value of 0 is valid and the test is able to complete. The index value of 0 is not valid in subsequent test runs and the loop attempts to try index values of 1, 2, 3, and so on until a valid index value is found that corresponds to the message queue created earlier in the test.
The msgctl() syscall returns -1 and sets errno to EINVAL when invalid index values are used. The test failure is caused by incorrectly comparing errno to -EINVAL when cycling through possible index values.
Fix invalid test failures on subsequent runs of the msgque test by correctly comparing errno values to a non-negated EINVAL.
--- tools/testing/selftests/ipc/msgque.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/testing/selftests/ipc/msgque.c +1 -1
@@ -135,7 +135,7 @@ int dump_queue(struct msgque_data *msgque)for (kern_id =0 ; kern_id <256 ; kern_id++) { ret =msgctl (kern_id,MSG_STAT , &ds);if (ret <0 ) { -if (errno == -EINVAL ) +if (errno ==EINVAL )continue ;printf ("Failed to get stats for IPC queue with id %d\n" , kern_id);
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 5/18 ASoC: sgtl5000: Fix VAG power-on handling
In reply to Greg Kroah-HartmanFrom: Sebastian Reichel <[email protected]>
[ Upstream commit aa7812737f2877e192d57626cbe8825cc7cf6de9 ]
As mentioned slightly out of patch context in the code, there is no reset routine for the chip. On boards where the chip is supplied by a fixed regulator, it might not even be resetted during (e.g. watchdog) reboot and can be in any state.
If the device is probed with VAG enabled, the driver's probe routine will generate a loud pop sound when ANA_POWER is being programmed. Avoid this by properly disabling just the VAG bit and waiting the required power down time.
--- sound/soc/codecs/sgtl5000.c | 34 ++++++++++++++++++++++++++++++++++ sound/soc/codecs/sgtl5000.h | 1 + 2 files changed, 35 insertions(+)
sound/soc/codecs/sgtl5000.c +34 -0
@@ -1464,6 +1464,40 @@ static int sgtl5000_i2c_probe(struct i2c_client *client,dev_err (&client->dev,"Error %d initializing CHIP_CLK_CTRL\n" , ret); +/* Mute everything to avoid pop from the following power-up */ + ret =regmap_write (sgtl5000->regmap,SGTL5000_CHIP_ANA_CTRL , +SGTL5000_CHIP_ANA_CTRL_DEFAULT ); +if (ret) { +dev_err (&client->dev, +"Error %d muting outputs via CHIP_ANA_CTRL\n" , ret); + goto disable_clk; + } + +/* +* If VAG is powered-on (e.g. from previous boot), it would be disabled +* by the write to ANA_POWER in later steps of the probe code. This +* may create a loud pop even with all outputs muted. The proper way +* to circumvent this is disabling the bit first and waiting the proper +* cool-down time. +*/ + ret =regmap_read (sgtl5000->regmap,SGTL5000_CHIP_ANA_POWER , &value); +if (ret) { +dev_err (&client->dev,"Failed to read ANA_POWER: %d\n" , ret); + goto disable_clk; + } +if (value &SGTL5000_VAG_POWERUP ) { + ret =regmap_update_bits (sgtl5000->regmap, +SGTL5000_CHIP_ANA_POWER , +SGTL5000_VAG_POWERUP , +0 ); +if (ret) { +dev_err (&client->dev,"Error %d disabling VAG\n" , ret); + goto disable_clk; + } + +msleep (SGTL5000_VAG_POWERDOWN_DELAY ); + } +/* Follow section 2.2.1.1 of AN3663 */ ana_pwr =SGTL5000_ANA_POWER_DEFAULT ;if (sgtl5000->num_supplies <=VDDD ) {
sound/soc/codecs/sgtl5000.h +1 -0
@@ -236,6 +236,7 @@/* * SGTL5000_CHIP_ANA_CTRL */ +#define SGTL5000_CHIP_ANA_CTRL_DEFAULT 0x0133#define SGTL5000_LINE_OUT_MUTE 0x0100#define SGTL5000_HP_SEL_MASK 0x0040#define SGTL5000_HP_SEL_SHIFT 6
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 6/18 wimax/i2400m: Fix potential urb refcnt leak
In reply to Greg Kroah-HartmanFrom: Xiyu Yang <[email protected]>
[ Upstream commit 7717cbec172c3554d470023b4020d5781961187e ]
i2400mu_bus_bm_wait_for_ack() invokes usb_get_urb(), which increases the refcount of the "notif_urb".
When i2400mu_bus_bm_wait_for_ack() returns, local variable "notif_urb" becomes invalid, so the refcount should be decreased to keep refcount balanced.
The issue happens in all paths of i2400mu_bus_bm_wait_for_ack(), which forget to decrease the refcnt increased by usb_get_urb(), causing a refcnt leak.
Fix this issue by calling usb_put_urb() before the i2400mu_bus_bm_wait_for_ack() returns.
--- drivers/net/wimax/i2400m/usb-fw.c | 1 + 1 file changed, 1 insertion(+)
drivers/net/wimax/i2400m/usb-fw.c +1 -0
@@ -354,6 +354,7 @@ ssize_t i2400mu_bus_bm_wait_for_ack(struct i2400m *i2400m,usb_autopm_put_interface (i2400mu->usb_iface);d_fnend (8 , dev,"(i2400m %p ack %p size %zu) = %ld\n" , i2400m, ack, ack_size, (long ) result); +usb_put_urb (¬if_urb);return result; error_exceeded:
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 7/18 net: stmmac: Fix sub-second increment
In reply to Greg Kroah-HartmanFrom: Julien Beraud <[email protected]>
[ Upstream commit 91a2559c1dc5b0f7e1256d42b1508935e8eabfbf ]
In fine adjustement mode, which is the current default, the sub-second
increment register is the number of nanoseconds that will be added to the clock when the accumulator overflows. At each clock cycle, the value of the addend register is added to the accumulator. Currently, we use 20ns = 1e09ns / 50MHz as this value whatever the frequency of the ptp clock actually is.
The adjustment is then done on the addend register, only incrementing every X clock cycles X being the ratio between 50MHz and ptp_clock_rate (addend = 2^32 * 50MHz/ptp_clock_rate).
This causes the following issues :
- In case the frequency of the ptp clock is inferior or equal to 50MHz, the addend value calculation will overflow and the default addend value will be set to 0, causing the clock to not work at all. (For instance, for ptp_clock_rate = 50MHz, addend = 2^32).
- The resolution of the timestamping clock is limited to 20ns while it is not needed, thus limiting the accuracy of the timestamping to 20ns.
Fix this by setting sub-second increment to 2e09ns / ptp_clock_rate. It will allow to reach the minimum possible frequency for ptp_clk_ref, which is 5MHz for GMII 1000Mps Full-Duplex by setting the sub-second-increment to a higher value. For instance, for 25MHz, it gives ssinc = 80ns and default_addend = 2^31.
It will also allow to use a lower value for sub-second-increment, thus improving the timestamping accuracy with frequencies higher than 100MHz, for instance, for 200MHz, ssinc = 10ns and default_addend = 2^31.
v1->v2:
- Remove modifications to the calculation of default addend, which broke compatibility with clock frequencies for which 2000000000 / ptp_clk_freq is not an integer.
- Modify description according to discussions.
--- .../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c +8 -4
@@ -40,12 +40,16 @@ static u32 stmmac_config_sub_second_increment(void __iomem *ioaddr,unsigned long data;u32 reg_value; -/* For GMAC3.x, 4.x versions, convert the ptp_clock to nano second -* formula = (1/ptp_clock) * 1000000000 -* where ptp_clock is 50MHz if fine method is used to update system +/* For GMAC3.x, 4.x versions, in "fine adjustement mode" set sub-second +* increment to twice the number of nanoseconds of a clock cycle. +* The calculation of the default_addend value by the caller will set it +* to mid-range = 2^31 when the remainder of this division is zero, +* which will make the accumulator overflow once every 2 ptp_clock +* cycles, adding twice the number of nanoseconds of a clock cycle : +* 2000000000ULL / ptp_clock. */ if (value &PTP_TCR_TSCFUPDT ) - data = (1000000000ULL /50000000 ); + data = (2000000000ULL / ptp_clock);else data = (1000000000ULL / ptp_clock);
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 8/18 cifs: protect updating server->dstaddr with a spinlock
In reply to Greg Kroah-HartmanFrom: Ronnie Sahlberg <[email protected]>
[ Upstream commit fada37f6f62995cc449b36ebba1220594bfe55fe ]
We use a spinlock while we are reading and accessing the destination address for a server. We need to also use this spinlock to protect when we are modifying this address from reconn_set_ipaddr().
--- fs/cifs/connect.c | 2 ++ 1 file changed, 2 insertions(+)
fs/cifs/connect.c +2 -0
@@ -341,8 +341,10 @@ static int reconn_set_ipaddr(struct TCP_Server_Info *server)return rc; } +spin_lock (&cifs_tcp_ses_lock); rc =cifs_convert_address ((struct sockaddr *)&server->dstaddr, ipaddr,strlen (ipaddr)); +spin_unlock (&cifs_tcp_ses_lock);kfree (ipaddr);return !rc ?-1 :0 ;
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 9/18 scripts/config: allow colons in option strings for sed
In reply to Greg Kroah-HartmanFrom: Jeremie Francois (on alpha) <[email protected]>
[ Upstream commit e461bc9f9ab105637b86065d24b0b83f182d477c ]
Sed broke on some strings as it used colon as a separator. I made it more robust by using \001, which is legit POSIX AFAIK.
E.g. ./config --set-str CONFIG_USBNET_DEVADDR "de:ad:be:ef:00:01" failed with: sed: -e expression #1, char 55: unknown option to `s'
--- scripts/config | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
scripts/config +4 -1
@@ -6,6 +6,9 @@ myname=${0##*/} # If no prefix forced, use the default CONFIG_ CONFIG_="${CONFIG_-CONFIG_}" +# We use an uncommon delimiter for sed substitutions +SED_DELIM=$(echo -en "\001") + usage() { cat >&2 <<EOL Manipulate options in a .config file from the command line.
@@ -82,7 +85,7 @@ txt_subst() { local infile="$3" local tmpfile="$infile.swp" - sed -e "s:$before:$after:" "$infile" >"$tmpfile" + sed -e "s$SED_DELIM$before$SED_DELIM$after$SED_DELIM" "$infile" >"$tmpfile" # replace original file with the edited one mv "$tmpfile" "$infile" }
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 10/18 net: dsa: b53: Rework ARL bin logic
In reply to Greg Kroah-HartmanFrom: Florian Fainelli <[email protected]>
[ Upstream commit 6344dbde6a27d10d16246d734b968f84887841e2 ]
When asking the ARL to read a MAC address, we will get a number of bins returned in a single read. Out of those bins, there can essentially be 3 states:
- all bins are full, we have no space left, and we can either replace an existing address or return that full condition
- the MAC address was found, then we need to return its bin index and modify that one, and only that one
- the MAC address was not found and we have a least one bin free, we use that bin index location then
The code would unfortunately fail on all counts.
--- drivers/net/dsa/b53/b53_common.c | 30 ++++++++++++++++++++++++++---- drivers/net/dsa/b53/b53_regs.h | 3 +++ 2 files changed, 29 insertions(+), 4 deletions(-)
drivers/net/dsa/b53/b53_common.c +26 -4
@@ -1109,6 +1109,7 @@ static int b53_arl_read(struct b53_device *dev, u64 mac, u16 vid, struct b53_arl_entry *ent, u8 *idx, bool is_valid) { +DECLARE_BITMAP (free_bins ,B53_ARLTBL_MAX_BIN_ENTRIES );unsigned int i;int ret;
@@ -1116,6 +1117,8 @@ static int b53_arl_read(struct b53_device *dev, u64 mac,if (ret)return ret; +bitmap_zero (free_bins, dev->num_arl_entries); +/* Read the bins */ for (i =0 ; i < dev->num_arl_entries; i++) {u64 mac_vid;
@@ -1127,13 +1130,21 @@ static int b53_arl_read(struct b53_device *dev, u64 mac, B53_ARLTBL_DATA_ENTRY(i), &fwd_entry);b53_arl_to_entry (ent, mac_vid, fwd_entry); -if (!(fwd_entry &ARLTBL_VALID )) +if (!(fwd_entry &ARLTBL_VALID )) { +set_bit (i, free_bins);continue ; + }if ((mac_vid &ARLTBL_MAC_MASK ) != mac)continue ; *idx = i; +return 0 ; } +if (bitmap_weight (free_bins, dev->num_arl_entries) ==0 ) +return -ENOSPC ; + + *idx =find_first_bit (free_bins, dev->num_arl_entries); +return -ENOENT ; }
@@ -1163,10 +1174,21 @@ static int b53_arl_op(struct b53_device *dev, int op, int port,if (op)return ret; -/* We could not find a matching MAC, so reset to a new entry */ -if (ret) { +switch (ret) { +case -ENOSPC : +dev_dbg (dev->dev,"{%pM,%.4d} no space left in ARL\n" , + addr, vid); +return is_valid ? ret :0 ; +case -ENOENT : +/* We could not find a matching MAC, so reset to a new entry */ +dev_dbg (dev->dev,"{%pM,%.4d} not found, using idx: %d\n" , + addr, vid, idx); fwd_entry =0 ; - idx =1 ; +break ; +default : +dev_dbg (dev->dev,"{%pM,%.4d} found, using idx: %d\n" , + addr, vid, idx); +break ; }memset (&ent,0 ,sizeof (ent));
drivers/net/dsa/b53/b53_regs.h +3 -0
@@ -280,6 +280,9 @@#define ARLTBL_STATIC BIT(15)#define ARLTBL_VALID BIT(16) +/* Maximum number of bin entries in the ARL for all switches */ +#define B53_ARLTBL_MAX_BIN_ENTRIES 4 +/* ARL Search Control Register (8 bit) */ #define B53_ARL_SRCH_CTL 0x50#define B53_ARL_SRCH_CTL_25 0x20
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 11/18 lib/mpi: Fix building for powerpc with clang
In reply to Greg Kroah-HartmanFrom: Nathan Chancellor <[email protected]>
[ Upstream commit 5990cdee689c6885b27c6d969a3d58b09002b0bc ]
0day reports over and over on an powerpc randconfig with clang:
lib/mpi/generic_mpih-mul1.c:37:13: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
Remove the superfluous casts, which have been done previously for x86 and arm32 in commit dea632cadd12 ("lib/mpi: fix build with clang") and commit 7b7c1df2883d ("lib/mpi/longlong.h: fix building with 32-bit x86").
--- lib/mpi/longlong.h | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-)
lib/mpi/longlong.h +17 -17
@@ -756,22 +756,22 @@ do { \ do { \ if (__builtin_constant_p(bh) && (bh) == 0) \ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "%r" ((USItype)(ah)), \ "%r" ((USItype)(al)), \ "rI" ((USItype)(bl))); \ else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "%r" ((USItype)(ah)), \ "%r" ((USItype)(al)), \ "rI" ((USItype)(bl))); \ else \ __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "%r" ((USItype)(ah)), \ "r" ((USItype)(bh)), \ "%r" ((USItype)(al)), \
@@ -781,36 +781,36 @@ do { \ do { \ if (__builtin_constant_p(ah) && (ah) == 0) \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "r" ((USItype)(bh)), \ "rI" ((USItype)(al)), \ "r" ((USItype)(bl))); \ else if (__builtin_constant_p(ah) && (ah) == ~(USItype) 0) \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "r" ((USItype)(bh)), \ "rI" ((USItype)(al)), \ "r" ((USItype)(bl))); \ else if (__builtin_constant_p(bh) && (bh) == 0) \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "r" ((USItype)(ah)), \ "rI" ((USItype)(al)), \ "r" ((USItype)(bl))); \ else if (__builtin_constant_p(bh) && (bh) == ~(USItype) 0) \ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "r" ((USItype)(ah)), \ "rI" ((USItype)(al)), \ "r" ((USItype)(bl))); \ else \ __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \ - : "=r" ((USItype)(sh)), \ - "=&r" ((USItype)(sl)) \ + : "=r" (sh), \ + "=&r" (sl) \ : "r" ((USItype)(ah)), \ "r" ((USItype)(bh)), \ "rI" ((USItype)(al)), \
@@ -821,7 +821,7 @@ do { \ do { \ USItype __m0 = (m0), __m1 = (m1); \ __asm__ ("mulhwu %0,%1,%2" \ - : "=r" ((USItype) ph) \ + : "=r" (ph) \ : "%r" (__m0), \ "r" (__m1)); \ (pl) = __m0 * __m1; \
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 12/18 net: bcmgenet: suppress warnings on failed Rx SKB allocations
In reply to Greg Kroah-HartmanFrom: Doug Berger <[email protected]>
[ Upstream commit ecaeceb8a8a145d93c7e136f170238229165348f ]
The driver is designed to drop Rx packets and reclaim the buffers when an allocation fails, and the network interface needs to safely handle this packet loss. Therefore, an allocation failure of Rx SKBs is relatively benign.
However, the output of the warning message occurs with a high scheduling priority that can cause excessive jitter/latency for other high priority processing.
This commit suppresses the warning messages to prevent scheduling problems while retaining the failure count in the statistics of the network interface.
--- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/net/ethernet/broadcom/genet/bcmgenet.c +2 -1
@@ -1596,7 +1596,8 @@ static struct sk_buff *bcmgenet_rx_refill(struct bcmgenet_priv *priv,dma_addr_t mapping;/* Allocate a new Rx skb */ - skb =netdev_alloc_skb (priv->dev, priv->rx_buf_len +SKB_ALIGNMENT ); + skb =__netdev_alloc_skb (priv->dev, priv->rx_buf_len +SKB_ALIGNMENT , +GFP_ATOMIC | __GFP_NOWARN);if (!skb) { priv->mib.alloc_rx_buff_failed++; netif_err(priv, rx_err, priv->dev,
Signature · 1 line
2.20.1
Greg Kroah-Hartman
maintainerPATCH 13/18 net: systemport: suppress warnings on failed Rx SKB allocations
In reply to Greg Kroah-HartmanFrom: Doug Berger <[email protected]>
[ Upstream commit 3554e54a46125030c534820c297ed7f6c3907e24 ]
The driver is designed to drop Rx packets and reclaim the buffers when an allocation fails, and the network interface needs to safely handle this packet loss. Therefore, an allocation failure of Rx SKBs is relatively benign.
However, the output of the warning message occurs with a high scheduling priority that can cause excessive jitter/latency for other high priority processing.
This commit suppresses the warning messages to prevent scheduling problems while retaining the failure count in the statistics of the network interface.
--- drivers/net/ethernet/broadcom/bcmsysport.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/net/ethernet/broadcom/bcmsysport.c +2 -1
@@ -504,7 +504,8 @@ static struct sk_buff *bcm_sysport_rx_redma_addr_t mapping;/* Allocate a new SKB for a new packet */ - skb =netdev_alloc_skb (priv->netdev,RX_BUF_LENGTH ); + skb =__netdev_alloc_skb (priv->netdev,RX_BUF_LENGTH , +GFP_ATOMIC | __GFP_NOWARN);if (!skb) { priv->mib.alloc_rx_buff_failed++;netif_err (priv, rx_err, ndev,"SKB alloc failed\n" );
Greg Kroah-Hartman
maintainerPATCH 14/18 xprtrdma: Fix backchannel allocation of extra rpcrdma_reps
In reply to Greg Kroah-HartmanFrom: Chuck Lever <[email protected]>
commit d698c4a02ee02053bbebe051322ff427a2dad56a upstream.
The backchannel code uses rpcrdma_recv_buffer_put to add new reps to the free rep list. This also decrements rb_recv_count, which spoofs the receive overrun logic in rpcrdma_buffer_get_rep.
Commit 9b06688bc3b9 ("xprtrdma: Fix additional uses of spin_lock_irqsave(rb_lock)") replaced the original open-coded list_add with a call to rpcrdma_recv_buffer_put(), but then a year later, commit 05c974669ece ("xprtrdma: Fix receive buffer accounting") added rep accounting to rpcrdma_recv_buffer_put. It was an oversight to let the backchannel continue to use this function.
The fix this, let's combine the "add to free list" logic with rpcrdma_create_rep.
Also, do not allocate RPCRDMA_MAX_BC_REQUESTS rpcrdma_reps in rpcrdma_buffer_create and then allocate additional rpcrdma_reps in rpcrdma_bc_setup_reps. Allocating the extra reps during backchannel set-up is sufficient.
--- net/sunrpc/xprtrdma/backchannel.c | 12 ++---------- net/sunrpc/xprtrdma/verbs.c | 34 ++++++++++++++++++++-------------- net/sunrpc/xprtrdma/xprt_rdma.h | 2 +- 3 files changed, 23 insertions(+), 25 deletions(-)
net/sunrpc/xprtrdma/backchannel.c +2 -10
@@ -71,21 +71,13 @@ out_fail:static int rpcrdma_bc_setup_reps (struct rpcrdma_xprt *r_xprt,unsigned int count) { -struct rpcrdma_rep *rep;int rc =0 ;while (count--) { - rep =rpcrdma_create_rep (r_xprt); -if (IS_ERR (rep)) { -pr_err ("RPC: %s: reply buffer alloc failed\n" , - __func__); - rc =PTR_ERR (rep); + rc =rpcrdma_create_rep (r_xprt); +if (rc)break ; - } - -rpcrdma_recv_buffer_put (rep); } -return rc; }
net/sunrpc/xprtrdma/verbs.c +20 -14
@@ -891,10 +891,17 @@ rpcrdma_create_req(struct rpcrdma_xprt *return req; } -struct rpcrdma_rep * -rpcrdma_create_rep (struct rpcrdma_xprt *r_xprt) +/** +* rpcrdma_create_rep - Allocate an rpcrdma_rep object +* @r_xprt: controlling transport +* +* Returns 0 on success or a negative errno on failure. +*/ +int +rpcrdma_create_rep (struct rpcrdma_xprt *r_xprt) {struct rpcrdma_create_data_internal *cdata = &r_xprt->rx_data; +struct rpcrdma_buffer *buf = &r_xprt->rx_buf;struct rpcrdma_ia *ia = &r_xprt->rx_ia;struct rpcrdma_rep *rep;int rc;
@@ -919,12 +926,18 @@ rpcrdma_create_rep(struct rpcrdma_xprt * rep->rr_recv_wr.wr_cqe = &rep->rr_cqe; rep->rr_recv_wr.sg_list = &rep->rr_rdmabuf->rg_iov; rep->rr_recv_wr.num_sge =1 ; -return rep; + +spin_lock (&buf->rb_lock); +list_add (&rep->rr_list, &buf->rb_recv_bufs); +spin_unlock (&buf->rb_lock); +return 0 ; out_free:kfree (rep); out: -return ERR_PTR (rc); +dprintk ("RPC: %s: reply buffer %d alloc failed\n" , + __func__, rc); +return rc; }int
@@ -967,17 +980,10 @@ rpcrdma_buffer_create(struct rpcrdma_xpr }INIT_LIST_HEAD (&buf->rb_recv_bufs); -for (i =0 ; i < buf->rb_max_requests +RPCRDMA_MAX_BC_REQUESTS ; i++) { -struct rpcrdma_rep *rep; - - rep =rpcrdma_create_rep (r_xprt); -if (IS_ERR (rep)) { -dprintk ("RPC: %s: reply buffer %d alloc failed\n" , - __func__, i); - rc =PTR_ERR (rep); +for (i =0 ; i <= buf->rb_max_requests; i++) { + rc =rpcrdma_create_rep (r_xprt); +if (rc) goto out; - } -list_add (&rep->rr_list, &buf->rb_recv_bufs); }return 0 ;
net/sunrpc/xprtrdma/xprt_rdma.h +1 -1
@@ -502,8 +502,8 @@ int rpcrdma_ep_post_recv(struct rpcrdma_* Buffer calls - xprtrdma/verbs.c */ struct rpcrdma_req *rpcrdma_create_req (struct rpcrdma_xprt *); -struct rpcrdma_rep *rpcrdma_create_rep (struct rpcrdma_xprt *);void rpcrdma_destroy_req (struct rpcrdma_req *); +int rpcrdma_create_rep (struct rpcrdma_xprt *r_xprt);int rpcrdma_buffer_create (struct rpcrdma_xprt *);void rpcrdma_buffer_destroy (struct rpcrdma_buffer *);
Greg Kroah-Hartman
maintainerPATCH 15/18 MIPS: perf: Remove incorrect odd/even counter handling for I6400
In reply to Greg Kroah-HartmanFrom: Marcin Nowakowski <[email protected]>
commit f7a31b5e7874f77464a4eae0a8ba84b9ae0b3a54 upstream.
All performance counters on I6400 (odd and even) are capable of counting any of the available events, so drop current logic of using the extra bit to determine which counter to use.
Patchwork: https://patchwork.linux-mips.org/patch/15991/
--- arch/mips/kernel/perf_event_mipsxx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
arch/mips/kernel/perf_event_mipsxx.c +5 -1
@@ -1605,7 +1605,6 @@ static const struct mips_perf_event *mipbreak ;case CPU_P5600 :case CPU_P6600 : -case CPU_I6400 :/* 8-bit event numbers */ raw_id = config &0x1ff ; base_id = raw_id &0xff ;
@@ -1618,6 +1617,11 @@ static const struct mips_perf_event *mip raw_event.range =P ;#endif break ; +case CPU_I6400 : +/* 8-bit event numbers */ + base_id = config &0xff ; + raw_event.cntr_mask =CNTR_EVEN |CNTR_ODD ; +break ;case CPU_1004K :if (IS_BOTH_COUNTERS_1004K_EVENT (base_id)) raw_event.cntr_mask =CNTR_EVEN |CNTR_ODD ;
Greg Kroah-Hartman
maintainerPATCH 16/18 sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
In reply to Greg Kroah-HartmanFrom: Jere Leppänen <[email protected]>
commit 12dfd78e3a74825e6f0bc8df7ef9f938fbc6bfe3 upstream.
When starting shutdown in sctp_sf_do_dupcook_a(), get the value for SHUTDOWN Cumulative TSN Ack from the new association, which is reconstructed from the cookie, instead of the old association, which the peer doesn't have anymore.
Otherwise the SHUTDOWN is either ignored or replied to with an ABORT by the peer because CTSN Ack doesn't match the peer's Initial TSN.
--- net/sctp/sm_make_chunk.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
net/sctp/sm_make_chunk.c +5 -1
@@ -856,7 +856,11 @@ struct sctp_chunk *sctp_make_shutdown(cosctp_shutdownhdr_t shut;__u32 ctsn; - ctsn =sctp_tsnmap_get_ctsn (&asoc->peer.tsn_map); +if (chunk && chunk->asoc) + ctsn =sctp_tsnmap_get_ctsn (&chunk->asoc->peer.tsn_map); +else + ctsn =sctp_tsnmap_get_ctsn (&asoc->peer.tsn_map); + shut.cum_tsn_ack =htonl (ctsn); retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN, 0,
Greg Kroah-Hartman
maintainerPATCH 17/18 ALSA: hda: Match both PCI ID and SSID for driver blacklist
In reply to Greg Kroah-HartmanFrom: Takashi Iwai <[email protected]>
commit 977dfef40c8996b69afe23a9094d184049efb7bb upstream.
The commit 3c6fd1f07ed0 ("ALSA: hda: Add driver blacklist") added a new blacklist for the devices that are known to have empty codecs, and one of the entries was ASUS ROG Zenith II (PCI SSID 1043:874f). However, it turned out that the very same PCI SSID is used for the previous model that does have the valid HD-audio codecs and the change broke the sound on it.
Since the empty codec problem appear on the certain AMD platform (PCI ID 1022:1487), this patch changes the blacklist matching to both PCI ID and SSID using pci_match_id(). Also, the entry that was removed by the previous fix for ASUS ROG Zenigh II is re-added.
--- sound/pci/hda/hda_intel.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
sound/pci/hda/hda_intel.c +5 -4
@@ -1966,9 +1966,10 @@ static const struct hdac_io_ops pci_hda_* some HD-audio PCI entries are exposed without any codecs, and such devices * should be ignored from the beginning. */ -static const struct snd_pci_quirk driver_blacklist[] = { -SND_PCI_QUIRK (0x1462 ,0xcb59 ,"MSI TRX40 Creator" ,0 ), -SND_PCI_QUIRK (0x1462 ,0xcb60 ,"MSI TRX40" ,0 ), +static const struct pci_device_id driver_blacklist[] = { + {PCI_DEVICE_SUB (0x1022 ,0x1487 ,0x1043 ,0x874f ) },/* ASUS ROG Zenith II / Strix */ + {PCI_DEVICE_SUB (0x1022 ,0x1487 ,0x1462 ,0xcb59 ) },/* MSI TRX40 Creator */ + {PCI_DEVICE_SUB (0x1022 ,0x1487 ,0x1462 ,0xcb60 ) },/* MSI TRX40 */ {} };
@@ -1991,7 +1992,7 @@ static int azx_probe(struct pci_dev *pcibool schedule_probe;int err; -if (snd_pci_quirk_lookup (pci, driver_blacklist)) { +if (pci_match_id (driver_blacklist, pci)) {dev_info (&pci->dev,"Skipping the blacklisted device\n" );return -ENODEV ; }
Greg Kroah-Hartman
maintainerPATCH 18/18 mac80211: add ieee80211_is_any_nullfunc()
In reply to Greg Kroah-HartmanFrom: Thomas Pedersen <[email protected]>
commit 30b2f0be23fb40e58d0ad2caf8702c2a44cda2e1 upstream.
commit 08a5bdde3812 ("mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED") Fixed a bug where we failed to take into account a
nullfunc frame can be either non-QoS or QoS. It turns out
there is at least one more bug inieee80211_sta_tx_notify(), introduced in
commit 7b6ddeaf27ec ("mac80211: use QoS NDP for AP probing"),
where we forgot to check for the QoS variant and so
assumed the QoS nullfunc frame never went out
Fix this by adding a helper ieee80211_is_any_nullfunc() which consolidates the check for non-QoS and QoS nullfunc frames. Replace existing compound conditionals and add a couple more missing checks for QoS variant.
--- include/linux/ieee80211.h | 9 +++++++++ net/mac80211/mlme.c | 2 +- net/mac80211/rx.c | 8 +++----- net/mac80211/status.c | 5 ++--- net/mac80211/tx.c | 2 +- 5 files changed, 16 insertions(+), 10 deletions(-)
include/linux/ieee80211.h +9 -0
@@ -620,6 +620,15 @@ static inline bool ieee80211_is_qos_null }/** +* ieee80211_is_any_nullfunc - check if frame is regular or QoS nullfunc frame +* @fc: frame control bytes in little-endian byteorder +*/ +static inline bool ieee80211_is_any_nullfunc (__le16 fc) +{ +return (ieee80211_is_nullfunc (fc) ||ieee80211_is_qos_nullfunc (fc)); +} + +/** * ieee80211_is_bufferable_mmpdu - check if frame is bufferable MMPDU * @fc: frame control field in little-endian byteorder */
net/mac80211/mlme.c +1 -1
@@ -2277,7 +2277,7 @@ void ieee80211_sta_tx_notify(struct ieeeif (!ieee80211_is_data (hdr->frame_control))return ; -if (ieee80211_is_nullfunc (hdr->frame_control) && +if (ieee80211_is_any_nullfunc (hdr->frame_control) && sdata->u.mgd.probe_send_count >0 ) {if (ack)ieee80211_sta_reset_conn_monitor (sdata);
net/mac80211/rx.c +3 -5
@@ -1231,8 +1231,7 @@ ieee80211_rx_h_check_dup(struct ieee8021return RX_CONTINUE ;if (ieee80211_is_ctl (hdr->frame_control) || -ieee80211_is_nullfunc (hdr->frame_control) || -ieee80211_is_qos_nullfunc (hdr->frame_control) || +ieee80211_is_any_nullfunc (hdr->frame_control) ||is_multicast_ether_addr (hdr->addr1))return RX_CONTINUE ;
@@ -1617,8 +1616,7 @@ ieee80211_rx_h_sta_process(struct ieee80* Drop (qos-)data::nullfunc frames silently, since they * are used only to control station power saving mode. */ -if (ieee80211_is_nullfunc (hdr->frame_control) || -ieee80211_is_qos_nullfunc (hdr->frame_control)) { +if (ieee80211_is_any_nullfunc (hdr->frame_control)) {I802_DEBUG_INC (rx->local->rx_handlers_drop_nullfunc);/*
@@ -2112,7 +2110,7 @@ static int ieee80211_drop_unencrypted(st/* Drop unencrypted frames if key is set. */ if (unlikely (!ieee80211_has_protected (fc) && - !ieee80211_is_nullfunc (fc) && + !ieee80211_is_any_nullfunc (fc) &&ieee80211_is_data (fc) && rx->key))return -EACCES ;
net/mac80211/status.c +2 -3
@@ -480,8 +480,7 @@ static void ieee80211_report_ack_skb(strrcu_read_lock (); sdata =ieee80211_sdata_from_skb (local, skb);if (sdata) { -if (ieee80211_is_nullfunc (hdr->frame_control) || -ieee80211_is_qos_nullfunc (hdr->frame_control)) +if (ieee80211_is_any_nullfunc (hdr->frame_control))cfg80211_probe_status (sdata->dev, hdr->addr1, cookie, acked,GFP_ATOMIC );
@@ -914,7 +913,7 @@ void ieee80211_tx_status(struct ieee8021I802_DEBUG_INC (local->dot11FailedCount); } -if (ieee80211_is_nullfunc (fc) &&ieee80211_has_pm (fc) && +if (ieee80211_is_any_nullfunc (fc) &&ieee80211_has_pm (fc) &&ieee80211_hw_check (&local->hw,REPORTS_TX_ACK_STATUS ) && !(info->flags &IEEE80211_TX_CTL_INJECTED ) && local->ps_sdata && !(local->scanning)) {
net/mac80211/tx.c +1 -1
@@ -294,7 +294,7 @@ ieee80211_tx_h_check_assoc(struct ieee80if (unlikely (test_bit (SCAN_SW_SCANNING , &tx->local->scanning)) &&test_bit (SDATA_STATE_OFFCHANNEL , &tx->sdata->state) && !ieee80211_is_probe_req (hdr->frame_control) && - !ieee80211_is_nullfunc (hdr->frame_control)) + !ieee80211_is_any_nullfunc (hdr->frame_control))/* * When software scanning only nullfunc frames (to notify * the sleep state to the AP) and probe requests (for the
Quoted 5 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.9.223 release. There are 18 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Build results:
total: 171 pass: 171 fail: 0 Qemu test results: total: 385 pass: 385 fail: 0
Guenter
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.9.223 release. There are 18 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sun, 10 May 2020 12:29:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.223-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-4.9.y
and the diffstat can be found below.thanks,
greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
Summary
------------------------------------------------------------------------
kernel: 4.9.223-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-4.9.y
git commit: 7d23d52af97eef655fac0057e12d85ce7d4894c3
git describe: v4.9.222-19-g7d23d52af97e
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.9-oe/build/v4.9.222-19-g7d23d52af97e
No regressions (compared to build v4.9.222)
No fixes (compared to build v4.9.222)
Ran 30701 total tests in the following environments and test suites.
Environments
--------------
- dragonboard-410c - arm64
- hi6220-hikey - arm64
- i386
- juno-r2 - arm64
- juno-r2-compat
- juno-r2-kasan
- qemu_arm
- qemu_arm64
- qemu_i386
- qemu_x86_64
- x15 - arm
- x86_64
- x86-kasan
Test Suites
-----------
* build
* install-android-platform-tools-r2600
* install-android-platform-tools-r2800
* kselftest
* kselftest/drivers
* kselftest/filesystems
* kvm-unit-tests
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-containers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* perf
* v4l2-compliance
* network-basic-tests
* ltp-open-posix-tests
* kselftest/net
* kselftest/networking
* kselftest-vsyscall-mode-native
* kselftest-vsyscall-mode-native/drivers
* kselftest-vsyscall-mode-native/filesystems
* kselftest-vsyscall-mode-none
* kselftest-vsyscall-mode-none/filesystems
Signature · 2 lines
Linaro LKFT https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 4.9.223 release. There are 18 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sun, 10 May 2020 12:29:44 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.223-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-4.9.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. Same emergency message in this release as well.
Initramfs unpacking failed: Decoding failed
I will starting debug and let you know.
thanks,
-- Shuah