From Linus Torvalds <> Date Sun, 15 Sep 2019 15:00:06 -0700 Subject Linux 5.3 So we've had a fairly quiet last week, but I think it was good that we

ended up having that extra week and the final rc8.



Even if the reason for that extra week was my travel schedule rather

than any pending issues, we ended up having a few good fixes come in,

including some for some bad btrfs behavior. Yeah, there's some

unnecessary noise in there too (like the speling fixes), but we also

had several last-minute reverts for things that caused issues.



One _particularly_ last-minute revert is the top-most commit (ignoring

the version change itself) done just before the release, and while

it's very annoying, it's perhaps also instructive.



What's instructive about it is that I reverted a commit that wasn't

actually buggy. In fact, it was doing exactly what it set out to do,

and did it very well. In fact it did it _so_ well that the much

improved IO patterns it caused then ended up revealing a user-visible

regression due to a real bug in a completely unrelated area.



The actual details of that regression are not the reason I point that

revert out as instructive, though. It's more that it's an instructive

example of what counts as a regression, and what the whole "no

regressions" kernel rule means. The reverted commit didn't change any

API's, and it didn't introduce any new bugs. But it ended up exposing

another problem, and as such caused a kernel upgrade to fail for a

user. So it got reverted.



The point here being that we revert based on user-reported _behavior_,

not based on some "it changes the ABI" or "it caused a bug" concept.

The problem was really pre-existing, and it just didn't happen to

trigger before. The better IO patterns introduced by the change just

happened to expose an old bug, and people had grown to depend on the

previously benign behavior of that old issue.



And never fear, we'll re-introduce the fix that improved on the IO

patterns once we've decided just how to handle the fact that we had a

bad interaction with an interface that people had then just happened

to rely on incidental behavior for before. It's just that we'll have

to hash through how to do that (there are no less than three different

patches by three different developers being discussed, and there might

be more coming...). In the meantime, I reverted the thing that exposed

the problem to users for this release, even if I hope it will be

re-introduced (perhaps even backported as a stable patch) once we have

consensus about the issue it exposed.



Take-away from the whole thing: it's not about whether you change the

kernel-userspace ABI, or fix a bug, or about whether the old code

"should never have worked in the first place". It's about whether

something breaks existing users' workflow.



Anyway, that was my little aside on the whole regression thing. Since

it's that "first rule of kernel programming", I felt it is perhaps

worth just bringing it up every once in a while.



Other than that aside, I don't find a lot to really talk about last

week. Drivers, networking (and network drivers), arch updates,

selftests. And a few random fixes in various other corners. The

appended shortlog is not overly long, and gives a flavor for the

changes.



And this obviously means that the merge window for 5.4 is open, and

I'll start doing pull requests for that tomorrow. I already have a

number of them in my inbox, and I appreciate all the people who got

that over and done with early,



Linus



---



Alexander Duyck (1):

ixgbe: Prevent u8 wrapping of ITR value to something less than 10us



Alexei Starovoitov (1):

bpf: fix precision tracking of stack slots



Andreas Kemnade (1):

regulator: twl: voltage lists for vdd1/2 on twl4030



Andrew Jeffery (1):

pinctrl: aspeed: Fix spurious mux failures on the AST2500



Arnd Bergmann (2):

ipc: fix semtimedop for generic 32-bit architectures

ipc: fix sparc64 ipc() wrapper



Bjørn Mork (1):

cdc_ether: fix rndis support for Mediatek based smartphones



Chris Wilson (2):

drm/i915: Restore relaxed padding (OCL_OOB_SUPPRES_ENABLE) for skl+

Revert "drm/i915/userptr: Acquire the page lock around set_page_dirty()"



Christophe JAILLET (3):

net/hamradio/6pack: Fix the size of a sk_buff used in 'sp_bump()'

ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'

sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'



Colin Ian King (4):

NFC: st95hf: fix spelling mistake "receieve" -> "receive"

net: lmc: fix spelling mistake "runnin" -> "running"

net: hns3: fix spelling mistake "undeflow" -> "underflow"

mlx4: fix spelling mistake "veify" -> "verify"



Cong Wang (2):

net_sched: check cops->tcf_block in tc_bind_tclass()

sch_hhf: ensure quantum and hhf_non_hh_weight are non-zero



Dan Carpenter (1):

regulator: slg51000: Fix a couple NULL vs IS_ERR() checks



Daniel Drake (1):

Revert "mmc: sdhci: Remove unneeded quirk2 flag of O2 SD host controller"



David Ahern (2):

ipv6: Fix RTA_MULTIPATH with nexthop objects

selftest: A few cleanups for fib_nexthops.sh



David Howells (1):

rxrpc: Fix misplaced traceline



Dmitry Torokhov (1):

gpiolib: of: fix fallback quirks handling



Donald Sharp (1):

net: Properly update v4 routes with v6 nexthop



Eric Biggers (1):

isdn/capi: check message length in capi_write()



Eric Dumazet (1):

net: sched: fix reordering issues



Eugene Syromiatnikov (1):

fork: block invalid exit signals with clone3()



Fernando Fernandez Mancera (1):

netfilter: nft_socket: fix erroneous socket assignment



Filipe Manana (2):

Btrfs: fix assertion failure during fsync and use of stale transaction

Btrfs: fix unwritten extent buffers and hangs on future writeback attempts



Florian Westphal (1):

xfrm: policy: avoid warning splat when merging nodes



Fred Lotter (1):

nfp: flower: cmsg rtnl locks can timeout reify messages



Fuqian Huang (1):

KVM: x86: work around leak of uninitialized stack contents



Hans de Goede (1):

gpiolib: acpi: Add gpiolib_acpi_run_edge_events_on_boot option

and blacklist



Harish Bandi (1):

Bluetooth: hci_qca: disable irqs when spinlock is acquired



Hui Peng (1):

rsi: fix a double free bug in rsi_91x_deinit()



Igor Mammedov (1):

KVM: s390: kvm_s390_vm_start_migration: check dirty_bitmap

before using it as target for memset()



Ilya Maximets (1):

ixgbe: fix double clean of Tx descriptors with xdp



Jan Stancek (1):

x86/timer: Force PIT initialization when !X86_FEATURE_ARAT



Jeff Kirsher (1):

ixgbevf: Fix secpath usage for IPsec Tx offload



Jian-Hong Pan (1):

Bluetooth: btrtl: Additional Realtek 8822CE Bluetooth devices



John Fastabend (1):

net: sock_map, fix missing ulp check in sock hash case



Jouni Malinen (1):

mac80211: Do not send Layer 2 Update frame before authorization



Juliet Kim (1):

net/ibmvnic: free reset work of removed device from queue



Ka-Cheong Poon (1):

net/rds: An rds_sock is added too early to the hash table



Kent Gibson (2):

gpio: fix line flag validation in linehandle_create

gpio: fix line flag validation in lineevent_create



Leonardo Bras (2):

netfilter: bridge: Drops IPv6 packets if IPv6 module is not loaded

netfilter: nft_fib_netdev: Terminate rule eval if protocol=IPv6

and ipv6 module is disabled



Linus Torvalds (2):

Revert "ext4: make __ext4_get_inode_loc plug"

Linux 5.3



Luca Coelho (1):

iwlwifi: assign directly to iwl_trans->cfg in QuZ detection



Maciej Żenczykowski (2):

net-ipv6: fix excessive RTF_ADDRCONF flag on ::1/128 local route

(and others)

ipv6: addrconf_f6i_alloc - fix non-null pointer check to !IS_ERR()



Mao Wenan (5):

net: sonic: return NETDEV_TX_OK if failed to map buffer

net: sonic: replace dev_kfree_skb in sonic_send_packet

sctp: change return type of sctp_get_port_local

sctp: remove redundant assignment when call sctp_get_port_local

sctp: destroy bucket if failed to bind addr



Marcel Holtmann (1):

Revert "Bluetooth: validate BLE connection interval updates"



Mario Limonciello (1):

Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"



Mark-PK Tsai (1):

perf/hw_breakpoint: Fix arch_hw_breakpoint use-before-initialization



Matthias Lange (1):

virtio_ring: fix unmap of indirect descriptors



Maxime Ripard (1):

drm/modes: Make the whitelist more const



Michael S. Tsirkin (2):

vhost: block speculation of translated descriptors

Revert "vhost: block speculation of translated descriptors"



Michal Suchanek (1):

net/ibmvnic: Fix missing { in __ibmvnic_reset



Moritz Fischer (1):

net: fixed_phy: Add forward declaration for struct gpio_desc;



Navid Emamdoost (3):

Bluetooth: bpa10x: change return value

wimax: i2400: fix memory leak

net: qrtr: fix memort leak in qrtr_tun_write_iter



Neal Cardwell (1):

tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR



Nicolas Dichtel (5):

xfrm interface: avoid corruption on changelink

xfrm interface: ifname may be wrong in logs

xfrm interface: fix list corruption for x-netns

xfrm interface: fix management of phydev

bridge/mdb: remove wrong use of NLM_F_MULTI



Pablo Neira Ayuso (2):

netfilter: ctnetlink: honor IPS_OFFLOAD flag

netfilter: nf_flow_table: set default timeout after successful insertion



Paolo Bonzini (1):

KVM: nVMX: handle page fault in vmread



Paul Walmsley (1):

riscv: modify the Image header to improve compatibility with the

ARM64 header



Raag Jadav (1):

regulator: act8945a-regulator: fix ldo register addresses in set_mode hook



Radhey Shyam Pandey (1):

MAINTAINERS: add myself as maintainer for xilinx axiethernet driver



Randy Dunlap (1):

lib/Kconfig: fix OBJAGG in lib/ menu structure



Roman Gushchin (2):

kselftests: cgroup: add freezer mkdir test

cgroup: freezer: fix frozen state inheritance



Sean Christopherson (1):

KVM: x86/mmu: Reintroduce fast invalidate/zap for flushing memslot



Shmulik Ladkani (1):

net: gso: Fix skb_segment splat when splitting gso_size mangled

skb having linear-headed frag_list



Stanislaw Gruszka (4):

mt76: mt76x0e: don't use hw encryption for MT7630E

mt76: mt76x0e: disable 5GHz band for MT7630E

rt2x00: clear up IV's on key removal

Revert "rt2800: enable TX_PIN_CFG_LNA_PE_ bits per band"



Stefan Chulski (1):

net: phylink: Fix flow control resolution



Stefan Wahren (1):

Revert "mmc: bcm2835: Terminate timeout work synchronously"



Steffen Klassert (1):

ixgbe: Fix secpath usage for IPsec TX offload.



Steve Wahl (1):

x86/purgatory: Change compiler flags from -mcmodel=kernel to

-mcmodel=large to fix kexec relocation errors



Subash Abhinov Kasiviswanathan (1):

net: Fix null de-reference of device refcount



Thomas Huth (1):

KVM: s390: Do not leak kernel stack data in the KVM_S390_INTERRUPT ioctl



Ulf Hansson (3):

Revert "mmc: tmio: move runtime PM enablement to the driver

implementations"

mmc: tmio: Fixup runtime PM management during probe

mmc: tmio: Fixup runtime PM management during remove



Vasily Khoruzhick (1):

drm/lima: fix lima_gem_wait() return value



Ville Syrjälä (1):

drm/i915: Limit MST to <= 8bpc once again



Wei Yongjun (1):

gpio: mockup: add missing single_release()



Wen Huang (1):

mwifiex: Fix three heap overflow at parsing element in

cfg80211_ap_settings



Xin Long (3):

sctp: use transport pf_retrans in sctp_do_8_2_transport_strike

tipc: add NULL pointer check before calling kfree_rcu

sctp: fix the missing put_user when dumping transport thresholds



Yang Yingliang (1):

tun: fix use-after-free when register netdev failed



Yizhuo (1):

net: stmmac: dwmac-sun8i: Variable "val" in function

sun8i_dwmac_set_syscon() could be uninitialized



Yunfeng Ye (1):

genirq: Prevent NULL pointer dereference in resend_irqs()



Zhu Yanjun (1):

forcedeth: use per cpu to collect xmit/recv statistics



yongduan (1):

vhost: make sure log_num < in_num



