Merge tag 'android11-5.4.249_r00' into android11-5.4

This is the merge of the upstream LTS release of 5.4.249 into the
android11-5.4 branch.

It contains the following commits:

* 874e208e9b Merge branch 'android11-5.4' into android11-5.4-lts
*   c7f89f1b6b Merge 5.4.249 into android11-5.4-lts
|\
| * b30db4f7e4 Linux 5.4.249
| * c874390551 xfs: verify buffer contents when we skip log replay
| * 72ab3d39b4 mm: make wait_on_page_writeback() wait for multiple pending writebacks
| * 9ea42ba3e6 mm: fix VM_BUG_ON(PageTail) and BUG_ON(PageWriteback)
| * dffd25725e i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle
| * f89bcf03e9 x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys
| * a43c763f9c drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl
| * 45f574d8df drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl
| * c81a542e45 drm/exynos: vidi: fix a wrong error return
| * 948b8b5fd0 ARM: dts: Fix erroneous ADS touchscreen polarities
| * 8d6f9f5f3b ASoC: nau8824: Add quirk to active-high jack-detect
| * d6fd1b3f76 s390/cio: unregister device when the only path is gone
| * 0de32d3dd3 usb: gadget: udc: fix NULL dereference in remove()
| * 823dd7de82 nfcsim.c: Fix error checking for debugfs_create_dir
| * c32b39d070 media: cec: core: don't set last_initiator if tx in progress
| * a69a15a1e7 arm64: Add missing Set/Way CMO encodings
| * 99de9a18e6 HID: wacom: Add error check to wacom_parse_and_register()
| * 2af8d96372 scsi: target: iscsi: Prevent login threads from racing between each other
| * 321a81d26c sch_netem: acquire qdisc lock in netem_change()
| * 91274bbe78 Revert "net: phy: dp83867: perform soft reset and retain established link"
| * 25c8d38c75 netfilter: nfnetlink_osf: fix module autoload
| * 476c617e4d netfilter: nf_tables: disallow element updates of bound anonymous sets
| * d3b110395f be2net: Extend xmit workaround to BE3 chip
| * 789d528606 net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch
| * 35373d602b ipvs: align inner_mac_header for encapsulation
| * ee155675bd mmc: usdhi60rol0: fix deferred probing
| * 0bd483fb95 mmc: sh_mmcif: fix deferred probing
| * 6160d37db1 mmc: sdhci-acpi: fix deferred probing
| * b25875cf5e mmc: omap_hsmmc: fix deferred probing
| * cbb0118f8a mmc: omap: fix deferred probing
| * e0d5053569 mmc: mvsdio: fix deferred probing
| * c2e675509f mmc: mvsdio: convert to devm_platform_ioremap_resource
| * 3ef787d619 mmc: mtk-sd: fix deferred probing
| * 3c01d64996 net: qca_spi: Avoid high load if QCA7000 is not available
| * bf7a4fd336 xfrm: Linearize the skb after offloading if needed.
| * d0fe8a733f ieee802154: hwsim: Fix possible memory leaks
| * dfcac203a3 rcu: Upgrade rcu_swap_protected() to rcu_replace_pointer()
| * 94199d4727 x86/mm: Avoid using set_pgd() outside of real PGD pages
| * be178a5eae cifs: Fix potential deadlock when updating vol in cifs_reconnect()
| * 8a5aaa4562 cifs: Merge is_path_valid() into get_normalized_path()
| * 339134c15c cifs: Introduce helpers for finding TCP connection
| * cf8c7aa906 cifs: Get rid of kstrdup_const()'d paths
| * 3fa4c08104 cifs: Clean up DFS referral cache
| * b73539b887 nilfs2: prevent general protection fault in nilfs_clear_dirty_page()
| * 1cc7dcfdeb writeback: fix dereferencing NULL mapping->host on writeback_page_template
| * 18a0202bec ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN
| * ab530c9bec mmc: meson-gx: remove redundant mmc_request_done() call from irq context
| * 88b373d1c5 cgroup: Do not corrupt task iteration when rebinding subsystem
| * c06c568e43 PCI: hv: Fix a race condition bug in hv_pci_query_relations()
| * f02a676907 Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs
| * 966708ed9d nilfs2: fix buffer corruption due to concurrent device reads
| * a93ae93e9f media: dvb-core: Fix use-after-free due to race at dvb_register_device()
| * 225bd8cc9c media: dvbdev: fix error logic at dvb_register_device()
| * 5bc971f043 media: dvbdev: Fix memleak in dvb_register_device
| * 40d7530bc7 tick/common: Align tick period during sched_timer setup
| * b9b61fd1f7 x86/purgatory: remove PGO flags
| * 4d02a166cb tracing: Add tracing_reset_all_online_cpus_unlocked() function
| * e14e9cc588 epoll: ep_autoremove_wake_function should use list_del_init_careful
| * e77e5481d5 list: add "list_del_init_careful()" to go with "list_empty_careful()"
| * c32ab1c195 mm: rewrite wait_on_page_bit_common() logic
| * 559cefc7c2 nilfs2: reject devices with insufficient block count
* | f4bff64ed2 Merge 5.4.248 into android11-5.4-lts
|\|
| * f2b499c27a Linux 5.4.248
| * 1cdc48aaff mmc: block: ensure error propagation for non-blk
| * de517032ee drm/nouveau/kms: Fix NULL pointer dereference in nouveau_connector_detect_depth
| * d3f7f557d8 neighbour: delete neigh_lookup_nodev as not used
| * a433b85d17 net: Remove unused inline function dst_hold_and_use()
| * fbc0209ae3 neighbour: Remove unused inline function neigh_key_eq16()
| * bc1ea55bf1 afs: Fix vlserver probe RTT handling
| * 98acd5f0ce selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET
| * 1140f8bc29 net: tipc: resize nlattr array to correct size
| * b83f86ba41 net: lapbether: only support ethernet devices
| * ec694ad393 net/sched: cls_api: Fix lockup on flushing explicitly created chain
| * 0456f470fa drm/nouveau: add nv_encoder pointer check for NULL
| * b1d76d16af drm/nouveau/kms: Don't change EDID when it hasn't actually changed
| * f654b8a132 drm/nouveau/dp: check for NULL nv_connector->native_mode
| * 2ac7be7718 igb: fix nvm.ops.read() error handling
| * 44008337f8 sctp: fix an error code in sctp_sf_eat_auth()
| * edd3d3dc48 ipvlan: fix bound dev checking for IPv6 l3s mode
| * 6718478c18 IB/isert: Fix incorrect release of isert connection
| * f8a91a024a IB/isert: Fix possible list corruption in CMA handler
| * 8a867ab713 IB/isert: Fix dead lock in ib_isert
| * 22125be516 IB/uverbs: Fix to consider event queue closing also upon non-blocking mode
| * ea4cf04d3f iavf: remove mask from iavf_irq_enable_queues()
| * 19a500f530 RDMA/rxe: Fix the use-before-initialization error of resp_pkts
| * 42ab735345 RDMA/rxe: Removed unused name from rxe_task struct
| * f99b6de58b RDMA/rxe: Remove the unused variable obj
| * 46305daf80 net/sched: cls_u32: Fix reference counter leak leading to overflow
| * 88d6c1958b ping6: Fix send to link-local addresses with VRF.
| * 474e0adf29 netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM
| * 67cafcd3e6 spi: fsl-dspi: avoid SCK glitches with continuous transfers
| * 8231594e21 spi: spi-fsl-dspi: Remove unused chip->void_write_data
| * 9d8b388a24 usb: dwc3: gadget: Reset num TRBs before giving back the request
| * 94e52fac15 serial: lantiq: add missing interrupt ack
| * b577b74f8f USB: serial: option: add Quectel EM061KGL series
| * 6b1203ae83 Remove DECnet support from kernel
| * aad6addc17 ALSA: hda/realtek: Add a quirk for Compaq N14JP6
| * def7e17c98 net: usb: qmi_wwan: add support for Compal RXM-G1
| * 74bd537373 RDMA/uverbs: Restrict usage of privileged QKEYs
| * a8997ffad3 nouveau: fix client work fence deletion race
| * 01fd784b07 powerpc/purgatory: remove PGO flags
| * b16bf76b38 kexec: support purgatories with .text.hot sections
| * b27a5fbe3c nilfs2: fix possible out-of-bounds segment allocation in resize ioctl
| * 0dd2d8331e nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key()
| * e1fb47f139 nios2: dts: Fix tse_mac "max-frame-size" property
| * 5e531f448e ocfs2: check new file size on fallocate call
| * f6878da39f ocfs2: fix use-after-free when unmounting read-only filesystem
| * 82173fde61 drm:amd:amdgpu: Fix missing buffer object unlock in failure path
| * 63afd76621 xen/blkfront: Only check REQ_FUA for writes
| * 27447dada0 mips: Move initrd_start check after initrd address sanitisation.
| * a365600bba MIPS: Alchemy: fix dbdma2
| * 6b39b06b8d parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory()
| * de873bce06 parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu()
| * 28850d25a6 btrfs: handle memory allocation failure in btrfs_csum_one_bio
| * b31586747b power: supply: Fix logic checking if system is running from battery
| * dd8804117d irqchip/meson-gpio: Mark OF related data as maybe unused
| * 30ade27dbe regulator: Fix error checking for debugfs_create_dir
| * a12155f0b1 platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0
| * d26edc403c power: supply: Ratelimit no data debug output
| * af44b2ddfc ARM: dts: vexpress: add missing cache properties
| * bd725832eb power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule()
| * 82bfd14f13 power: supply: sc27xx: Fix external_power_changed race
| * 66d5882dcc power: supply: ab8500: Fix external_power_changed race
| * a8f286bfbc s390/dasd: Use correct lock while counting channel queue length
| * d60be47f43 dasd: refactor dasd_ioctl_information
| * 7f3bb75a04 KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
| * 75d9e00f65 test_firmware: fix a memory leak with reqs buffer
* | 3032bd084a Revert "neighbour: Replace zero-length array with flexible-array member"
* | 6635f9a873 Revert "neighbour: fix unaligned access to pneigh_entry"
* | 477bb53b3a Merge 5.4.247 into android11-5.4-lts
|\|
| * 61a2f83e47 Linux 5.4.247
| * 4b0199bc81 Revert "staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE"
| * 85258ae307 mtd: spinand: macronix: Add support for MX35LFxGE4AD
| * 8e54667403 btrfs: unset reloc control if transaction commit fails in prepare_to_relocate()
| * 4223d91ca1 btrfs: check return value of btrfs_commit_transaction in relocation
| * a35d89d360 rbd: get snapshot context after exclusive lock is ensured to be held
| * 52a40eaa55 drm/atomic: Don't pollute crtc_state->mode_blob with error pointers
| * 2cc5d40e4d cifs: handle empty list of targets in cifs_reconnect()
| * 307ffb7162 cifs: get rid of unused parameter in reconn_setup_dfs_targets()
| * 73ed7996bb ext4: only check dquot_initialize_needed() when debugging
| * 7d0a29c74a eeprom: at24: also select REGMAP
| * 0360652bf6 i2c: sprd: Delete i2c adapter in .remove's error path
| * c73f1c2f68 bonding (gcc13): synchronize bond_{a,t}lb_xmit() types
| * ec94689803 usb: usbfs: Use consistent mmap functions
| * 0147952d15 usb: usbfs: Enforce page requirements for mmap
| * 090878903d pinctrl: meson-axg: add missing GPIOA_18 gpio group
| * c6e8425550 rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting
| * 69653f9416 Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk
| * 953335a377 ceph: fix use-after-free bug for inodes when flushing capsnaps
| * 2416bac0e7 can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
| * bf0245bd44 can: j1939: change j1939_netdev_lock type to mutex
| * 9eed68d62e can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in J1939 Socket
| * 2fc62d51d3 drm/amdgpu: fix xclk freq on CHIP_STONEY
| * e752bb1c03 ALSA: hda/realtek: Add Lenovo P3 Tower platform
| * ca599db7a5 ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01
| * d5ca4799e6 Input: psmouse - fix OOB access in Elantech protocol
| * 282a96e3f8 Input: xpad - delete a Razer DeathAdder mouse VID/PID entry
| * a3a99a069e batman-adv: Broken sync while rescheduling delayed work
| * df7044fc09 bnxt_en: Query default VLAN before VNIC setup on a VF
| * a6ca812973 lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release()
| * 198da74a4e net: sched: fix possible refcount leak in tc_chain_tmplt_add()
| * 8f7cbd6d5e net: sched: move rtm_tca_policy declaration to include file
| * b8b90f9244 rfs: annotate lockless accesses to RFS sock flow table
| * 28ac3cf2ac rfs: annotate lockless accesses to sk->sk_rxhash
| * a4c72805fd netfilter: ipset: Add schedule point in call_ad().
| * 0b705ed9d4 netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper
| * c2c6133eeb Bluetooth: L2CAP: Add missing checks for invalid DCID
| * 0f841f8039 Bluetooth: Fix l2cap_disconnect_req deadlock
| * b0b1b97702 net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods
| * 7e0da73ce5 neighbour: fix unaligned access to pneigh_entry
| * 314713ff4c neighbour: Replace zero-length array with flexible-array member
| * e96f52705a spi: qup: Request DMA before enabling clocks
| * 1cc6435cd7 i40e: fix build warnings in i40e_alloc.h
| * fc75b8973d i40iw: fix build warning in i40iw_manage_apbvt()
| * c425e71826 block/blk-iocost (gcc13): keep large values in a new enum
| * ec97af8e8a blk-iocost: avoid 64-bit division in ioc_timer_fn
* | de0a430e6c Revert "tcp: deny tcp_disconnect() when threads are waiting"
* | 6d6982b563 Merge 5.4.246 into android11-5.4-lts
|\|
| * f568a20f05 Linux 5.4.246
| * 6c0fc4725f drm/edid: fix objtool warning in drm_cvt_modes()
| * 914bf541c3 wifi: rtlwifi: 8192de: correct checking of IQK reload
| * 58bc9baaef drm/edid: Fix uninitialized variable in drm_cvt_modes()
| * 77e442733f RDMA/bnxt_re: Remove the qp from list only if the qp destroy succeeds
| * a616aa258e RDMA/bnxt_re: Remove set but not used variable 'dev_attr'
| * 4ffad598bf scsi: dpt_i2o: Do not process completions with invalid addresses
| * e2897f133a scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD)
| * 56a4a9dc5e regmap: Account for register length when chunking
| * 94f3bc7e84 test_firmware: fix the memory leak of the allocated firmware buffer
| * fb7dce686f fbcon: Fix null-ptr-deref in soft_cursor
| * 5ea6122caf ext4: add lockdep annotations for i_data_sem for ea_inode's
| * b06346ef57 ext4: disallow ea_inodes with extended attributes
| * ec2a04f8fc ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find()
| * 2e636c0c93 ext4: add EA_INODE checking to ext4_iget()
| * d9de088797 tracing/probe: trace_probe_primary_from_call(): checked list_first_entry
| * 7df474125c selinux: don't use make's grouped targets feature yet
| * b18bc3c9c2 tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of UARTCTRL_SBK
| * ae7fb0c8bf mmc: vub300: fix invalid response handling
| * 9d8f5797d7 wifi: rtlwifi: remove always-true condition pointed out by GCC 12
| * 843f517667 lib/dynamic_debug.c: use address-of operator on section symbols
| * 0638dcc7e7 treewide: Remove uninitialized_var() usage
| * 1eb88dccb8 kernel/extable.c: use address-of operator on section symbols
| * d069c7ce39 eth: sun: cassini: remove dead code
| * d04adc383f gcc-12: disable '-Wdangling-pointer' warning for now
| * 253d702325 ACPI: thermal: drop an always true check
| * a010f8e646 x86/boot: Wrap literal addresses in absolute_pointer()
| * f0bb513555 flow_dissector: work around stack frame size warning
| * cd943425c6 ata: libata-scsi: Use correct device no in ata_find_dev()
| * 76c67ff783 scsi: stex: Fix gcc 13 warnings
| * cd91ead608 misc: fastrpc: reject new invocations during device removal
| * bf1d0b84df misc: fastrpc: return -EPIPE to invocations on device removal
| * d5f1838815 usb: gadget: f_fs: Add unbind event before functionfs_unbind
| * ac388cbbd9 net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818
| * e101e8160c iio: dac: build ad5758 driver when AD5758 is selected
| * a87236446a iio: dac: mcp4725: Fix i2c_master_send() return value handling
| * c3b25245e3 iio: light: vcnl4035: fixed chip ID check
| * 711049e31e HID: wacom: avoid integer overflow in wacom_intuos_inout()
| * 4251ff7fd4 HID: google: add jewel USB id
| * f3b4e2a636 iio: adc: mxs-lradc: fix the order of two cleanup operations
| * 030ca3f7b0 mailbox: mailbox-test: fix a locking issue in mbox_test_message_write()
| * 11b0844120 atm: hide unused procfs functions
| * cea581b385 ALSA: oss: avoid missing-prototype warnings
| * 384fd08858 netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with CONFIG_NF_NAT
| * f7e62f1b72 wifi: b43: fix incorrect __packed annotation
| * 8a90351102 scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed
| * f1e6a10971 arm64/mm: mark private VM_FAULT_X defines as vm_fault_t
| * c87334f4e7 ARM: dts: stm32: add pin map for CAN controller on stm32f7
| * a39f24357f wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value
| * 353fd22693 media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221
| * 66a6d704c2 media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()
| * ed47886a73 media: dvb-core: Fix use-after-free due on race condition at dvb_net
| * e9033a425a media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table
| * 08b20cb8e5 media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb()
| * 46e8b0fe53 media: dvb_ca_en50221: fix a size write bug
| * b66849f354 media: netup_unidvb: fix irq init by register it at the end of probe
| * 88aef84eef media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address
| * 6b9a534ec5 media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer()
| * f3c8ed7366 media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer
| * 65033ab2f9 media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer()
| * 37e36b4261 media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer()
| * 64f1b8296b media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer()
| * d16f5dc3aa media: dvb_demux: fix a bug for the continuity counter
| * a7c87057f2 ASoC: ssm2602: Add workaround for playback distortions
| * 619f008df1 xfrm: Check if_id in inbound policy/secpath match
| * 21ca817046 ASoC: dwc: limit the number of overrun messages
| * acd5f476c1 nbd: Fix debugfs_create_dir error checking
| * 19ce1e1f34 fbdev: stifb: Fix info entry in sti_struct on error path
| * aa32f2fadb fbdev: modedb: Add 1920x1080 at 60 Hz video mode
| * 199f9c5430 media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE
| * b950966b44 ARM: 9295/1: unwind:fix unwind abort for uleb128 case
| * a823d8e0bb mailbox: mailbox-test: Fix potential double-free in mbox_test_message_write()
| * 29bfbc8a63 watchdog: menz069_wdt: fix watchdog initialisation
| * 0018639be2 mtd: rawnand: marvell: don't set the NAND frequency select
| * 5f0043efdc mtd: rawnand: marvell: ensure timing values are written
| * 6c0aacf1b4 net: dsa: mv88e6xxx: Increase wait after reset deactivation
| * 94a00f1142 net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
| * dd4b5a204d udp6: Fix race condition in udp6_sendmsg & connect
| * cd4a37f0dc net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report
| * cec562fbf8 ocfs2/dlm: move BITS_TO_BYTES() to bitops.h for wider use
| * 9e6bb63e5e net: sched: fix NULL pointer dereference in mq_attach
| * 2188c0f095 net/sched: Prohibit regrafting ingress or clsact Qdiscs
| * 80b20d528a net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs
| * 321f383755 net/sched: sch_clsact: Only create under TC_H_CLSACT
| * 5f67d33c01 net/sched: sch_ingress: Only create under TC_H_INGRESS
| * 381a703220 tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set
| * 32e9a9ee28 tcp: deny tcp_disconnect() when threads are waiting
| * 26e830858a af_packet: do not use READ_ONCE() in packet_bind()
| * 43f1402dc2 mtd: rawnand: ingenic: fix empty stub helper definitions
| * dd3773e8c8 amd-xgbe: fix the false linkup in xgbe_phy_status
| * 603eec060d af_packet: Fix data-races of pkt_sk(sk)->num.
| * bab2f42d8d netrom: fix info-leak in nr_write_internal()
| * d7aeb591b1 net/mlx5: fw_tracer, Fix event handling
| * c7ac3ebf41 dmaengine: pl330: rename _start to prevent build error
| * 17d70de572 iommu/amd: Don't block updates to GATag if guest mode is on
| * fa961ad9ef iommu/rockchip: Fix unwind goto issue
| * 5abb81b4d7 RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx
| * 2bafc7f22d RDMA/bnxt_re: Refactor queue pair creation code
| * 56446791bc RDMA/bnxt_re: Enable SRIOV VF support on Broadcom's 57500 adapter series
| * cc5a673d85 RDMA/efa: Fix unsupported page sizes in device
* | acebb4758a Merge 5.4.245 into android11-5.4-lts
|\|
| * cf0b1e5482 Linux 5.4.245
| * ec14c6e0a2 netfilter: ctnetlink: Support offloaded conntrack entry deletion
| * 5b7d4d91c0 ipv{4,6}/raw: fix output xfrm lookup wrt protocol
| * 6c88024cab binder: fix UAF caused by faulty buffer cleanup
| * e6183912ee bluetooth: Add cmd validity checks at the start of hci_sock_ioctl()
| * 9ba28194ea io_uring: have io_kill_timeout() honor the request references
| * 6de3014d4b io_uring: don't drop completion lock before timer is fully initialized
| * b0bfceaa8c io_uring: always grab lock in io_cancel_async_work()
| * 00395fd7f9 cdc_ncm: Fix the build warning
| * 672e59995e net/mlx5: Devcom, serialize devcom registration
| * f42feb29ba net/mlx5: devcom only supports 2 ports
| * 67637a7ee6 fs: fix undefined behavior in bit shift for SB_NOUSER
| * 02281c23d0 power: supply: bq24190: Call power_supply_changed() after updating input current
| * f6518954c1 power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier()
| * db00ef8fd6 power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to stabilize
| * ff484163df net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize
| * a270ca35a9 cdc_ncm: Implement the 32-bit version of NCM Transfer Block
* | b5d7df0c66 Revert "firmware: arm_sdei: Fix sleep from invalid context BUG"
* | fb4bb5a5f3 Merge 5.4.244 into android11-5.4-lts
|\|
| * 51d0ac4577 Linux 5.4.244
| * edec0d3999 3c589_cs: Fix an error handling path in tc589_probe()
| * 3dfc1004d9 net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device
| * c59106f8bc net/mlx5: Fix error message when failing to allocate device memory
| * 8680d838c9 forcedeth: Fix an error handling path in nv_probe()
| * b8db4a4e20 ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg
| * 0099a29bc5 x86/show_trace_log_lvl: Ensure stack pointer is aligned, again
| * c60f38c9bd xen/pvcalls-back: fix double frees with pvcalls_new_active_socket()
| * 9b13972e4f coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet()
| * f6b610730e power: supply: sbs-charger: Fix INHIBITED bit for Status reg
| * 0c5f4cec75 power: supply: bq27xxx: Fix poll_interval handling and races on remove
| * dafe9136be power: supply: bq27xxx: Fix I2C IRQ race on remove
| * 7b3b119649 power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition
| * 96bfafbc7d power: supply: leds: Fix blink to LED on transition
| * 011f47c8b8 ipv6: Fix out-of-bounds access in ipv6_find_tlv()
| * 120cdad8b2 bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields
| * 9928ce5225 selftests: fib_tests: mute cleanup error message
| * 58766252f6 net: fix skb leak in __skb_tstamp_tx()
| * 2b580d0f03 media: radio-shark: Add endpoint checks
| * a730feb672 USB: sisusbvga: Add endpoint checks
| * 80100e0863 USB: core: Add routines for endpoint checks in old drivers
| * 7e3ae83371 udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated().
| * 9ea0c5f90a net: fix stack overflow when LRO is disabled for virtual interfaces
| * 1522dc58bf fbdev: udlfb: Fix endpoint check
| * be646802b3 debugobjects: Don't wake up kswapd from fill_pool()
| * 4e5a7181a6 x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms
| * 6d091e0ddc parisc: Fix flush_dcache_page() for usage from irq context
| * b556618bac selftests/memfd: Fix unknown type name build failure
| * 04aee084a3 x86/mm: Avoid incomplete Global INVLPG flushes
| * a9f5423460 btrfs: use nofs when cleaning up aborted transactions
| * 4f92934d80 gpio: mockup: Fix mode of debugfs files
| * da8adda579 parisc: Allow to reboot machine after system halt
| * 43ffe982a3 parisc: Handle kgdb breakpoints only in kernel context
| * f7d19a366c m68k: Move signal frame following exception on 68020/030
| * 8facb9cc16 ALSA: hda/realtek: Enable headset onLenovo M70/M90
| * 5cc3e698c2 ALSA: hda/ca0132: add quirk for EVGA X299 DARK
| * 68e4c39017 mt76: mt7615: Fix build with older compilers
| * b558275c1b spi: fsl-cpm: Use 16 bit mode for large transfers with even size
| * d64a45c019 spi: fsl-spi: Re-organise transfer bits_per_word adaptation
| * aabe8ca791 watchdog: sp5100_tco: Immediately trigger upon starting.
| * aeff9e7e87 s390/qdio: fix do_sqbs() inline assembly constraint
| * ab196fe70a s390/qdio: get rid of register asm
| * a4e3c4c65a vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF
| * 74e644795d vc_screen: rewrite vcs_size to accept vc, not inode
| * e9399d4ea5 usb: gadget: u_ether: Fix host MAC address case
| * 939cafcdf7 usb: gadget: u_ether: Convert prints to device prints
| * c8489e0fab lib/string_helpers: Introduce string_upper() and string_lower() helpers
| * 7e15602c50 HID: wacom: add three styli to wacom_intuos_get_tool_type
| * 2a12339ce3 HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs
| * b5185f1b11 HID: wacom: Force pen out of prox if no events have been received in a while
| * e0c1b35239 netfilter: nf_tables: hold mutex on netns pre_exit path
| * 6236af6936 netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT flag
| * 05b4105e68 netfilter: nf_tables: stricter validation of element data
| * e832e4bae5 netfilter: nf_tables: allow up to 64 bytes in the set element data area
| * 28fe10236a netfilter: nf_tables: add nft_setelem_parse_key()
| * eb5b579bd6 netfilter: nf_tables: validate registers coming from userspace.
| * cfe1b9719c netfilter: nftables: statify nft_parse_register()
| * 7c788393d4 netfilter: nftables: add nft_parse_register_store() and use it
| * 25336cd96b netfilter: nftables: add nft_parse_register_load() and use it
| * 116d53f09f nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()
| * df89b1753e powerpc/64s/radix: Fix soft dirty tracking
| * 60b9a9c8f3 tpm/tpm_tis: Disable interrupts for more Lenovo devices
| * a33c172c1e ceph: force updating the msg pointer in non-split case
| * 6eb9ed0ab7 serial: Add support for Advantech PCI-1611U card
| * 21f107a959 statfs: enforce statfs[64] structure initialization
| * 1eb3e32de7 KVM: x86: do not report a vCPU as preempted outside instruction boundaries
| * a88638a954 can: kvaser_pciefd: Disable interrupts in probe error path
| * 4579e25567 can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt
| * 33d5a0a498 can: kvaser_pciefd: Clear listen-only bit if not explicitly requested
| * e5ac4f1207 can: kvaser_pciefd: Empty SRB buffer in probe
| * c0e9fb21b6 can: kvaser_pciefd: Call request_irq() before enabling interrupts
| * 36cd7601e6 can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop()
| * e658112893 can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag
| * 8804825251 ALSA: hda/realtek: Add quirk for 2nd ASUS GU603
| * 57fd0d122e ALSA: hda/realtek: Add a quirk for HP EliteDesk 805
| * 739056188a ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table
| * 4ef155ddf9 ALSA: hda: Fix Oops by 9.1 surround channel names
| * 4f9c0a7c27 usb: typec: altmodes/displayport: fix pin_assignment_show
| * 33b6648d27 usb: dwc3: debugfs: Resume dwc3 before accessing registers
| * 241491524a USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value
| * 1f36dc4161 usb-storage: fix deadlock when a scsi command timeouts more than once
| * 7cef7681aa USB: usbtmc: Fix direction for 0-length ioctl control messages
| * f662f856ac vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit()
| * 53bf7cda16 igb: fix bit_shift to be in [1..8] range
| * e20105d967 cassini: Fix a memory leak in the error handling path of cas_init_one()
| * e519a404a5 wifi: iwlwifi: mvm: don't trust firmware n_channels
| * d0baaadd1c net: bcmgenet: Restore phy_stop() depending upon suspend/close
| * 2cca63d5bc net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop()
| * 435855b083 net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment()
| * ed50fcab14 drm/exynos: fix g2d_open/close helper function definitions
| * 1550bcf298 media: netup_unidvb: fix use-after-free at del_timer()
| * 69055f9990 net: hns3: fix reset delay time to avoid configuration timeout
| * 304e5cb77e net: hns3: fix sending pfc frames after reset issue
| * d1bcc60687 erspan: get the proto with the md version for collect_md
| * f185ede016 ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode
| * 0eb3ec0a35 ip6_gre: Make o_seqno start from 0 in native mode
| * 3040962413 ip6_gre: Fix skb_under_panic in __gre6_xmit()
| * 7525aa2117 serial: arc_uart: fix of_iomap leak in `arc_serial_probe`
| * 5a90309002 vsock: avoid to close connected socket after the timeout
| * 5009aead17 ALSA: firewire-digi00x: prevent potential use after free
| * b22b514209 net: fec: Better handle pm_runtime_get() failing in .remove()
| * 033297ef3b af_key: Reject optional tunnel/BEET mode templates in outbound policies
| * 912a6cff0d cpupower: Make TSC read per CPU for Mperf monitor
| * 131eb9c9b1 ASoC: fsl_micfil: register platform component before registering cpu dai
| * a3714a47b4 btrfs: fix space cache inconsistency after error loading it from disk
| * 5968983037 btrfs: replace calls to btrfs_find_free_ino with btrfs_find_free_objectid
| * 1e453cb550 mfd: dln2: Fix memory leak in dln2_probe()
| * bdc33478d5 phy: st: miphy28lp: use _poll_timeout functions for waits
| * e6e917e82d Input: xpad - add constants for GIP interface numbers
| * 9fcef1e37d iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any
| * 4461f41ece clk: tegra20: fix gcc-7 constant overflow warning
| * c23e6383d7 RDMA/core: Fix multiple -Warray-bounds warnings
| * 3ed95a6f6c recordmcount: Fix memory leaks in the uwrite function
| * 38a118fd54 sched: Fix KCSAN noinstr violation
| * cbe3063a9b mcb-pci: Reallocate memory region to avoid memory overlapping
| * d5cd2928d3 serial: 8250: Reinit port->pm on port specific driver unbind
| * ccb12585a7 usb: typec: tcpm: fix multiple times discover svids error
| * c5405c7671 HID: wacom: generic: Set battery quirk only when we see battery data
| * d3f32dc2cc spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3
| * bf80dbd528 HID: logitech-hidpp: Reconcile USB and Unifying serials
| * e28f9de2d4 HID: logitech-hidpp: Don't use the USB serial for USB devices
| * 8a65476dd1 staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE
| * 2112c4c47d Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
| * fa57021262 wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace
| * 0ad8dd870a wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf
| * f6f2d16c77 wifi: iwlwifi: pcie: fix possible NULL pointer dereference
| * a7ec2f424f samples/bpf: Fix fout leak in hbm's run_bpf_prog
| * 4ceedc2f8b f2fs: fix to drop all dirty pages during umount() if cp_error is set
| * 8659c5f4ff ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()
| * cee78217a7 ext4: set goal start correctly in ext4_mb_normalize_request
| * d43b1bdb10 gfs2: Fix inode height consistency check
| * 410e610a96 scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition
| * cc2d2b3dbf lib: cpu_rmap: Avoid use after free on rmap->obj array entries
| * 89f5055f9b scsi: target: iscsit: Free cmds before session free
| * 67236cf14d net: Catch invalid index in XPS mapping
| * 92af9cb86a net: pasemi: Fix return type of pasemi_mac_start_tx()
| * 644a9d5e22 scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow
| * c4813f858e ext2: Check block size validity during mount
| * 56c7e9c39b wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex
| * c409eb45f5 ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in acpi_db_display_objects
| * 710e09fd11 ACPICA: Avoid undefined behavior: applying zero offset to null pointer
| * 99c8f2e6f3 drm/tegra: Avoid potential 32-bit integer overflow
| * ccae2233e9 ACPI: EC: Fix oops when removing custom query handlers
| * 48ac727ea4 firmware: arm_sdei: Fix sleep from invalid context BUG
| * a2a5d3a584 memstick: r592: Fix UAF bug in r592_remove due to race condition
| * d73e8c4767 regmap: cache: Return error in cache sync operations for REGCACHE_NONE
| * 9b72cb394f drm/amd/display: Use DC_LOG_DC in the trasform pixel function
| * a75d9211a0 fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode()
| * 196528ad48 af_unix: Fix data races around sk->sk_shutdown.
| * 7d17bc2d4e af_unix: Fix a data race of sk->sk_receive_queue->qlen.
| * 699c9e7c9f net: datagram: fix data-races in datagram_poll()
| * 1aa872e967 ipvlan:Fix out-of-bounds caused by unclear skb->cb
| * 4188c52694 net: add vlan_get_protocol_and_depth() helper
| * 57a269d82f net: tap: check vlan with eth_type_vlan() method
| * 1747aa98ab net: annotate sk->sk_err write from do_recvmmsg()
| * a507022c86 netlink: annotate accesses to nlk->cb_running
| * b47aae7038 netfilter: conntrack: fix possible bug_on with enable_hooks=1
| * d7343f8de0 net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs().
| * 42e1dafa65 linux/dim: Do nothing if no time delta between samples
| * 7460ac5a66 ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings
| * 22b8ac608a drm/mipi-dsi: Set the fwnode for mipi_dsi_device
| * d4992b2b5c driver core: add a helper to setup both the of_node and fwnode of a device
* | 4c85910ff8 Revert "PM: domains: Fix up terminology with parent/child"
* | cba632cb06 Revert "PM: domains: Restore comment indentation for generic_pm_domain.child_links"
* | 92cfb88602 Revert "scripts/gdb: bail early if there are no generic PD"
* | 2bd517d6bc Revert "uapi/linux/const.h: prefer ISO-friendly __typeof__"
* | 673a774ad6 Revert "netfilter: nf_tables: don't write table validation state without mutex"
* | 88ac2d9193 Merge 5.4.243 into android11-5.4-lts
|\|
| * f53660ec66 Linux 5.4.243
| * d60f15682a drm/amd/display: Fix hang when skipping modeset
| * 93ca0d7b88 mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock
| * 3f231e30cd drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag
| * 65a8b6d129 drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup()
| * 62ac943eb2 firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe()
| * a781ea3437 drm/msm: Fix double pm_runtime_disable() call
| * e4e88f74eb PM: domains: Restore comment indentation for generic_pm_domain.child_links
| * ddcca7299d printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h
| * c2c3ffc798 PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock
| * 6a24285f64 PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
| * dde34ef0bc drbd: correctly submit flush bio on barrier
| * 373720b928 serial: 8250: Fix serial8250_tx_empty() race with DMA Tx
| * f2a1071100 tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH
| * ba04d6af5a ext4: fix invalid free tracking in ext4_xattr_move_to_block()
| * 185062a219 ext4: remove a BUG_ON in ext4_mb_release_group_pa()
| * d7ff83a71d ext4: bail out of ext4_xattr_ibody_get() fails for any reason
| * 486efbbc94 ext4: add bounds checking in get_max_inline_xattr_value_size()
| * b4fa4768c9 ext4: fix deadlock when converting an inline directory in nojournal mode
| * 2dda202906 ext4: improve error recovery code paths in __ext4_remount()
| * 525c802de3 ext4: fix data races when using cached status extents
| * 4f4fd982d9 ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum
| * 1b90fbc759 ext4: fix WARNING in mb_find_extent
| * f9e27d4bdb HID: wacom: insert timestamp to packed Bluetooth (BT) events
| * d8b609e662 HID: wacom: Set a default resolution for older tablets
| * 3decf3a750 drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend
| * 625d4112ea drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx ras
| * b1fabc3794 drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini()
| * c6bb596624 drm/panel: otm8009a: Set backlight parent to panel device
| * 3e77036246 f2fs: fix potential corruption when moving a directory
| * dafc5a5c8f ARM: dts: s5pv210: correct MIPI CSIS clock name
| * ad751b896e ARM: dts: exynos: fix WM8960 clock name in Itop Elite
| * 8234964707 remoteproc: st: Call of_node_put() on iteration error
| * a1366ecb09 remoteproc: stm32: Call of_node_put() on iteration error
| * f16bc5111c sh: nmi_debug: fix return value of __setup handler
| * c9871a47f4 sh: init: use OF_EARLY_FLATTREE for early init
| * 111b08116d sh: math-emu: fix macro redefined warning
| * 8fb33166ae inotify: Avoid reporting event with invalid wd
| * 0ccea97abe platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i
| * 871641c7eb cifs: fix pcchunk length type in smb2_copychunk_range
| * 3e2b4bceaa btrfs: print-tree: parent bytenr must be aligned to sector size
| * 1e05bf5e80 btrfs: don't free qgroup space unless specified
| * b232f5e8cf btrfs: fix btrfs_prev_leaf() to not return the same key twice
| * 96f71f669b perf symbols: Fix return incorrect build_id size in elf_read_build_id()
| * 78190a6ebe perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp()
| * ffec80cc67 perf vendor events power9: Remove UTF-8 characters from JSON files
| * 62f1ebfe9a virtio_net: suppress cpu stall when free_unused_bufs
| * 1dc5faf30a virtio_net: split free_unused_bufs()
| * b15637e717 net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621
| * 544b0de2d7 ALSA: caiaq: input: Add error handling for unsupported input methods in `snd_usb_caiaq_input_init`
| * 35f2642f4a drm/amdgpu: add a missing lock for AMDGPU_SCHED
| * 5cfe3f910f af_packet: Don't send zero-byte data in packet_sendmsg_spkt().
| * fbcfa00386 ionic: remove noise from ethtool rxnfc error msg
| * 4a56f1f6fe rxrpc: Fix hard call timeout units
| * dfa36eb380 net/sched: act_mirred: Add carrier check
| * cc5ccfb7c0 writeback: fix call of incorrect macro
| * 9c1fcb97f9 net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu
| * e804124390 sit: update dev->needed_headroom in ipip6_tunnel_bind_dev()
| * cc5fe387c6 net/sched: cls_api: remove block_cb from driver_list before freeing
| * 8acd3a2887 net/ncsi: clear Tx enable mode when handling a Config required AEN
| * bc0905a765 relayfs: fix out-of-bounds access in relay_file_read
| * c038ae623a kernel/relay.c: fix read_pos error when multiple readers
| * 4f4de392f4 crypto: safexcel - Cleanup ring IRQ workqueues on load failure
| * b9878f485d crypto: inside-secure - irq balance
| * 439d3a7056 dm verity: fix error handling for check_at_most_once on FEC
| * 0156f7dbd8 dm verity: skip redundant verity_handle_err() on I/O errors
| * e4875d6e05 mailbox: zynqmp: Fix counts of child nodes
| * ff0d64f512 mailbox: zynq: Switch to flexible array to simplify code
| * 352b152905 tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem
| * 9b2ed14431 nohz: Add TICK_DEP_BIT_RCU
| * c8b6063f13 netfilter: nf_tables: deactivate anonymous set from preparation phase
| * 29fb2a1a5f debugobject: Ensure pool refill (again)
| * cef1b8a4df perf intel-pt: Fix CYC timestamps after standalone CBR
| * 5ead86d575 perf auxtrace: Fix address filter entire kernel size
| * 29a1ef57c3 dm ioctl: fix nested locking in table_clear() to remove deadlock concern
| * 337b7af273 dm flakey: fix a crash with invalid table line
| * 6d126899b0 dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path
| * cbe0a7ec67 dm clone: call kmem_cache_destroy() in dm_clone_init() error path
| * d8f66a19f8 s390/dasd: fix hanging blockdevice after request requeue
| * 5492d40812 btrfs: scrub: reject unsupported scrub flags
| * 946e067b4c scripts/gdb: fix lx-timerlist for Python3
| * 7cf5ce2857 clk: rockchip: rk3399: allow clk_cifout to force clk_cifout_src to reparent
| * 4379d5ce92 wifi: rtl8xxxu: RTL8192EU always needs full init
| * ecdcefd312 mailbox: zynqmp: Fix typo in IPI documentation
| * 38afc633d3 mailbox: zynqmp: Fix IPI isr handling
| * 14964127be md/raid10: fix null-ptr-deref in raid10_sync_request
| * fe1cbbcb1a nilfs2: fix infinite loop in nilfs_mdt_get_block()
| * 4569a292a8 nilfs2: do not write dirty data after degenerating to read-only
| * fd37a5c699 parisc: Fix argument pointer in real64_call_asm()
| * 736aeb17b6 afs: Fix updating of i_size with dv jump from server
| * 27263ff397 dmaengine: at_xdmac: do not enable all cyclic channels
| * 8c821199bc dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing
| * 24c9c4ad23 dmaengine: dw-edma: Fix to change for continuous transfer
| * 2e900f3631 phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and ulpi_port
| * 58e0264658 pwm: mtk-disp: Disable shadow registers before setting backlight values
| * 33f00f0a73 pwm: mtk-disp: Adjust the clocks to avoid them mismatch
| * e5e9e59c45 pwm: mtk-disp: Don't check the return code of pwmchip_remove()
| * 8e238e8882 dmaengine: mv_xor_v2: Fix an error code.
| * 026df12f3c leds: TI_LMU_COMMON: select REGMAP instead of depending on it
| * a34f6dcb78 ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline
| * 6dfd85ada8 openrisc: Properly store r31 to pt_regs on unhandled exceptions
| * 2fd44d2bde clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when init fails
| * f2aaf41988 clocksource: davinci: axe a pointless __GFP_NOFAIL
| * fc051820d6 clocksource/drivers/davinci: Avoid trailing '\n' hidden in pr_fmt()
| * 945e989862 RDMA/mlx5: Use correct device num_ports when modify DC
| * 9bf843683a SUNRPC: remove the maximum number of retries in call_bind_status
| * 1dfa3c9dd2 Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe
| * ce6c42f0b6 input: raspberrypi-ts: Release firmware handle when not needed
| * de85be00a8 firmware: raspberrypi: Introduce devm_rpi_firmware_get()
| * d537afa08e firmware: raspberrypi: Keep count of all consumers
| * 919f470337 NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease
| * fe60c3af70 IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order
| * b4f12e2402 RDMA/siw: Remove namespace check from siw_netdev_event()
| * 795d11e8ff clk: add missing of_node_put() in "assigned-clocks" property parsing
| * 0c770f95a2 power: supply: generic-adc-battery: fix unit scaling
| * 31ca78dc1f rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time
| * 8feca62590 RDMA/mlx4: Prevent shift wrapping in set_user_sq_size()
| * 683cd87041 rtc: omap: include header for omap_rtc_power_off_program prototype
| * a48403e8c3 RDMA/rdmavt: Delete unnecessary NULL check
| * b24e0e4612 RDMA/siw: Fix potential page_array out of range access
| * 318bc22dec perf/core: Fix hardlockup failure caused by perf throttle
| * ff3edfb3c8 powerpc/rtas: use memmove for potentially overlapping buffer copy
| * 333a2a9846 macintosh: via-pmu-led: requires ATA to be set
| * e2dd8bbab7 powerpc/sysdev/tsi108: fix resource printk format warnings
| * 770d583cd5 powerpc/wii: fix resource printk format warnings
| * f60c8d7c16 powerpc/mpc512x: fix resource printk format warning
| * 97cd970f8a macintosh/windfarm_smu_sat: Add missing of_node_put()
| * 54dda73222 spmi: Add a check for remove callback when removing a SPMI driver
| * af9bfe1c0a staging: rtl8192e: Fix W_DISABLE# does not work after stop/start
| * 572d48361a serial: 8250: Add missing wakeup event reporting
| * 488baa8038 tty: serial: fsl_lpuart: adjust buffer length to the intended size
| * 8fa80b452b firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
| * 26ca30516b usb: mtu3: fix kernel panic at qmu transfer done irq handler
| * bd7a3e6416 usb: chipidea: fix missing goto in `ci_hdrc_probe`
| * f9e2abb6df sh: sq: Fix incorrect element size for allocating bitmap buffer
| * e1431faa89 uapi/linux/const.h: prefer ISO-friendly __typeof__
| * 6716203844 spi: cadence-quadspi: fix suspend-resume implementations
| * caaefbf823 mtd: spi-nor: cadence-quadspi: Handle probe deferral while requesting DMA channel
| * ee5ffe4cdf mtd: spi-nor: cadence-quadspi: Don't initialize rx_dma_complete on failure
| * 7c69aeca59 mtd: spi-nor: cadence-quadspi: Provide a way to disable DAC mode
| * df9708297b mtd: spi-nor: cadence-quadspi: Make driver independent of flash geometry
| * 30ac77e995 scripts/gdb: bail early if there are no generic PD
| * 35a2681e99 PM: domains: Fix up terminology with parent/child
| * 0fbc62db7e scripts/gdb: bail early if there are no clocks
| * 0988baae39 ia64: salinfo: placate defined-but-not-used warning
| * d6cb7b6868 ia64: mm/contig: fix section mismatch warning/error
| * d3c6d52148 of: Fix modalias string generation
| * ca0f4ad2b7 vmci_host: fix a race condition in vmci_host_poll() causing GPF
| * 170e223240 spi: fsl-spi: Fix CPM/QE mode Litte Endian
| * 8632384337 spi: qup: Don't skip cleanup in remove's error path
| * 814a9a6de1 linux/vt_buffer.h: allow either builtin or modular for macros
| * 3547e5bd0d ASoC: es8316: Handle optional IRQ assignment
| * 9650d5a1e7 ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ
| * f5ce428e3e genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()
| * 0f31993721 PCI: imx6: Install the fault handler only on compatible match
| * 0fee5030c0 usb: gadget: udc: renesas_usb3: Fix use after free bug in renesas_usb3_remove due to race condition
| * 7d2bc728cc iio: light: max44009: add missing OF device matching
| * ee0e2f7af0 fpga: bridge: fix kernel-doc parameter description
| * 3fb02404c1 usb: host: xhci-rcar: remove leftover quirk handling
| * 36fb7843f1 pstore: Revert pmsg_lock back to a normal mutex
| * 602fa8af44 tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp.
| * 638810f5d0 net: amd: Fix link leak when verifying config failed
| * 9ef809945e netlink: Use copy_to_user() for optval in netlink_getsockopt().
| * de0ffb5145 Revert "Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work"
| * 27c468ec1a ipv4: Fix potential uninit variable access bug in __ip_make_skb()
| * 3b9960e21e netfilter: nf_tables: don't write table validation state without mutex
| * 64d2c1cfd0 bpf: Don't EFAULT for getsockopt with optval=NULL
| * 3bf918f90f ixgbe: Enable setting RSS table to default values
| * 053b36c50b ixgbe: Allow flow hash to be set via ethtool
| * ae23fc2b23 wifi: iwlwifi: mvm: check firmware response size
| * ffdfaf27eb wifi: iwlwifi: make the loop for card preparation effective
| * 3725b35fc0 md/raid10: fix memleak of md thread
| * fb3f2f2fa0 md: update the optimal I/O size on reshape
| * b6460f68c1 md/raid10: fix memleak for 'conf->bio_split'
| * 8c5d5d7ffd md/raid10: fix leak of 'r10bio->remaining' for recovery
| * 1fee7e391d bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap
| * d5fdcd2384 nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage"
| * b1e6b3fd11 nvme: fix async event trace event
| * eaaa0c6b05 nvme: handle the persistent internal error AER
| * c229821510 bpf, sockmap: fix deadlocks in the sockhash and sockmap
| * 74d90f92ea scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup()
| * 01993768b3 crypto: drbg - Only fail when jent is unavailable in FIPS mode
| * b21c7e28e8 crypto: drbg - make drbg_prepare_hrng() handle jent instantiation errors
| * 14efbe2499 bpftool: Fix bug for long instructions in program CFG dumps
| * 3e3533c56c wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg()
| * 03109f1870 wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg()
| * e163e64227 rtlwifi: Replace RT_TRACE with rtl_dbg
| * faec6b8654 rtlwifi: Start changing RT_TRACE into rtl_dbg
| * 7c5e804b6d f2fs: handle dqget error in f2fs_transfer_project_quota()
| * 7a2ae008a5 scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS
| * a4245323d2 scsi: target: iscsit: Fix TAS handling during conn cleanup
| * 8e402d5198 net/packet: convert po->auxdata to an atomic flag
| * f3ac72c7ab net/packet: convert po->origdev to an atomic flag
| * 4760229b82 net/packet: annotate accesses to po->xmit
| * 47464e0c65 vlan: partially enable SIOCSHWTSTAMP in container
| * 8f851a75bb scm: fix MSG_CTRUNC setting condition for SO_PASSSEC
| * 7160c6940a wifi: rtw88: mac: Return the original error from rtw_mac_power_switch()
| * 743ae09b28 wifi: rtw88: mac: Return the original error from rtw_pwr_seq_parser()
| * 72d5edceb2 tools: bpftool: Remove invalid \' json escape
| * 0d1792c983 wifi: ath6kl: reduce WARN to dev_dbg() in callback
| * 8d17563174 wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list()
| * d989931866 wifi: ath9k: hif_usb: fix memory leak of remain_skbs
| * 1286c4ce1f wifi: ath6kl: minor fix for allocation size
| * a3e7a3d472 tick/common: Align tick period with the HZ tick.
| * 04be737176 tick: Get rid of tick_period
| * 3df29117d8 tick/sched: Optimize tick_do_update_jiffies64() further
| * b6fe34d936 tick/sched: Reduce seqcount held scope in tick_do_update_jiffies64()
| * 746eac77e0 tick/sched: Use tick_next_period for lockless quick check
| * a23607579f timekeeping: Split jiffies seqlock
| * 22d7ec50ff debugobject: Prevent init race with static objects
| * a687da5004 arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step
| * 442470948c x86/ioapic: Don't return 0 from arch_dynirq_lower_bound()
| * 824683dbec regulator: stm32-pwr: fix of_iomap leak
| * 53adb408b1 media: rc: gpio-ir-recv: Fix support for wake-up
| * 9df630dafa media: rcar_fdp1: Fix refcount leak in probe and remove function
| * 6fd6e2f29c media: rcar_fdp1: Fix the correct variable assignments
| * 75b55a3cbb media: rcar_fdp1: Make use of the helper function devm_platform_ioremap_resource()
| * 03d2344592 media: rcar_fdp1: fix pm_runtime_get_sync() usage count
| * aebe8e43d8 media: rcar_fdp1: simplify error check logic at fdp_open()
| * a4b6ab360f media: saa7134: fix use after free bug in saa7134_finidev due to race condition
| * cd1583caed media: dm1105: Fix use after free bug in dm1105_remove due to race condition
| * 0c61a6897c x86/apic: Fix atomic update of offset in reserve_eilvt_offset()
| * 5224ea5751 regulator: core: Avoid lockdep reports when resolving supplies
| * 73b262115f regulator: core: Consistently set mutex_owner when using ww_mutex_lock_slow()
| * 9b53238b3b drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe()
| * 0a6d476d9c mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data
| * f79421c360 drm/msm/adreno: drop bogus pm_runtime_set_active()
| * 438d00b18d drm/msm/adreno: Defer enabling runpm until hw_init()
| * 594726c938 drm/msm: fix unbalanced pm_runtime_enable in adreno_gpu_{init, cleanup}
| * 37c8085cf9 firmware: qcom_scm: Clear download bit during reboot
| * 620b983589 media: av7110: prevent underflow in write_ts_to_decoder()
| * 1205c52cf2 media: uapi: add MEDIA_BUS_FMT_METADATA_FIXED media bus format.
| * c6a315f0b1 media: bdisp: Add missing check for create_workqueue
| * 1a057b6895 ARM: dts: qcom: ipq8064: Fix the PCI I/O port range
| * 699bf5a793 ARM: dts: qcom: ipq8064: reduce pci IO size to 64K
| * 1d207fcdf6 ARM: dts: qcom: ipq4019: Fix the PCI I/O port range
| * e0162c9297 EDAC/skx: Fix overflows on the DRAM row address mapping arrays
| * acb6f45775 arm64: dts: renesas: r8a774c0: Remove bogus voltages from OPP table
| * 0524eb6882 arm64: dts: renesas: r8a77990: Remove bogus voltages from OPP table
| * a535b5d4a2 drm/probe-helper: Cancel previous job before starting new one
| * 4223f98d4d drm/vgem: add missing mutex_destroy
| * 8747cd580b drm/rockchip: Drop unbalanced obj unref
| * 9773c58594 erofs: fix potential overflow calculating xattr_isize
| * 880c79bdb0 erofs: stop parsing non-compact HEAD index if clusterofs is invalid
| * e998107daa tpm, tpm_tis: Do not skip reset of original interrupt vector
| * 1c131a32a9 selinux: ensure av_permissions.h is built when needed
| * 11458692eb selinux: fix Makefile dependencies of flask.h
| * 823f554747 ubifs: Free memory for tmpfile name
| * d3f1b113a5 ubi: Fix return value overwrite issue in try_write_vid_and_data()
| * 6f2eee5457 ubifs: Fix memleak when insert_old_idx() failed
| * 2c2a76b7c4 Revert "ubifs: dirty_cow_znode: Fix memleak in error handling path"
| * 5d1f14beab i2c: omap: Fix standard mode false ACK readings
| * d482617fa6 KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted
| * 67d33b8c56 reiserfs: Add security prefix to xattr name in reiserfs_security_write()
| * 2399b1fda0 ring-buffer: Sync IRQ works before buffer destruction
| * a7fa8c9dc8 pwm: meson: Fix g12a ao clk81 name
| * a3e0d3430f pwm: meson: Fix axg ao mux parents
| * 719459877d kheaders: Use array declaration instead of char
| * 4ec3be7003 ipmi: fix SSIF not responding under certain cond.
| * bead854bcc ipmi:ssif: Add send_retries increment
| * 0f91290774 MIPS: fw: Allow firmware to pass a empty env
| * 3092933b26 xhci: fix debugfs register accesses while suspended
| * 3c5a28658d debugfs: regset32: Add Runtime PM support
| * 2298b30010 staging: iio: resolver: ads1210: fix config mode
| * fbd11f086b perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into sysconf(__SC_THREAD_STACK_MIN_VALUE)
| * 6525d2fd6f USB: dwc3: fix runtime pm imbalance on unbind
| * 2d5844aa6e USB: dwc3: fix runtime pm imbalance on probe errors
| * 0804f3715c asm-generic/io.h: suppress endianness warnings for readq() and writeq()
| * 944ff47a19 ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750
| * f00e4bfd7f iio: adc: palmas_gpadc: fix NULL dereference on rmmod
| * 85ed09c330 USB: serial: option: add UNISOC vendor and TOZED LT70C product
| * 48cdcb40d5 bluetooth: Perform careful capability checks in hci_sock_ioctl()
| * c8258fc827 drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var
| * 425eea395f wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies()
| * 3b7509b6f5 counter: 104-quad-8: Fix race condition between FLAG and CNTR reads
* 05fe88d1c8 Merge "Merge tag 'android11-5.4.242_r00' into android11-5.4" into android11-5.4-lts

Change-Id: Ib877c272d1132e485256d651e8cd58b2e67a32c4
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2023-07-10 16:05:05 +00:00
commit ef9d9e2c44
857 changed files with 7056 additions and 16354 deletions

View file

@ -825,10 +825,6 @@
debugpat [X86] Enable PAT debugging
decnet.addr= [HW,NET]
Format: <area>[,<node>]
See also Documentation/networking/decnet.txt.
default_hugepagesz=
[same as hugepagesz=] The size of the default
HugeTLB page size. This is the size represented by

View file

@ -34,13 +34,14 @@ Table : Subdirectories in /proc/sys/net
========= =================== = ========== ==================
Directory Content Directory Content
========= =================== = ========== ==================
core General parameter appletalk Appletalk protocol
unix Unix domain sockets netrom NET/ROM
802 E802 protocol ax25 AX25
ethernet Ethernet protocol rose X.25 PLP layer
ipv4 IP version 4 x25 X.25 protocol
bridge Bridging decnet DEC net
ipv6 IP version 6 tipc TIPC
802 E802 protocol mptcp Multipath TCP
appletalk Appletalk protocol netfilter Network Filter
ax25 AX25 netrom NET/ROM
bridge Bridging rose X.25 PLP layer
core General parameter tipc TIPC
ethernet Ethernet protocol unix Unix domain sockets
ipv4 IP version 4 x25 X.25 protocol
ipv6 IP version 6
========= =================== = ========== ==================
1. /proc/sys/net/core - Network core options

View file

@ -302,7 +302,6 @@ Code Seq# Include File Comments
0x89 00-06 arch/x86/include/asm/sockios.h
0x89 0B-DF linux/sockios.h
0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range
0x89 E0-EF linux/dn.h PROTOPRIVATE range
0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range
0x8B all linux/wireless.h
0x8C 00-3F WiNRADiO driver

View file

@ -7794,3 +7794,30 @@ formats.
- 0x5001
- Interleaved raw UYVY and JPEG image format with embedded meta-data
used by Samsung S3C73MX camera sensors.
.. _v4l2-mbus-metadata-fmts:
Metadata Formats
^^^^^^^^^^^^^^^^
This section lists all metadata formats.
The following table lists the existing metadata formats.
.. tabularcolumns:: |p{8.0cm}|p{1.4cm}|p{7.7cm}|
.. flat-table:: Metadata formats
:header-rows: 1
:stub-columns: 0
* - Identifier
- Code
- Comments
* .. _MEDIA-BUS-FMT-METADATA-FIXED:
- MEDIA_BUS_FMT_METADATA_FIXED
- 0x7001
- This format should be used when the same driver handles
both sides of the link and the bus format is a fixed
metadata format that is not configurable from userspace.
Width and height will be set to 0 for this format.

View file

@ -1,230 +0,0 @@
Linux DECnet Networking Layer Information
===========================================
1) Other documentation....
o Project Home Pages
http://www.chygwyn.com/ - Kernel info
http://linux-decnet.sourceforge.net/ - Userland tools
http://www.sourceforge.net/projects/linux-decnet/ - Status page
2) Configuring the kernel
Be sure to turn on the following options:
CONFIG_DECNET (obviously)
CONFIG_PROC_FS (to see what's going on)
CONFIG_SYSCTL (for easy configuration)
if you want to try out router support (not properly debugged yet)
you'll need the following options as well...
CONFIG_DECNET_ROUTER (to be able to add/delete routes)
CONFIG_NETFILTER (will be required for the DECnet routing daemon)
Don't turn on SIOCGIFCONF support for DECnet unless you are really sure
that you need it, in general you won't and it can cause ifconfig to
malfunction.
Run time configuration has changed slightly from the 2.4 system. If you
want to configure an endnode, then the simplified procedure is as follows:
o Set the MAC address on your ethernet card before starting _any_ other
network protocols.
As soon as your network card is brought into the UP state, DECnet should
start working. If you need something more complicated or are unsure how
to set the MAC address, see the next section. Also all configurations which
worked with 2.4 will work under 2.5 with no change.
3) Command line options
You can set a DECnet address on the kernel command line for compatibility
with the 2.4 configuration procedure, but in general it's not needed any more.
If you do st a DECnet address on the command line, it has only one purpose
which is that its added to the addresses on the loopback device.
With 2.4 kernels, DECnet would only recognise addresses as local if they
were added to the loopback device. In 2.5, any local interface address
can be used to loop back to the local machine. Of course this does not
prevent you adding further addresses to the loopback device if you
want to.
N.B. Since the address list of an interface determines the addresses for
which "hello" messages are sent, if you don't set an address on the loopback
interface then you won't see any entries in /proc/net/neigh for the local
host until such time as you start a connection. This doesn't affect the
operation of the local communications in any other way though.
The kernel command line takes options looking like the following:
decnet.addr=1,2
the two numbers are the node address 1,2 = 1.2 For 2.2.xx kernels
and early 2.3.xx kernels, you must use a comma when specifying the
DECnet address like this. For more recent 2.3.xx kernels, you may
use almost any character except space, although a `.` would be the most
obvious choice :-)
There used to be a third number specifying the node type. This option
has gone away in favour of a per interface node type. This is now set
using /proc/sys/net/decnet/conf/<dev>/forwarding. This file can be
set with a single digit, 0=EndNode, 1=L1 Router and 2=L2 Router.
There are also equivalent options for modules. The node address can
also be set through the /proc/sys/net/decnet/ files, as can other system
parameters.
Currently the only supported devices are ethernet and ip_gre. The
ethernet address of your ethernet card has to be set according to the DECnet
address of the node in order for it to be autoconfigured (and then appear in
/proc/net/decnet_dev). There is a utility available at the above
FTP sites called dn2ethaddr which can compute the correct ethernet
address to use. The address can be set by ifconfig either before or
at the time the device is brought up. If you are using RedHat you can
add the line:
MACADDR=AA:00:04:00:03:04
or something similar, to /etc/sysconfig/network-scripts/ifcfg-eth0 or
wherever your network card's configuration lives. Setting the MAC address
of your ethernet card to an address starting with "hi-ord" will cause a
DECnet address which matches to be added to the interface (which you can
verify with iproute2).
The default device for routing can be set through the /proc filesystem
by setting /proc/sys/net/decnet/default_device to the
device you want DECnet to route packets out of when no specific route
is available. Usually this will be eth0, for example:
echo -n "eth0" >/proc/sys/net/decnet/default_device
If you don't set the default device, then it will default to the first
ethernet card which has been autoconfigured as described above. You can
confirm that by looking in the default_device file of course.
There is a list of what the other files under /proc/sys/net/decnet/ do
on the kernel patch web site (shown above).
4) Run time kernel configuration
This is either done through the sysctl/proc interface (see the kernel web
pages for details on what the various options do) or through the iproute2
package in the same way as IPv4/6 configuration is performed.
Documentation for iproute2 is included with the package, although there is
as yet no specific section on DECnet, most of the features apply to both
IP and DECnet, albeit with DECnet addresses instead of IP addresses and
a reduced functionality.
If you want to configure a DECnet router you'll need the iproute2 package
since its the _only_ way to add and delete routes currently. Eventually
there will be a routing daemon to send and receive routing messages for
each interface and update the kernel routing tables accordingly. The
routing daemon will use netfilter to listen to routing packets, and
rtnetlink to update the kernels routing tables.
The DECnet raw socket layer has been removed since it was there purely
for use by the routing daemon which will now use netfilter (a much cleaner
and more generic solution) instead.
5) How can I tell if its working ?
Here is a quick guide of what to look for in order to know if your DECnet
kernel subsystem is working.
- Is the node address set (see /proc/sys/net/decnet/node_address)
- Is the node of the correct type
(see /proc/sys/net/decnet/conf/<dev>/forwarding)
- Is the Ethernet MAC address of each Ethernet card set to match
the DECnet address. If in doubt use the dn2ethaddr utility available
at the ftp archive.
- If the previous two steps are satisfied, and the Ethernet card is up,
you should find that it is listed in /proc/net/decnet_dev and also
that it appears as a directory in /proc/sys/net/decnet/conf/. The
loopback device (lo) should also appear and is required to communicate
within a node.
- If you have any DECnet routers on your network, they should appear
in /proc/net/decnet_neigh, otherwise this file will only contain the
entry for the node itself (if it doesn't check to see if lo is up).
- If you want to send to any node which is not listed in the
/proc/net/decnet_neigh file, you'll need to set the default device
to point to an Ethernet card with connection to a router. This is
again done with the /proc/sys/net/decnet/default_device file.
- Try starting a simple server and client, like the dnping/dnmirror
over the loopback interface. With luck they should communicate.
For this step and those after, you'll need the DECnet library
which can be obtained from the above ftp sites as well as the
actual utilities themselves.
- If this seems to work, then try talking to a node on your local
network, and see if you can obtain the same results.
- At this point you are on your own... :-)
6) How to send a bug report
If you've found a bug and want to report it, then there are several things
you can do to help me work out exactly what it is that is wrong. Useful
information (_most_ of which _is_ _essential_) includes:
- What kernel version are you running ?
- What version of the patch are you running ?
- How far though the above set of tests can you get ?
- What is in the /proc/decnet* files and /proc/sys/net/decnet/* files ?
- Which services are you running ?
- Which client caused the problem ?
- How much data was being transferred ?
- Was the network congested ?
- How can the problem be reproduced ?
- Can you use tcpdump to get a trace ? (N.B. Most (all?) versions of
tcpdump don't understand how to dump DECnet properly, so including
the hex listing of the packet contents is _essential_, usually the -x flag.
You may also need to increase the length grabbed with the -s flag. The
-e flag also provides very useful information (ethernet MAC addresses))
7) MAC FAQ
A quick FAQ on ethernet MAC addresses to explain how Linux and DECnet
interact and how to get the best performance from your hardware.
Ethernet cards are designed to normally only pass received network frames
to a host computer when they are addressed to it, or to the broadcast address.
Linux has an interface which allows the setting of extra addresses for
an ethernet card to listen to. If the ethernet card supports it, the
filtering operation will be done in hardware, if not the extra unwanted packets
received will be discarded by the host computer. In the latter case,
significant processor time and bus bandwidth can be used up on a busy
network (see the NAPI documentation for a longer explanation of these
effects).
DECnet makes use of this interface to allow running DECnet on an ethernet
card which has already been configured using TCP/IP (presumably using the
built in MAC address of the card, as usual) and/or to allow multiple DECnet
addresses on each physical interface. If you do this, be aware that if your
ethernet card doesn't support perfect hashing in its MAC address filter
then your computer will be doing more work than required. Some cards
will simply set themselves into promiscuous mode in order to receive
packets from the DECnet specified addresses. So if you have one of these
cards its better to set the MAC address of the card as described above
to gain the best efficiency. Better still is to use a card which supports
NAPI as well.
8) Mailing list
If you are keen to get involved in development, or want to ask questions
about configuration, or even just report bugs, then there is a mailing
list that you can join, details are at:
http://sourceforge.net/mail/?group_id=4993
9) Legal Info
The Linux DECnet project team have placed their code under the GPL. The
software is provided "as is" and without warranty express or implied.
DECnet is a trademark of Compaq. This software is not a product of
Compaq. We acknowledge the help of people at Compaq in providing extra
documentation above and beyond what was previously publicly available.
Steve Whitehouse <SteveW@ACM.org>

View file

@ -4617,13 +4617,6 @@ F: include/uapi/linux/dccp.h
F: include/linux/tfrc.h
F: net/dccp/
DECnet NETWORK LAYER
W: http://linux-decnet.sourceforge.net
L: linux-decnet-user@lists.sourceforge.net
S: Orphan
F: Documentation/networking/decnet.txt
F: net/decnet/
DECSTATION PLATFORM SUPPORT
M: "Maciej W. Rozycki" <macro@linux-mips.org>
L: linux-mips@vger.kernel.org

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 242
SUBLEVEL = 249
EXTRAVERSION =
NAME = Kleptomaniac Octopus
@ -797,6 +797,10 @@ endif
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
# These result in bogus false positives
KBUILD_CFLAGS += $(call cc-disable-warning, dangling-pointer)
ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
else

View file

@ -527,7 +527,7 @@
interrupt-parent = <&gpio1>;
interrupts = <31 0>;
pendown-gpio = <&gpio1 31 0>;
pendown-gpio = <&gpio1 31 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>;

View file

@ -156,7 +156,7 @@
compatible = "ti,ads7843";
interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
spi-max-frequency = <3000000>;
pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&pioC 2 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <150>;
ti,x-max = /bits/ 16 <3830>;

View file

@ -179,7 +179,7 @@
compatible = "wlf,wm8960";
reg = <0x1a>;
clocks = <&pmu_system_controller 0>;
clock-names = "MCLK1";
clock-names = "mclk";
wlf,shared-lrclk;
#sound-dai-cells = <0>;
};

View file

@ -64,7 +64,7 @@
interrupt-parent = <&gpio2>;
interrupts = <7 0>;
spi-max-frequency = <1000000>;
pendown-gpio = <&gpio2 7 0>;
pendown-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
vcc-supply = <&reg_3p3v>;
ti,x-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <4095>;

View file

@ -176,7 +176,7 @@
pinctrl-0 = <&pinctrl_tsc2046_pendown>;
interrupt-parent = <&gpio2>;
interrupts = <29 0>;
pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio2 29 GPIO_ACTIVE_LOW>;
touchscreen-max-pressure = <255>;
wakeup-source;
};

View file

@ -227,7 +227,7 @@
interrupt-parent = <&gpio2>;
interrupts = <25 0>; /* gpio_57 */
pendown-gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio2 25 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>;

View file

@ -54,7 +54,7 @@
interrupt-parent = <&gpio1>;
interrupts = <27 0>; /* gpio_27 */
pendown-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>;

View file

@ -311,7 +311,7 @@
interrupt-parent = <&gpio1>;
interrupts = <8 0>; /* boot6 / gpio_8 */
spi-max-frequency = <1000000>;
pendown-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
vcc-supply = <&reg_vcc3>;
pinctrl-names = "default";
pinctrl-0 = <&tsc2048_pins>;

View file

@ -149,7 +149,7 @@
interrupt-parent = <&gpio4>;
interrupts = <18 0>; /* gpio_114 */
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>;

View file

@ -160,7 +160,7 @@
interrupt-parent = <&gpio4>;
interrupts = <18 0>; /* gpio_114 */
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>;

View file

@ -651,7 +651,7 @@
pinctrl-0 = <&penirq_pins>;
interrupt-parent = <&gpio3>;
interrupts = <30 IRQ_TYPE_NONE>; /* GPIO_94 */
pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
vcc-supply = <&vaux4>;
ti,x-min = /bits/ 16 <0>;

View file

@ -354,7 +354,7 @@
interrupt-parent = <&gpio1>;
interrupts = <15 0>; /* gpio1_wk15 */
pendown-gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
pendown-gpio = <&gpio1 15 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>;

View file

@ -393,8 +393,8 @@
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000>,
<0x82000000 0 0x40300000 0x40300000 0 0x00d00000>;
ranges = <0x81000000 0x0 0x00000000 0x40200000 0x0 0x00100000>,
<0x82000000 0x0 0x40300000 0x40300000 0x0 0x00d00000>;
interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi";

View file

@ -451,8 +451,8 @@
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */
0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00010000 /* I/O */
0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* MEM */
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi";
@ -502,8 +502,8 @@
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */
0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
ranges = <0x81000000 0x0 0x00000000 0x31e00000 0x0 0x00010000 /* I/O */
0x82000000 0x0 0x2e000000 0x2e000000 0x0 0x03e00000>; /* MEM */
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi";
@ -553,8 +553,8 @@
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */
0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
ranges = <0x81000000 0x0 0x00000000 0x35e00000 0x0 0x00010000 /* I/O */
0x82000000 0x0 0x32000000 0x32000000 0x0 0x03e00000>; /* MEM */
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi";

View file

@ -571,7 +571,7 @@
interrupts = <29>;
clocks = <&clocks CLK_CSIS>,
<&clocks SCLK_CSIS>;
clock-names = "clk_csis",
clock-names = "csis",
"sclk_csis";
bus-width = <4>;
status = "disabled";

View file

@ -284,6 +284,88 @@
slew-rate = <2>;
};
};
can1_pins_a: can1-0 {
pins1 {
pinmux = <STM32_PINMUX('A', 12, AF9)>; /* CAN1_TX */
};
pins2 {
pinmux = <STM32_PINMUX('A', 11, AF9)>; /* CAN1_RX */
bias-pull-up;
};
};
can1_pins_b: can1-1 {
pins1 {
pinmux = <STM32_PINMUX('B', 9, AF9)>; /* CAN1_TX */
};
pins2 {
pinmux = <STM32_PINMUX('B', 8, AF9)>; /* CAN1_RX */
bias-pull-up;
};
};
can1_pins_c: can1-2 {
pins1 {
pinmux = <STM32_PINMUX('D', 1, AF9)>; /* CAN1_TX */
};
pins2 {
pinmux = <STM32_PINMUX('D', 0, AF9)>; /* CAN1_RX */
bias-pull-up;
};
};
can1_pins_d: can1-3 {
pins1 {
pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
};
pins2 {
pinmux = <STM32_PINMUX('H', 14, AF9)>; /* CAN1_RX */
bias-pull-up;
};
};
can2_pins_a: can2-0 {
pins1 {
pinmux = <STM32_PINMUX('B', 6, AF9)>; /* CAN2_TX */
};
pins2 {
pinmux = <STM32_PINMUX('B', 5, AF9)>; /* CAN2_RX */
bias-pull-up;
};
};
can2_pins_b: can2-1 {
pins1 {
pinmux = <STM32_PINMUX('B', 13, AF9)>; /* CAN2_TX */
};
pins2 {
pinmux = <STM32_PINMUX('B', 12, AF9)>; /* CAN2_RX */
bias-pull-up;
};
};
can3_pins_a: can3-0 {
pins1 {
pinmux = <STM32_PINMUX('A', 15, AF11)>; /* CAN3_TX */
};
pins2 {
pinmux = <STM32_PINMUX('A', 8, AF11)>; /* CAN3_RX */
bias-pull-up;
};
};
can3_pins_b: can3-1 {
pins1 {
pinmux = <STM32_PINMUX('B', 4, AF11)>; /* CAN3_TX */
};
pins2 {
pinmux = <STM32_PINMUX('B', 3, AF11)>; /* CAN3_RX */
bias-pull-up;
};
};
};
};
};

View file

@ -132,6 +132,7 @@
reg = <0x2c0f0000 0x1000>;
interrupts = <0 84 4>;
cache-level = <2>;
cache-unified;
};
pmu {

View file

@ -300,6 +300,29 @@ static int unwind_exec_pop_subset_r0_to_r3(struct unwind_ctrl_block *ctrl,
return URC_OK;
}
static unsigned long unwind_decode_uleb128(struct unwind_ctrl_block *ctrl)
{
unsigned long bytes = 0;
unsigned long insn;
unsigned long result = 0;
/*
* unwind_get_byte() will advance `ctrl` one instruction at a time, so
* loop until we get an instruction byte where bit 7 is not set.
*
* Note: This decodes a maximum of 4 bytes to output 28 bits data where
* max is 0xfffffff: that will cover a vsp increment of 1073742336, hence
* it is sufficient for unwinding the stack.
*/
do {
insn = unwind_get_byte(ctrl);
result |= (insn & 0x7f) << (bytes * 7);
bytes++;
} while (!!(insn & 0x80) && (bytes != sizeof(result)));
return result;
}
/*
* Execute the current unwind instruction.
*/
@ -353,7 +376,7 @@ static int unwind_exec_insn(struct unwind_ctrl_block *ctrl)
if (ret)
goto error;
} else if (insn == 0xb2) {
unsigned long uleb128 = unwind_get_byte(ctrl);
unsigned long uleb128 = unwind_decode_uleb128(ctrl);
ctrl->vrs[SP] += 0x204 + (uleb128 << 2);
} else {

View file

@ -653,7 +653,7 @@ static void __init map_sa1100_gpio_regs( void )
*/
static void __init get_assabet_scr(void)
{
unsigned long uninitialized_var(scr), i;
unsigned long scr, i;
GPDR |= 0x3fc; /* Configure GPIO 9:2 as outputs */
GPSR = 0x3fc; /* Write 0xFF to GPIO 9:2 */

View file

@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only
/**
/*
* arch/arm/mac-sa1100/jornada720_ssp.c
*
* Copyright (C) 2006/2007 Kristoffer Ericson <Kristoffer.Ericson@gmail.com>
@ -26,6 +26,7 @@ static unsigned long jornada_ssp_flags;
/**
* jornada_ssp_reverse - reverses input byte
* @byte: input byte to reverse
*
* we need to reverse all data we receive from the mcu due to its physical location
* returns : 01110111 -> 11101110
@ -46,6 +47,7 @@ EXPORT_SYMBOL(jornada_ssp_reverse);
/**
* jornada_ssp_byte - waits for ready ssp bus and sends byte
* @byte: input byte to transmit
*
* waits for fifo buffer to clear and then transmits, if it doesn't then we will
* timeout after <timeout> rounds. Needs mcu running before its called.
@ -77,6 +79,7 @@ EXPORT_SYMBOL(jornada_ssp_byte);
/**
* jornada_ssp_inout - decide if input is command or trading byte
* @byte: input byte to send (may be %TXDUMMY)
*
* returns : (jornada_ssp_byte(byte)) on success
* : %-ETIMEDOUT on timeout failure

View file

@ -799,7 +799,7 @@ static int alignment_get_thumb(struct pt_regs *regs, u16 *ip, u16 *inst)
static int
do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
{
union offset_union uninitialized_var(offset);
union offset_union offset;
unsigned long instrptr;
int (*handler)(unsigned long addr, u32 instr, struct pt_regs *regs);
unsigned int type;

View file

@ -49,17 +49,14 @@
opp-shared;
opp-800000000 {
opp-hz = /bits/ 64 <800000000>;
opp-microvolt = <820000>;
clock-latency-ns = <300000>;
};
opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <820000>;
clock-latency-ns = <300000>;
};
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <820000>;
clock-latency-ns = <300000>;
opp-suspend;
};

View file

@ -60,17 +60,14 @@
opp-shared;
opp-800000000 {
opp-hz = /bits/ 64 <800000000>;
opp-microvolt = <820000>;
clock-latency-ns = <300000>;
};
opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <820000>;
clock-latency-ns = <300000>;
};
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <820000>;
clock-latency-ns = <300000>;
opp-suspend;
};

View file

@ -116,6 +116,7 @@ void user_regs_reset_single_step(struct user_pt_regs *regs,
void kernel_enable_single_step(struct pt_regs *regs);
void kernel_disable_single_step(void);
int kernel_active_single_step(void);
void kernel_rewind_single_step(struct pt_regs *regs);
#ifdef CONFIG_HAVE_HW_BREAKPOINT
int reinstall_suspended_bps(struct pt_regs *regs);

View file

@ -102,8 +102,14 @@
#define SB_BARRIER_INSN __SYS_BARRIER_INSN(0, 7, 31)
#define SYS_DC_ISW sys_insn(1, 0, 7, 6, 2)
#define SYS_DC_IGSW sys_insn(1, 0, 7, 6, 4)
#define SYS_DC_IGDSW sys_insn(1, 0, 7, 6, 6)
#define SYS_DC_CSW sys_insn(1, 0, 7, 10, 2)
#define SYS_DC_CGSW sys_insn(1, 0, 7, 10, 4)
#define SYS_DC_CGDSW sys_insn(1, 0, 7, 10, 6)
#define SYS_DC_CISW sys_insn(1, 0, 7, 14, 2)
#define SYS_DC_CIGSW sys_insn(1, 0, 7, 14, 4)
#define SYS_DC_CIGDSW sys_insn(1, 0, 7, 14, 6)
#define SYS_OSDTRRX_EL1 sys_reg(2, 0, 0, 0, 2)
#define SYS_MDCCINT_EL1 sys_reg(2, 0, 0, 2, 0)

View file

@ -441,6 +441,11 @@ int kernel_active_single_step(void)
}
NOKPROBE_SYMBOL(kernel_active_single_step);
void kernel_rewind_single_step(struct pt_regs *regs)
{
set_regs_spsr_ss(regs);
}
/* ptrace API */
void user_enable_single_step(struct task_struct *task)
{

View file

@ -223,6 +223,8 @@ int kgdb_arch_handle_exception(int exception_vector, int signo,
*/
if (!kernel_active_single_step())
kernel_enable_single_step(linux_regs);
else
kernel_rewind_single_step(linux_regs);
err = 0;
break;
default:

View file

@ -403,8 +403,8 @@ static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *re
}
}
#define VM_FAULT_BADMAP 0x010000
#define VM_FAULT_BADACCESS 0x020000
#define VM_FAULT_BADMAP ((__force vm_fault_t)0x010000)
#define VM_FAULT_BADACCESS ((__force vm_fault_t)0x020000)
static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
unsigned int mm_flags, unsigned long vm_flags)

View file

@ -444,7 +444,7 @@ static void
do_copy_task_regs (struct task_struct *task, struct unw_frame_info *info, void *arg)
{
unsigned long mask, sp, nat_bits = 0, ar_rnat, urbs_end, cfm;
unsigned long uninitialized_var(ip); /* GCC be quiet */
unsigned long ip;
elf_greg_t *dst = arg;
struct pt_regs *pt;
char nat;

View file

@ -581,7 +581,7 @@ static int salinfo_cpu_pre_down(unsigned int cpu)
* 'data' contains an integer that corresponds to the feature we're
* testing
*/
static int proc_salinfo_show(struct seq_file *m, void *v)
static int __maybe_unused proc_salinfo_show(struct seq_file *m, void *v)
{
unsigned long data = (unsigned long)v;
seq_puts(m, (sal_platform_features & data) ? "1\n" : "0\n");

View file

@ -81,7 +81,7 @@ skip:
return __per_cpu_start + __per_cpu_offset[smp_processor_id()];
}
static inline void
static inline __init void
alloc_per_cpu_data(void)
{
size_t size = PERCPU_PAGE_SIZE * num_possible_cpus();

View file

@ -180,7 +180,7 @@ static void *per_cpu_node_setup(void *cpu_data, int node)
void __init setup_per_cpu_areas(void)
{
struct pcpu_alloc_info *ai;
struct pcpu_group_info *uninitialized_var(gi);
struct pcpu_group_info *gi;
unsigned int *cpu_map;
void *base;
unsigned long base_offset;

View file

@ -369,7 +369,7 @@ EXPORT_SYMBOL(flush_tlb_range);
void ia64_tlb_init(void)
{
ia64_ptce_info_t uninitialized_var(ptce_info); /* GCC be quiet */
ia64_ptce_info_t ptce_info;
u64 tr_pgbits;
long status;
pal_vm_info_1_u_t vm_info_1;

View file

@ -883,11 +883,17 @@ static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs *
}
static inline void __user *
get_sigframe(struct ksignal *ksig, size_t frame_size)
get_sigframe(struct ksignal *ksig, struct pt_regs *tregs, size_t frame_size)
{
unsigned long usp = sigsp(rdusp(), ksig);
unsigned long gap = 0;
return (void __user *)((usp - frame_size) & -8UL);
if (CPU_IS_020_OR_030 && tregs->format == 0xb) {
/* USP is unreliable so use worst-case value */
gap = 256;
}
return (void __user *)((usp - gap - frame_size) & -8UL);
}
static int setup_frame(struct ksignal *ksig, sigset_t *set,
@ -905,7 +911,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
return -EFAULT;
}
frame = get_sigframe(ksig, sizeof(*frame) + fsize);
frame = get_sigframe(ksig, tregs, sizeof(*frame) + fsize);
if (fsize)
err |= copy_to_user (frame + 1, regs + 1, fsize);
@ -976,7 +982,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
return -EFAULT;
}
frame = get_sigframe(ksig, sizeof(*frame));
frame = get_sigframe(ksig, tregs, sizeof(*frame));
if (fsize)
err |= copy_to_user (&frame->uc.uc_extra, regs + 1, fsize);

View file

@ -30,6 +30,7 @@
*
*/
#include <linux/dma-map-ops.h> /* for dma_default_coherent */
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/slab.h>
@ -623,17 +624,18 @@ u32 au1xxx_dbdma_put_source(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
dp->dscr_cmd0 &= ~DSCR_CMD0_IE;
/*
* There is an errata on the Au1200/Au1550 parts that could result
* in "stale" data being DMA'ed. It has to do with the snoop logic on
* the cache eviction buffer. DMA_NONCOHERENT is on by default for
* these parts. If it is fixed in the future, these dma_cache_inv will
* just be nothing more than empty macros. See io.h.
* There is an erratum on certain Au1200/Au1550 revisions that could
* result in "stale" data being DMA'ed. It has to do with the snoop
* logic on the cache eviction buffer. dma_default_coherent is set
* to false on these parts.
*/
dma_cache_wback_inv((unsigned long)buf, nbytes);
if (!dma_default_coherent)
dma_cache_wback_inv(KSEG0ADDR(buf), nbytes);
dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */
wmb(); /* drain writebuffer */
dma_cache_wback_inv((unsigned long)dp, sizeof(*dp));
ctp->chan_ptr->ddma_dbell = 0;
wmb(); /* force doorbell write out to dma engine */
/* Get next descriptor pointer. */
ctp->put_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));
@ -685,17 +687,18 @@ u32 au1xxx_dbdma_put_dest(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
dp->dscr_source1, dp->dscr_dest0, dp->dscr_dest1);
#endif
/*
* There is an errata on the Au1200/Au1550 parts that could result in
* "stale" data being DMA'ed. It has to do with the snoop logic on the
* cache eviction buffer. DMA_NONCOHERENT is on by default for these
* parts. If it is fixed in the future, these dma_cache_inv will just
* be nothing more than empty macros. See io.h.
* There is an erratum on certain Au1200/Au1550 revisions that could
* result in "stale" data being DMA'ed. It has to do with the snoop
* logic on the cache eviction buffer. dma_default_coherent is set
* to false on these parts.
*/
dma_cache_inv((unsigned long)buf, nbytes);
if (!dma_default_coherent)
dma_cache_inv(KSEG0ADDR(buf), nbytes);
dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */
wmb(); /* drain writebuffer */
dma_cache_wback_inv((unsigned long)dp, sizeof(*dp));
ctp->chan_ptr->ddma_dbell = 0;
wmb(); /* force doorbell write out to dma engine */
/* Get next descriptor pointer. */
ctp->put_ptr = phys_to_virt(DSCR_GET_NXTPTR(dp->dscr_nxtptr));

View file

@ -53,8 +53,6 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_NETWORK_SECMARK=y
CONFIG_IP_SCTP=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
CONFIG_DECNET_ROUTER=y
# CONFIG_WIRELESS is not set
# CONFIG_UEVENT_HELPER is not set
# CONFIG_FW_LOADER is not set

View file

@ -49,8 +49,6 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_NETWORK_SECMARK=y
CONFIG_IP_SCTP=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
CONFIG_DECNET_ROUTER=y
# CONFIG_WIRELESS is not set
# CONFIG_UEVENT_HELPER is not set
# CONFIG_FW_LOADER is not set

View file

@ -48,8 +48,6 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_NETWORK_SECMARK=y
CONFIG_IP_SCTP=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
CONFIG_DECNET_ROUTER=y
# CONFIG_WIRELESS is not set
# CONFIG_UEVENT_HELPER is not set
# CONFIG_FW_LOADER is not set

View file

@ -69,7 +69,6 @@ CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -99,7 +98,6 @@ CONFIG_ATM_MPOA=m
CONFIG_ATM_BR2684=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
CONFIG_LLC2=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m

View file

@ -106,7 +106,6 @@ CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -127,7 +126,6 @@ CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE=m
CONFIG_DECNET=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m

View file

@ -117,7 +117,6 @@ CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -147,7 +146,6 @@ CONFIG_ATM_MPOA=m
CONFIG_ATM_BR2684=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
CONFIG_LLC2=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m

View file

@ -200,7 +200,6 @@ CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -234,7 +233,6 @@ CONFIG_ATM_BR2684=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_DECNET=m
CONFIG_LLC2=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m

View file

@ -198,7 +198,6 @@ CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -232,7 +231,6 @@ CONFIG_ATM_BR2684=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_DECNET=m
CONFIG_LLC2=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m

View file

@ -116,7 +116,6 @@ CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -137,7 +136,6 @@ CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE=m
CONFIG_DECNET=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m

View file

@ -51,7 +51,7 @@ char *fw_getenv(char *envname)
{
char *result = NULL;
if (_fw_envp != NULL) {
if (_fw_envp != NULL && fw_envp(0) != NULL) {
/*
* Return a pointer to the given environment variable.
* YAMON uses "name", "value" pairs, while U-Boot uses

View file

@ -190,10 +190,6 @@ static unsigned long __init init_initrd(void)
pr_err("initrd start must be page aligned\n");
goto disable;
}
if (initrd_start < PAGE_OFFSET) {
pr_err("initrd start < PAGE_OFFSET\n");
goto disable;
}
/*
* Sanitize initrd addresses. For example firmware
@ -206,6 +202,11 @@ static unsigned long __init init_initrd(void)
initrd_end = (unsigned long)__va(end);
initrd_start = (unsigned long)__va(__pa(initrd_start));
if (initrd_start < PAGE_OFFSET) {
pr_err("initrd start < PAGE_OFFSET\n");
goto disable;
}
ROOT_DEV = Root_RAM0;
return PFN_UP(end);
disable:

View file

@ -80,7 +80,7 @@ static void dump_tlb(int first, int last)
unsigned int pagemask, guestctl1 = 0, c0, c1, i;
unsigned long asidmask = cpu_asid_mask(&current_cpu_data);
int asidwidth = DIV_ROUND_UP(ilog2(asidmask) + 1, 4);
unsigned long uninitialized_var(s_mmid);
unsigned long s_mmid;
#ifdef CONFIG_32BIT
bool xpa = cpu_has_xpa && (read_c0_pagegrain() & PG_ELPA);
int pwidth = xpa ? 11 : 8;

View file

@ -84,7 +84,7 @@ void setup_zero_pages(void)
static void *__kmap_pgprot(struct page *page, unsigned long addr, pgprot_t prot)
{
enum fixed_addresses idx;
unsigned int uninitialized_var(old_mmid);
unsigned int old_mmid;
unsigned long vaddr, flags, entrylo;
unsigned long old_ctx;
pte_t pte;

View file

@ -120,7 +120,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
if (size <= (current_cpu_data.tlbsizeftlbsets ?
current_cpu_data.tlbsize / 8 :
current_cpu_data.tlbsize / 2)) {
unsigned long old_entryhi, uninitialized_var(old_mmid);
unsigned long old_entryhi, old_mmid;
int newpid = cpu_asid(cpu, mm);
old_entryhi = read_c0_entryhi();
@ -214,7 +214,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
int cpu = smp_processor_id();
if (cpu_context(cpu, vma->vm_mm) != 0) {
unsigned long uninitialized_var(old_mmid);
unsigned long old_mmid;
unsigned long flags, old_entryhi;
int idx;
@ -381,7 +381,7 @@ void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
#ifdef CONFIG_XPA
panic("Broken for XPA kernels");
#else
unsigned int uninitialized_var(old_mmid);
unsigned int old_mmid;
unsigned long flags;
unsigned long wired;
unsigned long old_pagemask;

View file

@ -97,7 +97,7 @@
rx-fifo-depth = <8192>;
tx-fifo-depth = <8192>;
address-bits = <48>;
max-frame-size = <1518>;
max-frame-size = <1500>;
local-mac-address = [00 00 00 00 00 00];
altr,has-supplementary-unicast;
altr,enable-sup-addr = <1>;

View file

@ -106,7 +106,7 @@
interrupt-names = "rx_irq", "tx_irq";
rx-fifo-depth = <8192>;
tx-fifo-depth = <8192>;
max-frame-size = <1518>;
max-frame-size = <1500>;
local-mac-address = [ 00 00 00 00 00 00 ];
phy-mode = "rgmii-id";
phy-handle = <&phy0>;

View file

@ -173,7 +173,6 @@ handler: ;\
l.sw PT_GPR28(r1),r28 ;\
l.sw PT_GPR29(r1),r29 ;\
/* r30 already save */ ;\
/* l.sw PT_GPR30(r1),r30*/ ;\
l.sw PT_GPR31(r1),r31 ;\
TRACE_IRQS_OFF_ENTRY ;\
/* Store -1 in orig_gpr11 for non-syscall exceptions */ ;\
@ -211,9 +210,8 @@ handler: ;\
l.sw PT_GPR27(r1),r27 ;\
l.sw PT_GPR28(r1),r28 ;\
l.sw PT_GPR29(r1),r29 ;\
/* r31 already saved */ ;\
l.sw PT_GPR30(r1),r30 ;\
/* l.sw PT_GPR31(r1),r31 */ ;\
/* r30 already saved */ ;\
l.sw PT_GPR31(r1),r31 ;\
/* Store -1 in orig_gpr11 for non-syscall exceptions */ ;\
l.addi r30,r0,-1 ;\
l.sw PT_ORIG_GPR11(r1),r30 ;\

View file

@ -57,6 +57,11 @@ extern void flush_dcache_page(struct page *page);
#define flush_dcache_mmap_lock(mapping) xa_lock_irq(&mapping->i_pages)
#define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&mapping->i_pages)
#define flush_dcache_mmap_lock_irqsave(mapping, flags) \
xa_lock_irqsave(&mapping->i_pages, flags)
#define flush_dcache_mmap_unlock_irqrestore(mapping, flags) \
xa_unlock_irqrestore(&mapping->i_pages, flags)
#define flush_icache_page(vma,page) do { \
flush_kernel_dcache_page(page); \

View file

@ -328,6 +328,7 @@ void flush_dcache_page(struct page *page)
struct vm_area_struct *mpnt;
unsigned long offset;
unsigned long addr, old_addr = 0;
unsigned long flags;
pgoff_t pgoff;
if (mapping && !mapping_mapped(mapping)) {
@ -347,7 +348,7 @@ void flush_dcache_page(struct page *page)
* declared as MAP_PRIVATE or MAP_SHARED), so we only need
* to flush one address here for them all to become coherent */
flush_dcache_mmap_lock(mapping);
flush_dcache_mmap_lock_irqsave(mapping, flags);
vma_interval_tree_foreach(mpnt, &mapping->i_mmap, pgoff, pgoff) {
offset = (pgoff - mpnt->vm_pgoff) << PAGE_SHIFT;
addr = mpnt->vm_start + offset;
@ -370,7 +371,7 @@ void flush_dcache_page(struct page *page)
old_addr = addr;
}
}
flush_dcache_mmap_unlock(mapping);
flush_dcache_mmap_unlock_irqrestore(mapping, flags);
}
EXPORT_SYMBOL(flush_dcache_page);

View file

@ -442,13 +442,29 @@ void arch_dma_free(struct device *dev, size_t size, void *vaddr,
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
/*
* fdc: The data cache line is written back to memory, if and only if
* it is dirty, and then invalidated from the data cache.
*/
flush_kernel_dcache_range((unsigned long)phys_to_virt(paddr), size);
}
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
flush_kernel_dcache_range((unsigned long)phys_to_virt(paddr), size);
unsigned long addr = (unsigned long) phys_to_virt(paddr);
switch (dir) {
case DMA_TO_DEVICE:
case DMA_BIDIRECTIONAL:
flush_kernel_dcache_range(addr, size);
return;
case DMA_FROM_DEVICE:
purge_kernel_dcache_range_asm(addr, addr + size);
return;
default:
BUG();
}
}
void arch_dma_cache_sync(struct device *dev, void *vaddr, size_t size,

View file

@ -124,13 +124,18 @@ void machine_power_off(void)
/* It seems we have no way to power the system off via
* software. The user has to press the button himself. */
printk(KERN_EMERG "System shut down completed.\n"
"Please power this system off now.");
printk("Power off or press RETURN to reboot.\n");
/* prevent soft lockup/stalled CPU messages for endless loop. */
rcu_sysrq_start();
lockup_detector_soft_poweroff();
for (;;);
while (1) {
/* reboot if user presses RETURN key */
if (pdc_iodc_getc() == 13) {
printk("Rebooting...\n");
machine_restart(NULL);
}
}
}
void (*pm_power_off)(void);

View file

@ -248,9 +248,6 @@ ENTRY_CFI(real64_call_asm)
/* save fn */
copy %arg2, %r31
/* set up the new ap */
ldo 64(%arg1), %r29
/* load up the arg registers from the saved arg area */
/* 32-bit calling convention passes first 4 args in registers */
ldd 0*REG_SZ(%arg1), %arg0 /* note overwriting arg0 */
@ -262,7 +259,9 @@ ENTRY_CFI(real64_call_asm)
ldd 7*REG_SZ(%arg1), %r19
ldd 1*REG_SZ(%arg1), %arg1 /* do this one last! */
/* set up real-mode stack and real-mode ap */
tophys_r1 %sp
ldo -16(%sp), %r29 /* Reference param save area */
b,l rfi_virt2real,%r2
nop

View file

@ -305,8 +305,8 @@ static void handle_break(struct pt_regs *regs)
#endif
#ifdef CONFIG_KGDB
if (unlikely(iir == PARISC_KGDB_COMPILED_BREAK_INSN ||
iir == PARISC_KGDB_BREAK_INSN)) {
if (unlikely((iir == PARISC_KGDB_COMPILED_BREAK_INSN ||
iir == PARISC_KGDB_BREAK_INSN)) && !user_mode(regs)) {
kgdb_handle_exception(9, SIGTRAP, 0, regs);
return;
}

View file

@ -253,8 +253,6 @@ CONFIG_ATM_LANE=m
CONFIG_ATM_BR2684=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
CONFIG_DECNET_ROUTER=y
CONFIG_IPX=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m

View file

@ -398,7 +398,7 @@ static char *__fetch_rtas_last_error(char *altbuf)
buf = kmalloc(RTAS_ERROR_LOG_MAX, GFP_ATOMIC);
}
if (buf)
memcpy(buf, rtas_err_buf, RTAS_ERROR_LOG_MAX);
memmove(buf, rtas_err_buf, RTAS_ERROR_LOG_MAX);
}
return buf;

View file

@ -31,7 +31,7 @@ unsigned long __kvmhv_copy_tofrom_guest_radix(int lpid, int pid,
gva_t eaddr, void *to, void *from,
unsigned long n)
{
int uninitialized_var(old_pid), old_lpid;
int old_pid, old_lpid;
unsigned long quadrant, ret = n;
bool is_load = !!to;

View file

@ -1018,8 +1018,8 @@ void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep,
pte_t entry, unsigned long address, int psize)
{
struct mm_struct *mm = vma->vm_mm;
unsigned long set = pte_val(entry) & (_PAGE_DIRTY | _PAGE_ACCESSED |
_PAGE_RW | _PAGE_EXEC);
unsigned long set = pte_val(entry) & (_PAGE_DIRTY | _PAGE_SOFT_DIRTY |
_PAGE_ACCESSED | _PAGE_RW | _PAGE_EXEC);
unsigned long change = pte_val(entry) ^ pte_val(*ptep);
/*

View file

@ -984,7 +984,7 @@ static void mpc5121_clk_provide_migration_support(void)
#define NODE_PREP do { \
of_address_to_resource(np, 0, &res); \
snprintf(devname, sizeof(devname), "%08x.%s", res.start, np->name); \
snprintf(devname, sizeof(devname), "%pa.%s", &res.start, np->name); \
} while (0)
#define NODE_CHK(clkname, clkitem, regnode, regflag) do { \

View file

@ -340,7 +340,7 @@ static int mpc52xx_irqhost_map(struct irq_domain *h, unsigned int virq,
{
int l1irq;
int l2irq;
struct irq_chip *uninitialized_var(irqchip);
struct irq_chip *irqchip;
void *hndlr;
int type;
u32 reg;

View file

@ -144,7 +144,7 @@ static struct irq_domain * __init flipper_pic_init(struct device_node *np)
}
io_base = ioremap(res.start, resource_size(&res));
pr_info("controller at 0x%08x mapped to 0x%p\n", res.start, io_base);
pr_info("controller at 0x%pa mapped to 0x%p\n", &res.start, io_base);
__flipper_quiesce(io_base);

View file

@ -173,7 +173,7 @@ static struct irq_domain *hlwd_pic_init(struct device_node *np)
return NULL;
}
pr_info("controller at 0x%08x mapped to 0x%p\n", res.start, io_base);
pr_info("controller at 0x%pa mapped to 0x%p\n", &res.start, io_base);
__hlwd_quiesce(io_base);

View file

@ -89,8 +89,8 @@ static void __iomem *wii_ioremap_hw_regs(char *name, char *compatible)
hw_regs = ioremap(res.start, resource_size(&res));
if (hw_regs) {
pr_info("%s at 0x%08x mapped to 0x%p\n", name,
res.start, hw_regs);
pr_info("%s at 0x%pa mapped to 0x%p\n", name,
&res.start, hw_regs);
}
out_put:

View file

@ -4,6 +4,11 @@ KASAN_SANITIZE := n
targets += trampoline.o purgatory.ro kexec-purgatory.c
# When profile-guided optimization is enabled, llvm emits two different
# overlapping text sections, which is not supported by kexec. Remove profile
# optimization flags.
KBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%,$(KBUILD_CFLAGS))
LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined
$(obj)/purgatory.ro: $(obj)/trampoline.o FORCE

View file

@ -216,9 +216,8 @@ int __init tsi108_setup_pci(struct device_node *dev, u32 cfg_phys, int primary)
(hose)->ops = &tsi108_direct_pci_ops;
printk(KERN_INFO "Found tsi108 PCI host bridge at 0x%08x. "
"Firmware bus number: %d->%d\n",
rsrc.start, hose->first_busno, hose->last_busno);
pr_info("Found tsi108 PCI host bridge at 0x%pa. Firmware bus number: %d->%d\n",
&rsrc.start, hose->first_busno, hose->last_busno);
/* Interpret the "ranges" property */
/* This also maps the I/O region and sets isa_io/mem_base */

View file

@ -145,7 +145,7 @@ static int pcpu_sigp_retry(struct pcpu *pcpu, u8 order, u32 parm)
static inline int pcpu_stopped(struct pcpu *pcpu)
{
u32 uninitialized_var(status);
u32 status;
if (__pcpu_sigp(pcpu->address, SIGP_SENSE,
0, &status) != SIGP_CC_STATUS_STORED)

View file

@ -380,7 +380,7 @@ static int __init sq_api_init(void)
if (unlikely(!sq_cache))
return ret;
sq_bitmap = kzalloc(size, GFP_KERNEL);
sq_bitmap = kcalloc(size, sizeof(long), GFP_KERNEL);
if (unlikely(!sq_bitmap))
goto out;

View file

@ -64,7 +64,7 @@ ENTRY(_stext)
ldc r0, r6_bank
#endif
#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
mov r4, r12 ! Store device tree blob pointer in r12
#endif
@ -315,7 +315,7 @@ ENTRY(_stext)
10:
#endif
#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
mov.l 8f, r0 ! Make flat device tree available early.
jsr @r0
mov r12, r4
@ -346,7 +346,7 @@ ENTRY(stack_start)
5: .long start_kernel
6: .long cpu_init
7: .long init_thread_union
#if defined(CONFIG_OF_FLATTREE)
#if defined(CONFIG_OF_EARLY_FLATTREE)
8: .long sh_fdt_init
#endif

View file

@ -49,7 +49,7 @@ static int __init nmi_debug_setup(char *str)
register_die_notifier(&nmi_debug_nb);
if (*str != '=')
return 0;
return 1;
for (p = str + 1; *p; p = sep + 1) {
sep = strchr(p, ',');
@ -70,6 +70,6 @@ static int __init nmi_debug_setup(char *str)
break;
}
return 0;
return 1;
}
__setup("nmi_debug", nmi_debug_setup);

View file

@ -243,7 +243,7 @@ void __init __weak plat_early_device_setup(void)
{
}
#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
void __ref sh_fdt_init(phys_addr_t dt_phys)
{
static int done = 0;
@ -330,7 +330,7 @@ void __init setup_arch(char **cmdline_p)
/* Let earlyprintk output early console messages */
early_platform_driver_probe("earlyprintk", 1, 1);
#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
#ifdef CONFIG_USE_BUILTIN_DTB
unflatten_and_copy_device_tree();
#else

View file

@ -67,7 +67,3 @@
} while (0)
#define abort() return 0
#define __BYTE_ORDER __LITTLE_ENDIAN

View file

@ -110,66 +110,78 @@ typedef unsigned int addr_t;
static inline u8 rdfs8(addr_t addr)
{
u8 *ptr = (u8 *)absolute_pointer(addr);
u8 v;
asm volatile("movb %%fs:%1,%0" : "=q" (v) : "m" (*(u8 *)addr));
asm volatile("movb %%fs:%1,%0" : "=q" (v) : "m" (*ptr));
return v;
}
static inline u16 rdfs16(addr_t addr)
{
u16 *ptr = (u16 *)absolute_pointer(addr);
u16 v;
asm volatile("movw %%fs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr));
asm volatile("movw %%fs:%1,%0" : "=r" (v) : "m" (*ptr));
return v;
}
static inline u32 rdfs32(addr_t addr)
{
u32 *ptr = (u32 *)absolute_pointer(addr);
u32 v;
asm volatile("movl %%fs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr));
asm volatile("movl %%fs:%1,%0" : "=r" (v) : "m" (*ptr));
return v;
}
static inline void wrfs8(u8 v, addr_t addr)
{
asm volatile("movb %1,%%fs:%0" : "+m" (*(u8 *)addr) : "qi" (v));
u8 *ptr = (u8 *)absolute_pointer(addr);
asm volatile("movb %1,%%fs:%0" : "+m" (*ptr) : "qi" (v));
}
static inline void wrfs16(u16 v, addr_t addr)
{
asm volatile("movw %1,%%fs:%0" : "+m" (*(u16 *)addr) : "ri" (v));
u16 *ptr = (u16 *)absolute_pointer(addr);
asm volatile("movw %1,%%fs:%0" : "+m" (*ptr) : "ri" (v));
}
static inline void wrfs32(u32 v, addr_t addr)
{
asm volatile("movl %1,%%fs:%0" : "+m" (*(u32 *)addr) : "ri" (v));
u32 *ptr = (u32 *)absolute_pointer(addr);
asm volatile("movl %1,%%fs:%0" : "+m" (*ptr) : "ri" (v));
}
static inline u8 rdgs8(addr_t addr)
{
u8 *ptr = (u8 *)absolute_pointer(addr);
u8 v;
asm volatile("movb %%gs:%1,%0" : "=q" (v) : "m" (*(u8 *)addr));
asm volatile("movb %%gs:%1,%0" : "=q" (v) : "m" (*ptr));
return v;
}
static inline u16 rdgs16(addr_t addr)
{
u16 *ptr = (u16 *)absolute_pointer(addr);
u16 v;
asm volatile("movw %%gs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr));
asm volatile("movw %%gs:%1,%0" : "=r" (v) : "m" (*ptr));
return v;
}
static inline u32 rdgs32(addr_t addr)
{
u32 *ptr = (u32 *)absolute_pointer(addr);
u32 v;
asm volatile("movl %%gs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr));
asm volatile("movl %%gs:%1,%0" : "=r" (v) : "m" (*ptr));
return v;
}
static inline void wrgs8(u8 v, addr_t addr)
{
asm volatile("movb %1,%%gs:%0" : "+m" (*(u8 *)addr) : "qi" (v));
u8 *ptr = (u8 *)absolute_pointer(addr);
asm volatile("movb %1,%%gs:%0" : "+m" (*ptr) : "qi" (v));
}
static inline void wrgs16(u16 v, addr_t addr)
{
asm volatile("movw %1,%%gs:%0" : "+m" (*(u16 *)addr) : "ri" (v));
u16 *ptr = (u16 *)absolute_pointer(addr);
asm volatile("movw %1,%%gs:%0" : "+m" (*ptr) : "ri" (v));
}
static inline void wrgs32(u32 v, addr_t addr)
{
asm volatile("movl %1,%%gs:%0" : "+m" (*(u32 *)addr) : "ri" (v));
u32 *ptr = (u32 *)absolute_pointer(addr);
asm volatile("movl %1,%%gs:%0" : "+m" (*ptr) : "ri" (v));
}
/* Note: these only return true/false, not a signed return value! */

View file

@ -33,7 +33,7 @@ static void copy_boot_params(void)
u16 cl_offset;
};
const struct old_cmdline * const oldcmd =
(const struct old_cmdline *)OLD_CL_ADDRESS;
absolute_pointer(OLD_CL_ADDRESS);
BUILD_BUG_ON(sizeof(boot_params) != 4096);
memcpy(&boot_params.hdr, &hdr, sizeof(hdr));

View file

@ -96,6 +96,11 @@
#define INTEL_FAM6_LAKEFIELD 0x8A
#define INTEL_FAM6_ALDERLAKE 0x97
#define INTEL_FAM6_ALDERLAKE_L 0x9A
#define INTEL_FAM6_ALDERLAKE_N 0xBE
#define INTEL_FAM6_RAPTORLAKE 0xB7
#define INTEL_FAM6_RAPTORLAKE_P 0xBA
#define INTEL_FAM6_RAPTORLAKE_S 0xBF
/* "Small Core" Processors (Atom) */

View file

@ -563,6 +563,7 @@ struct kvm_vcpu_arch {
u64 ia32_misc_enable_msr;
u64 smbase;
u64 smi_count;
bool at_instruction_boundary;
bool tpr_access_reporting;
u64 ia32_xss;
u64 microcode_version;
@ -981,6 +982,8 @@ struct kvm_vcpu_stat {
u64 irq_injections;
u64 nmi_injections;
u64 req_event;
u64 preemption_reported;
u64 preemption_other;
};
struct x86_instruction_info;

View file

@ -410,10 +410,9 @@ static unsigned int reserve_eilvt_offset(int offset, unsigned int new)
if (vector && !eilvt_entry_is_changeable(vector, new))
/* may not change if vectors are different */
return rsvd;
rsvd = atomic_cmpxchg(&eilvt_offsets[offset], rsvd, new);
} while (rsvd != new);
} while (!atomic_try_cmpxchg(&eilvt_offsets[offset], &rsvd, new));
rsvd &= ~APIC_EILVT_MASKED;
rsvd = new & ~APIC_EILVT_MASKED;
if (rsvd && rsvd != vector)
pr_info("LVT offset %d assigned for vector 0x%02x\n",
offset, rsvd);

View file

@ -2455,17 +2455,21 @@ static int io_apic_get_redir_entries(int ioapic)
unsigned int arch_dynirq_lower_bound(unsigned int from)
{
unsigned int ret;
/*
* dmar_alloc_hwirq() may be called before setup_IO_APIC(), so use
* gsi_top if ioapic_dynirq_base hasn't been initialized yet.
*/
if (!ioapic_initialized)
return gsi_top;
ret = ioapic_dynirq_base ? : gsi_top;
/*
* For DT enabled machines ioapic_dynirq_base is irrelevant and not
* updated. So simply return @from if ioapic_dynirq_base == 0.
* For DT enabled machines ioapic_dynirq_base is irrelevant and
* always 0. gsi_top can be 0 if there is no IO/APIC registered.
* 0 is an invalid interrupt number for dynamic allocations. Return
* @from instead.
*/
return ioapic_dynirq_base ? : from;
return ret ? : from;
}
#ifdef CONFIG_X86_32

View file

@ -97,7 +97,10 @@ static void init_x2apic_ldr(void)
static int x2apic_phys_probe(void)
{
if (x2apic_mode && (x2apic_phys || x2apic_fadt_phys()))
if (!x2apic_mode)
return 0;
if (x2apic_phys || x2apic_fadt_phys())
return 1;
return apic == &apic_x2apic_phys;

View file

@ -79,7 +79,7 @@ int detect_extended_topology_early(struct cpuinfo_x86 *c)
* initial apic id, which also represents 32-bit extended x2apic id.
*/
c->initial_apicid = edx;
smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx);
smp_num_siblings = max_t(int, smp_num_siblings, LEVEL_MAX_SIBLINGS(ebx));
#endif
return 0;
}
@ -107,7 +107,8 @@ int detect_extended_topology(struct cpuinfo_x86 *c)
*/
cpuid_count(leaf, SMT_LEVEL, &eax, &ebx, &ecx, &edx);
c->initial_apicid = edx;
core_level_siblings = smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx);
core_level_siblings = LEVEL_MAX_SIBLINGS(ebx);
smp_num_siblings = max_t(int, smp_num_siblings, LEVEL_MAX_SIBLINGS(ebx));
core_plus_mask_width = ht_mask_width = BITS_SHIFT_NEXT_LEVEL(eax);
die_level_siblings = LEVEL_MAX_SIBLINGS(ebx);
die_plus_mask_width = BITS_SHIFT_NEXT_LEVEL(eax);

View file

@ -171,7 +171,6 @@ void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
printk("%sCall Trace:\n", log_lvl);
unwind_start(&state, task, regs, stack);
stack = stack ? : get_stack_pointer(task, regs);
regs = unwind_get_entry_regs(&state, &partial);
/*
@ -190,9 +189,13 @@ void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
* - hardirq stack
* - entry stack
*/
for ( ; stack; stack = PTR_ALIGN(stack_info.next_sp, sizeof(long))) {
for (stack = stack ?: get_stack_pointer(task, regs);
stack;
stack = stack_info.next_sp) {
const char *stack_name;
stack = PTR_ALIGN(stack, sizeof(long));
if (get_stack_info(stack, task, &stack_info, &visit_mask)) {
/*
* We weren't on a valid stack. It's possible that

View file

@ -95,7 +95,7 @@ static void ich_force_hpet_resume(void)
static void ich_force_enable_hpet(struct pci_dev *dev)
{
u32 val;
u32 uninitialized_var(rcba);
u32 rcba;
int err = 0;
if (hpet_address || force_hpet_address)
@ -185,7 +185,7 @@ static void hpet_print_force_info(void)
static void old_ich_force_hpet_resume(void)
{
u32 val;
u32 uninitialized_var(gen_cntl);
u32 gen_cntl;
if (!force_hpet_address || !cached_dev)
return;
@ -207,7 +207,7 @@ static void old_ich_force_hpet_resume(void)
static void old_ich_force_enable_hpet(struct pci_dev *dev)
{
u32 val;
u32 uninitialized_var(gen_cntl);
u32 gen_cntl;
if (hpet_address || force_hpet_address)
return;
@ -298,7 +298,7 @@ static void vt8237_force_hpet_resume(void)
static void vt8237_force_enable_hpet(struct pci_dev *dev)
{
u32 uninitialized_var(val);
u32 val;
if (hpet_address || force_hpet_address)
return;
@ -429,7 +429,7 @@ static void nvidia_force_hpet_resume(void)
static void nvidia_force_enable_hpet(struct pci_dev *dev)
{
u32 uninitialized_var(val);
u32 val;
if (hpet_address || force_hpet_address)
return;

View file

@ -6246,7 +6246,8 @@ out:
static void svm_handle_exit_irqoff(struct kvm_vcpu *vcpu)
{
if (to_svm(vcpu)->vmcb->control.exit_code == SVM_EXIT_INTR)
vcpu->arch.at_instruction_boundary = true;
}
static void svm_sched_in(struct kvm_vcpu *vcpu, int cpu)

View file

@ -6358,6 +6358,7 @@ static void handle_external_interrupt_irqoff(struct kvm_vcpu *vcpu)
);
kvm_after_interrupt(vcpu);
vcpu->arch.at_instruction_boundary = true;
}
STACK_FRAME_NON_STANDARD(handle_external_interrupt_irqoff);
@ -7266,6 +7267,21 @@ static int vmx_check_intercept(struct kvm_vcpu *vcpu,
/* FIXME: produce nested vmexit and return X86EMUL_INTERCEPTED. */
break;
case x86_intercept_pause:
/*
* PAUSE is a single-byte NOP with a REPE prefix, i.e. collides
* with vanilla NOPs in the emulator. Apply the interception
* check only to actual PAUSE instructions. Don't check
* PAUSE-loop-exiting, software can't expect a given PAUSE to
* exit, i.e. KVM is within its rights to allow L2 to execute
* the PAUSE.
*/
if ((info->rep_prefix != REPE_PREFIX) ||
!nested_cpu_has2(vmcs12, CPU_BASED_PAUSE_EXITING))
return X86EMUL_CONTINUE;
break;
/* TODO: check more intercepts... */
default:
break;

View file

@ -207,6 +207,8 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
{ "nmi_injections", VCPU_STAT(nmi_injections) },
{ "req_event", VCPU_STAT(req_event) },
{ "l1d_flush", VCPU_STAT(l1d_flush) },
{ "preemption_reported", VCPU_STAT(preemption_reported) },
{ "preemption_other", VCPU_STAT(preemption_other) },
{ "mmu_shadow_zapped", VM_STAT(mmu_shadow_zapped) },
{ "mmu_pte_write", VM_STAT(mmu_pte_write) },
{ "mmu_pde_zapped", VM_STAT(mmu_pde_zapped) },
@ -3562,6 +3564,19 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu)
struct kvm_host_map map;
struct kvm_steal_time *st;
/*
* The vCPU can be marked preempted if and only if the VM-Exit was on
* an instruction boundary and will not trigger guest emulation of any
* kind (see vcpu_run). Vendor specific code controls (conservatively)
* when this is true, for example allowing the vCPU to be marked
* preempted if and only if the VM-Exit was due to a host interrupt.
*/
if (!vcpu->arch.at_instruction_boundary) {
vcpu->stat.preemption_other++;
return;
}
vcpu->stat.preemption_reported++;
if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
return;
@ -8446,6 +8461,13 @@ static int vcpu_run(struct kvm_vcpu *vcpu)
vcpu->arch.l1tf_flush_l1d = true;
for (;;) {
/*
* If another guest vCPU requests a PV TLB flush in the middle
* of instruction emulation, the rest of the emulation could
* use a stale page translation. Assume that any code after
* this point can start executing an instruction.
*/
vcpu->arch.at_instruction_boundary = false;
if (kvm_vcpu_running(vcpu)) {
r = vcpu_enter_guest(vcpu);
} else {

View file

@ -9,6 +9,7 @@
#include <linux/sched/task.h>
#include <asm/set_memory.h>
#include <asm/cpu_device_id.h>
#include <asm/e820/api.h>
#include <asm/init.h>
#include <asm/page.h>
@ -208,6 +209,24 @@ static void __init probe_page_size_mask(void)
}
}
#define INTEL_MATCH(_model) { .vendor = X86_VENDOR_INTEL, \
.family = 6, \
.model = _model, \
}
/*
* INVLPG may not properly flush Global entries
* on these CPUs when PCIDs are enabled.
*/
static const struct x86_cpu_id invlpg_miss_ids[] = {
INTEL_MATCH(INTEL_FAM6_ALDERLAKE ),
INTEL_MATCH(INTEL_FAM6_ALDERLAKE_L ),
INTEL_MATCH(INTEL_FAM6_ALDERLAKE_N ),
INTEL_MATCH(INTEL_FAM6_RAPTORLAKE ),
INTEL_MATCH(INTEL_FAM6_RAPTORLAKE_P),
INTEL_MATCH(INTEL_FAM6_RAPTORLAKE_S),
{}
};
static void setup_pcid(void)
{
if (!IS_ENABLED(CONFIG_X86_64))
@ -216,6 +235,12 @@ static void setup_pcid(void)
if (!boot_cpu_has(X86_FEATURE_PCID))
return;
if (x86_match_cpu(invlpg_miss_ids)) {
pr_info("Incomplete global flushes, disabling PCID");
setup_clear_cpu_cap(X86_FEATURE_PCID);
return;
}
if (boot_cpu_has(X86_FEATURE_PGE)) {
/*
* This can't be cr4_set_bits_and_update_boot() -- the

View file

@ -14,6 +14,11 @@ $(obj)/sha256.o: $(srctree)/lib/crypto/sha256.c FORCE
CFLAGS_sha256.o := -D__DISABLE_EXPORTS
# When profile-guided optimization is enabled, llvm emits two different
# overlapping text sections, which is not supported by kexec. Remove profile
# optimization flags.
KBUILD_CFLAGS := $(filter-out -fprofile-sample-use=% -fprofile-use=%,$(KBUILD_CFLAGS))
LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined -nostdlib -z nodefaultlib
targets += purgatory.ro

View file

@ -248,7 +248,9 @@ enum {
/* 1/64k is granular enough and can easily be handled w/ u32 */
HWEIGHT_WHOLE = 1 << 16,
};
enum {
/*
* As vtime is used to calculate the cost of each IO, it needs to
* be fairly high precision. For example, it should be able to
@ -271,6 +273,11 @@ enum {
VRATE_MIN = VTIME_PER_USEC * VRATE_MIN_PPM / MILLION,
VRATE_CLAMP_ADJ_PCT = 4,
/* switch iff the conditions are met for longer than this */
AUTOP_CYCLE_NSEC = 10LLU * NSEC_PER_SEC,
};
enum {
/* if IOs end up waiting for requests, issue less */
RQ_WAIT_BUSY_PCT = 5,
@ -288,9 +295,6 @@ enum {
SURPLUS_SCALE_ABS = HWEIGHT_WHOLE / 50, /* + 2% */
SURPLUS_MIN_ADJ_DELTA = HWEIGHT_WHOLE / 33, /* 3% */
/* switch iff the conditions are met for longer than this */
AUTOP_CYCLE_NSEC = 10LLU * NSEC_PER_SEC,
/*
* Count IO size in 4k pages. The 12bit shift helps keeping
* size-proportional components of cost calculation in closer

View file

@ -479,7 +479,7 @@ static int __blk_bios_map_sg(struct request_queue *q, struct bio *bio,
struct scatterlist *sglist,
struct scatterlist **sg)
{
struct bio_vec uninitialized_var(bvec), bvprv = { NULL };
struct bio_vec bvec, bvprv = { NULL };
struct bvec_iter iter;
int nsegs = 0;
bool new_bio = false;

View file

@ -255,9 +255,10 @@ int public_key_verify_signature(const struct public_key *pkey,
struct crypto_wait cwait;
struct crypto_akcipher *tfm;
struct akcipher_request *req;
struct scatterlist src_sg[2];
struct scatterlist src_sg;
char alg_name[CRYPTO_MAX_ALG_NAME];
char *key, *ptr;
char *buf, *ptr;
size_t buf_len;
int ret;
pr_devel("==>%s()\n", __func__);
@ -281,28 +282,31 @@ int public_key_verify_signature(const struct public_key *pkey,
if (!req)
goto error_free_tfm;
key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
GFP_KERNEL);
if (!key)
buf_len = max_t(size_t, pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
sig->s_size + sig->digest_size);
buf = kmalloc(buf_len, GFP_KERNEL);
if (!buf)
goto error_free_req;
memcpy(key, pkey->key, pkey->keylen);
ptr = key + pkey->keylen;
memcpy(buf, pkey->key, pkey->keylen);
ptr = buf + pkey->keylen;
ptr = pkey_pack_u32(ptr, pkey->algo);
ptr = pkey_pack_u32(ptr, pkey->paramlen);
memcpy(ptr, pkey->params, pkey->paramlen);
if (pkey->key_is_private)
ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
ret = crypto_akcipher_set_priv_key(tfm, buf, pkey->keylen);
else
ret = crypto_akcipher_set_pub_key(tfm, key, pkey->keylen);
ret = crypto_akcipher_set_pub_key(tfm, buf, pkey->keylen);
if (ret)
goto error_free_key;
goto error_free_buf;
sg_init_table(src_sg, 2);
sg_set_buf(&src_sg[0], sig->s, sig->s_size);
sg_set_buf(&src_sg[1], sig->digest, sig->digest_size);
akcipher_request_set_crypt(req, src_sg, NULL, sig->s_size,
memcpy(buf, sig->s, sig->s_size);
memcpy(buf + sig->s_size, sig->digest, sig->digest_size);
sg_init_one(&src_sg, buf, sig->s_size + sig->digest_size);
akcipher_request_set_crypt(req, &src_sg, NULL, sig->s_size,
sig->digest_size);
crypto_init_wait(&cwait);
akcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG |
@ -310,8 +314,8 @@ int public_key_verify_signature(const struct public_key *pkey,
crypto_req_done, &cwait);
ret = crypto_wait_req(crypto_akcipher_verify(req), &cwait);
error_free_key:
kfree(key);
error_free_buf:
kfree(buf);
error_free_req:
akcipher_request_free(req);
error_free_tfm:

Some files were not shown because too many files have changed in this diff Show more