Merge tag 'android12-5.10.185_r00' into android12-5.10
This is the merge of the upstream LTS release of 5.10.185 into the android12-5.10 branch. It contains the following commits: *c4f52f22c7
Revert "net: Remove DECnet leftovers from flow.h." *c6ac900e26
Merge 5.10.185 into android12-5.10-lts |\ | *ef0d5feb32
Linux 5.10.185 | *ed2bf5cee6
um: Fix build w/o CONFIG_PM_SLEEP | *f73ec12dc7
drm/i915/gen11+: Only load DRAM information from pcode | *27458487c8
drm/i915/dg1: Wait for pcode/uncore handshake at startup | *2d1c19597d
media: dvb-core: Fix use-after-free due to race at dvb_register_device() | *5c61c3945a
media: dvbdev: fix error logic at dvb_register_device() | *a1b26dac8b
media: dvbdev: Fix memleak in dvb_register_device | *a13dee47fa
nilfs2: reject devices with insufficient block count | *c374552b54
mm/memory_hotplug: extend offline_and_remove_memory() to handle more than one memory block | *e6dc6a9d0a
mmc: block: ensure error propagation for non-blk | *7ce0e8b287
batman-adv: Switch to kstrtox.h for kstrtou64 | *e6104284c4
neighbour: delete neigh_lookup_nodev as not used | *bf82668eb9
net: Remove DECnet leftovers from flow.h. | *7d07fd03f5
net: Remove unused inline function dst_hold_and_use() | *53076071fb
neighbour: Remove unused inline function neigh_key_eq16() | *7230a9e599
rcu/kvfree: Avoid freeing new kfree_rcu() memory after old grace period | *a261589621
cgroup: always put cset in cgroup_css_set_put_fork | *4c10843863
afs: Fix vlserver probe RTT handling | *49b6607ded
selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET | *08899e8d5a
net: tipc: resize nlattr array to correct size | *5fd696b404
net: lapbether: only support ethernet devices | *6ee3728ae8
net/sched: cls_api: Fix lockup on flushing explicitly created chain | *efed5b50f3
ext4: drop the call to ext4_error() from ext4_get_group_info() | *6ab91d1adb
drm/nouveau: add nv_encoder pointer check for NULL | *5d43bb9b3e
drm/nouveau/dp: check for NULL nv_connector->native_mode | *edb970e03d
drm/nouveau: don't detect DSM for non-NVIDIA device | *8c3446ab59
igb: fix nvm.ops.read() error handling | *221281d60c
sctp: fix an error code in sctp_sf_eat_auth() | *5c47ed7f25
ipvlan: fix bound dev checking for IPv6 l3s mode | *3c97f2c9ec
IB/isert: Fix incorrect release of isert connection | *da6ae4aab5
IB/isert: Fix possible list corruption in CMA handler | *2b6f8817ca
IB/isert: Fix dead lock in ib_isert | *2f9d26345c
IB/uverbs: Fix to consider event queue closing also upon non-blocking mode | *6cccdbc9f0
RDMA/cma: Always set static rate to 0 for RoCE | *f49abbb274
RDMA/mlx5: Initiate dropless RQ for RAW Ethernet functions | *aa277d5cd4
octeontx2-af: fixed resource availability check | *0fb48a2a6a
iavf: remove mask from iavf_irq_enable_queues() | *079a9591ee
RDMA/rxe: Fix the use-before-initialization error of resp_pkts | *089a0e831f
RDMA/rxe: Removed unused name from rxe_task struct | *6205c0d9ff
RDMA/rxe: Remove the unused variable obj | *af6eaa5798
net/sched: cls_u32: Fix reference counter leak leading to overflow | *5852d17aaa
ping6: Fix send to link-local addresses with VRF. | *9e666a77f0
net: enetc: correct the indexes of highest and 2nd highest TCs | *1200af82cf
netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM | *af42c4fd82
spi: fsl-dspi: avoid SCK glitches with continuous transfers | *cb6ec51ddd
RDMA/rtrs: Fix the last iu->buf leak in err path | *26293251ab
usb: dwc3: gadget: Reset num TRBs before giving back the request | *f4bc416942
serial: lantiq: add missing interrupt ack | *0b6e65016c
USB: serial: option: add Quectel EM061KGL series | *1c004b379b
Remove DECnet support from kernel | *e9d384983f
ALSA: hda/realtek: Add a quirk for Compaq N14JP6 | *1148d4ca30
net: usb: qmi_wwan: add support for Compal RXM-G1 | *d7acfd5225
RDMA/uverbs: Restrict usage of privileged QKEYs | *96e14c91c5
nouveau: fix client work fence deletion race | *f1f7117b22
powerpc/purgatory: remove PGO flags | *26c80741ce
x86/purgatory: remove PGO flags | *f368aed482
kexec: support purgatories with .text.hot sections | *7e78b9142f
nilfs2: fix possible out-of-bounds segment allocation in resize ioctl | *902fcec052
nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key() | *d59293f082
nios2: dts: Fix tse_mac "max-frame-size" property | *2847d9eed4
ocfs2: check new file size on fallocate call | *e73b135f54
ocfs2: fix use-after-free when unmounting read-only filesystem | *370f5d98ff
epoll: ep_autoremove_wake_function should use list_del_init_careful | *4716c73b18
io_uring: hold uring mutex around poll removal | *93a68acc49
irqchip/gic: Correctly validate OF quirk descriptors | *2a2641a842
drm:amd:amdgpu: Fix missing buffer object unlock in failure path | *7c0b17679b
xen/blkfront: Only check REQ_FUA for writes | *8e45fb70f4
ASoC: dwc: move DMA init to snd_soc_dai_driver probe() | *d47b5a6d23
mips: Move initrd_start check after initrd address sanitisation. | *619672bf2d
MIPS: Alchemy: fix dbdma2 | *0ca73b45b7
parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory() | *3f7625e086
parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu() | *73102fdb5b
ASoC: soc-pcm: test if a BE can be prepared | *3bc883132d
btrfs: handle memory allocation failure in btrfs_csum_one_bio | *142fbad314
btrfs: scrub: try harder to mark RAID56 block groups read-only | *35d32d8415
power: supply: Fix logic checking if system is running from battery | *8b7a2207ee
irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues | *dbf6109972
regulator: Fix error checking for debugfs_create_dir | *37bcc48e7d
platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0 | *88d1c1365f
power: supply: Ratelimit no data debug output | *6be7a4bef9
tools: gpio: fix debounce_period_us output of lsgpio | *39eb9eb9ea
ARM: dts: vexpress: add missing cache properties | *b2856c3cd3
power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule() | *ce2b5f24ca
power: supply: sc27xx: Fix external_power_changed race | *9e9e150fa8
power: supply: ab8500: Fix external_power_changed race | *539c387f0b
test_firmware: fix a memory leak with reqs buffer | *af36f35074
test_firmware: prevent race conditions by a correct implementation of locking | *682ca60251
test_firmware: Use kstrtobool() instead of strtobool() | *6e2e551e39
kernel.h: split out kstrtox() and simple_strtox() to a separate header | *c2def5578b
lib: cleanup kstrto*() usage * |2f2122a869
Revert "neighbour: fix unaligned access to pneigh_entry" * |b7321283a9
Merge 5.10.184 into android12-5.10-lts |\| | *a1f0beb13d
Linux 5.10.184 | *7f896130ef
Revert "staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE" | *b60e862e13
btrfs: unset reloc control if transaction commit fails in prepare_to_relocate() | *6f371623f3
btrfs: check return value of btrfs_commit_transaction in relocation | *ea0d413094
drm/atomic: Don't pollute crtc_state->mode_blob with error pointers | *1659268d1a
MIPS: locking/atomic: Fix atomic{_64,}_sub_if_positive | *0e98a97f77
xfs: verify buffer contents when we skip log replay | *58e8cf94de
tcp: fix tcp_min_tso_segs sysctl | *1b4b335096
ext4: only check dquot_initialize_needed() when debugging | *fd6cb51719
Revert "ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled" | *cfa91c0573
vhost: support PACKED when setting-getting vring_base | *461c88caa8
riscv: fix kprobe __user string arg print fault issue | *c6b9050874
eeprom: at24: also select REGMAP | *10e376a7c3
i2c: sprd: Delete i2c adapter in .remove's error path | *c4aeef5602
ASoC: codecs: wsa881x: do not set can_multi_write flag | *b6f309e9d2
staging: vc04_services: fix gcc-13 build warning | *0d3c75a693
usb: usbfs: Use consistent mmap functions | *143f405721
usb: usbfs: Enforce page requirements for mmap | *bcd474d183
pinctrl: meson-axg: add missing GPIOA_18 gpio group | *1981d37b1d
rbd: get snapshot context after exclusive lock is ensured to be held | *76ae4a7bc9
rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting | *841d3b5a84
tee: amdtee: Add return_origin to 'struct tee_cmd_load_ta' | *a94024991d
Bluetooth: hci_qca: fix debugfs registration | *2270e32bd1
Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk | *76b40319a1
s390/dasd: Use correct lock while counting channel queue length | *e715c86e92
ceph: fix use-after-free bug for inodes when flushing capsnaps | *6714873158
can: j1939: avoid possible use-after-free when j1939_can_rx_register fails | *cc834f4d97
can: j1939: change j1939_netdev_lock type to mutex | *0268005076
can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in J1939 Socket | *0038055135
drm/amdgpu: fix xclk freq on CHIP_STONEY | *ef95f987be
ALSA: hda/realtek: Add Lenovo P3 Tower platform | *95520b3fba
ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01 | *ca26d00828
Input: psmouse - fix OOB access in Elantech protocol | *86efc409f2
Input: xpad - delete a Razer DeathAdder mouse VID/PID entry | *9ece26ff08
batman-adv: Broken sync while rescheduling delayed work | *3f6dfff5fe
bnxt_en: Implement .set_port / .unset_port UDP tunnel callbacks | *deead0d872
bnxt_en: Query default VLAN before VNIC setup on a VF | *84dbd27ad5
bnxt_en: Don't issue AP reset during ethtool's reset operation | *dedd47977a
lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release() | *27b8d6931f
bpf: Add extra path pointer check to d_path helper | *36d07046c2
net: sched: fix possible refcount leak in tc_chain_tmplt_add() | *54acac57fe
net: sched: move rtm_tca_policy declaration to include file | *dad7417db7
rfs: annotate lockless accesses to RFS sock flow table | *c62ca9d037
rfs: annotate lockless accesses to sk->sk_rxhash | *86e3981ff1
ipv6: rpl: Fix Route of Death. | *b4be099c5f
netfilter: ipset: Add schedule point in call_ad(). | *35c89cfcac
netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper | *c4ba90ae35
qed/qede: Fix scheduling while atomic | *0fee54fa33
Bluetooth: L2CAP: Add missing checks for invalid DCID | *0066598012
Bluetooth: Fix l2cap_disconnect_req deadlock | *83cfac5851
net/sched: fq_pie: ensure reasonable TCA_FQ_PIE_QUANTUM values | *8ab2bec9e1
net/smc: Avoid to access invalid RMBs' MRs in SMCRv1 ADD LINK CONT | *47ef881f1c
net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods | *9fcc3c3d26
neighbour: fix unaligned access to pneigh_entry | *99883d4a0b
wifi: mt76: mt7615: fix possible race in mt7615_mac_sta_poll | *2d3e4c5b3e
afs: Fix setting of mtime when creating a file/dir/symlink | *1ed651e234
spi: qup: Request DMA before enabling clocks | *e7c61c39d6
staging: vchiq_core: drop vchiq_status from vchiq_initialise | *fa30327060
i40e: fix build warning in ice_fltr_add_mac_to_list() | *15ca8d584c
i40e: fix build warnings in i40e_alloc.h | *f7e208d1c5
i40iw: fix build warning in i40iw_manage_apbvt() | *318e2c18da
block/blk-iocost (gcc13): keep large values in a new enum | *b6d652f7fb
blk-iocost: avoid 64-bit division in ioc_timer_fn | *9214a5484e
f2fs: fix iostat lock protection | *d3b74c288d
bonding (gcc13): synchronize bond_{a,t}lb_xmit() types | *f122e55174
remove the sx8 block driver | *9236470a1d
sfc (gcc13): synchronize ef100_enqueue_skb()'s return type | *02ce3cf222
gcc-plugins: Reorganize gimple includes for GCC 13 | *4c3ddc06ce
ata: ahci: fix enum constants for gcc-13 * |0c0856714e
Revert "tcp: deny tcp_disconnect() when threads are waiting" * |848ca335c1
Merge 5.10.183 into android12-5.10-lts |\| | *7356714b95
Linux 5.10.183 | *842156dc0a
ARM: defconfig: drop CONFIG_DRM_RCAR_LVDS | *2c0ea7a06d
ext4: enable the lazy init thread when remounting read/write | *92450a1eaa
selftests: mptcp: join: skip if MPTCP is not supported | *1a6db1f927
selftests: mptcp: simult flows: skip if MPTCP is not supported | *4f8356ab74
selftests: mptcp: diag: skip if MPTCP is not supported | *81df7153f0
crypto: ccp: Play nice with vmalloc'd memory for SEV command structs | *1f988ce6e4
crypto: ccp: Reject SEV commands with mismatching command buffer | *d21a20f442
scsi: dpt_i2o: Do not process completions with invalid addresses | *a2cd7599b5
scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD) | *6d6612f7f9
drm/rcar: stop using 'imply' for dependencies | *c759c9e4bf
media: ti-vpe: cal: avoid FIELD_GET assertion | *d21e955de9
tpm, tpm_tis: Request threaded interrupt handler | *608c1f2083
regmap: Account for register length when chunking | *cb1cbe430e
KEYS: asymmetric: Copy sig and digest in public_key_verify_signature() | *3295dc04af
KVM: x86: Account fastpath-only VM-Exits in vCPU stats | *21bb3cd2e1
test_firmware: fix the memory leak of the allocated firmware buffer | *510e015b90
serial: 8250_tegra: Fix an error handling path in tegra_uart_probe() | *b02ae50c7f
fbcon: Fix null-ptr-deref in soft_cursor | *c94228a5ae
ext4: add lockdep annotations for i_data_sem for ea_inode's | *ef70012ab5
ext4: disallow ea_inodes with extended attributes | *6f4fa43757
ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find() | *6d67d4966c
ext4: add EA_INODE checking to ext4_iget() | *6d0adaa90d
selftests: mptcp: pm nl: skip if MPTCP is not supported | *54dea0aa6b
selftests: mptcp: connect: skip if MPTCP is not supported | *57eb824b8c
tracing/probe: trace_probe_primary_from_call(): checked list_first_entry | *122ba1d40b
selinux: don't use make's grouped targets feature yet | *e0b8664c2f
btrfs: fix csum_tree_block page iteration to avoid tripping on -Werror=array-bounds | *6c859764f4
tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of UARTCTRL_SBK | *6127e956c3
mmc: vub300: fix invalid response handling | *99cb5ed15d
eth: sun: cassini: remove dead code | *1d8693376a
gcc-12: disable '-Wdangling-pointer' warning for now | *7c602f540b
ath6kl: Use struct_group() to avoid size-mismatched casting | *c92ea38a77
ACPI: thermal: drop an always true check | *93e28b66c1
x86/boot: Wrap literal addresses in absolute_pointer() | *3442be8f30
ata: libata-scsi: Use correct device no in ata_find_dev() | *ae0d7613e0
scsi: stex: Fix gcc 13 warnings | *86b2d292c2
misc: fastrpc: reject new invocations during device removal | *dacb7c103c
misc: fastrpc: return -EPIPE to invocations on device removal | *a4f88cb043
usb: gadget: f_fs: Add unbind event before functionfs_unbind | *90f581eb74
net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818 | *e18b0009dd
iio: dac: build ad5758 driver when AD5758 is selected | *a869ab6987
iio: adc: ad7192: Change "shorted" channels to differential | *143dbb313a
iio: dac: mcp4725: Fix i2c_master_send() return value handling | *81c70f4bea
iio: light: vcnl4035: fixed chip ID check | *ff864a92d9
iio: imu: inv_icm42600: fix timestamp reset | *954bd5a44b
HID: wacom: avoid integer overflow in wacom_intuos_inout() | *adac1c22f5
HID: google: add jewel USB id | *55c507a34e
iio: adc: mxs-lradc: fix the order of two cleanup operations | *5a445c2bf6
mailbox: mailbox-test: fix a locking issue in mbox_test_message_write() | *c05ac53bb0
atm: hide unused procfs functions | *ab33230458
drm/msm: Be more shouty if per-process pgtables aren't working | *93a61212db
ALSA: oss: avoid missing-prototype warnings | *4987bf0446
netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with CONFIG_NF_NAT | *1c2537291e
wifi: b43: fix incorrect __packed annotation | *ea478186ea
scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed | *05226a8f22
arm64/mm: mark private VM_FAULT_X defines as vm_fault_t | *32f86763c2
ARM: dts: stm32: add pin map for CAN controller on stm32f7 | *01c76cb5e5
wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value | *0467212806
s390/pkey: zeroize key blobs | *76169f7490
media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221 | *ca2d171fd1
media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*() | *2ea7d26ed8
media: dvb-core: Fix use-after-free due on race condition at dvb_net | *415651c8f4
media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table | *eb37fef417
media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb() | *1995e71472
media: dvb_ca_en50221: fix a size write bug | *b85233ab53
media: netup_unidvb: fix irq init by register it at the end of probe | *74c80d2024
media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address | *fcbb72b041
media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer() | *7945c13c9b
media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer | *2d47867a6b
media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer() | *647da51e4d
media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer() | *084e43d9a4
media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer() | *a81280cf33
media: dvb_demux: fix a bug for the continuity counter | *204e9082f6
ASoC: ssm2602: Add workaround for playback distortions | *beee708ccc
ASoC: dt-bindings: Adjust #sound-dai-cells on TI's single-DAI codecs | *bd99da6472
xfrm: Check if_id in inbound policy/secpath match | *5ee83fef0c
ASoC: dwc: limit the number of overrun messages | *32f6f1bf1b
block/rnbd: replace REQ_OP_FLUSH with REQ_OP_WRITE | *01c3d30649
nbd: Fix debugfs_create_dir error checking | *29f6b42a73
fbdev: stifb: Fix info entry in sti_struct on error path | *742dab42d7
fbdev: modedb: Add 1920x1080 at 60 Hz video mode | *d03d31d3a2
gfs2: Don't deref jdesc in evict | *fe4f6e159b
media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE | *16ee4562c7
ARM: 9295/1: unwind:fix unwind abort for uleb128 case | *a3393eb6fb
btrfs: abort transaction when sibling keys check fails for leaves | *c12c288f1e
mailbox: mailbox-test: Fix potential double-free in mbox_test_message_write() | *0dcf021af4
ALSA: hda: Glenfly: add HD Audio PCI IDs and HDMI Codec Vendor IDs. | *d5fcccfc50
watchdog: menz069_wdt: fix watchdog initialisation | *9823ac6e7a
mtd: rawnand: marvell: don't set the NAND frequency select | *e4666d793a
mtd: rawnand: marvell: ensure timing values are written | *a437d3d25a
net: dsa: mv88e6xxx: Increase wait after reset deactivation | *7c5c67aa29
net/sched: flower: fix possible OOB write in fl_set_geneve_opt() | *f5c29a9e91
net/mlx5: Read embedded cpu after init bit cleared | *f03bc01360
udp6: Fix race condition in udp6_sendmsg & connect | *57e6c54034
net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report | *ae7e941f4d
net: sched: fix NULL pointer dereference in mq_attach | *a8ad1303b9
net/sched: Prohibit regrafting ingress or clsact Qdiscs | *676f203803
net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs | *18c76349af
net/sched: sch_clsact: Only create under TC_H_CLSACT | *1b0163b2dc
net/sched: sch_ingress: Only create under TC_H_INGRESS | *dfb80ebc3b
tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set | *cccc620970
tcp: deny tcp_disconnect() when threads are waiting | *8f0365a3e2
af_packet: do not use READ_ONCE() in packet_bind() | *4de3c2c43c
mtd: rawnand: ingenic: fix empty stub helper definitions | *11a1f2561b
amd-xgbe: fix the false linkup in xgbe_phy_status | *fa909b1384
af_packet: Fix data-races of pkt_sk(sk)->num. | *616da05ff8
netrom: fix info-leak in nr_write_internal() | *d1b224cb78
net/mlx5: fw_tracer, Fix event handling | *a864a8543c
dmaengine: pl330: rename _start to prevent build error | *33d7035dc2
iommu/amd: Don't block updates to GATag if guest mode is on | *bd9e61ee3e
iommu/rockchip: Fix unwind goto issue | *75c60dacf0
RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx | *861868b063
RDMA/bnxt_re: Fix a possible memory leak | *ff296fcceb
dmaengine: at_xdmac: fix potential Oops in at_xdmac_prep_interleaved() | *6b32ed353f
dmaengine: at_xdmac: Move the free desc to the tail of the desc list | *3041b768cc
dmaengine: at_xdmac: Fix race for the tx desc callback | *127afc87bb
dmaengine: at_xdmac: Fix concurrency over chan's completed_cookie | *958226b3a6
RDMA/efa: Fix unsupported page sizes in device | *7d6662e4a4
RDMA/bnxt_re: Fix the page_size used during the MR creation | *b51c896285
RDMA/bnxt_re: Code refactor while populating user MRs * |04a55bbb7f
Revert "regulator: Add regmap helper for ramp-delay setting" * |5e8d66e06a
Revert "regulator: pca9450: Convert to use regulator_set_ramp_delay_regmap" * |4d5a15daae
Revert "regulator: pca9450: Fix BUCK2 enable_mask" * |06f0c366cb
Merge 5.10.182 into android12-5.10-lts |\| | *c7992b6c7f
Linux 5.10.182 | *468bebc426
netfilter: ctnetlink: Support offloaded conntrack entry deletion | *18c14d3028
ipv{4,6}/raw: fix output xfrm lookup wrt protocol | *2218752325
binder: fix UAF caused by faulty buffer cleanup | *e4d2e6c305
bluetooth: Add cmd validity checks at the start of hci_sock_ioctl() | *6a0712d9fe
net: phy: mscc: enable VSC8501/2 RGMII RX clock | *b556990235
net/mlx5: Devcom, serialize devcom registration | *57dc3c124e
net/mlx5: devcom only supports 2 ports | *860ad704e4
regulator: pca9450: Fix BUCK2 enable_mask | *b3a9c4081d
regulator: pca9450: Convert to use regulator_set_ramp_delay_regmap | *12cb97ed85
regulator: Add regmap helper for ramp-delay setting | *b557220d31
power: supply: bq24190: Call power_supply_changed() after updating input current | *224f7bbf57
power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier() | *277b489ad0
power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to stabilize | *0949c572d4
power: supply: bq27xxx: Ensure power_supply_changed() is called on current sign changes | *6ed541254f
power: supply: bq27xxx: Move bq27xxx_battery_update() down | *ed78797a26
power: supply: bq27xxx: expose battery data when CI=1 | *7ff807d68b
power: supply: bq27xxx: Add cache parameter to bq27xxx_battery_current_and_status() | *432f98c559
power: supply: bq27xxx: make status more robust | *659094e405
power: supply: bq27xxx: fix sign of current_now for newer ICs | *14e1a958d9
power: supply: bq27xxx: fix polarity of current_now | *18c9cf4633
x86/cpu: Drop spurious underscore from RAPTOR_LAKE #define | *4a8980cb2a
x86/cpu: Add Raptor Lake to Intel family * |f8e9848656
Revert "tipc: add tipc_bearer_min_mtu to calculate min mtu" * |7ae5626406
Revert "tipc: do not update mtu if msg_max is too small in mtu negotiation" * |4a7c41b710
Revert "tipc: check the bearer min mtu properly when setting it by netlink" * |f015c92c49
Revert "ipv4/tcp: do not use per netns ctl sockets" * |8231b54cd2
ANDROID: GKI: preserve CRC generation for some bluetooth symbols * |a4be51e26a
Revert "net: Find dst with sk's xfrm policy not ctl_sk" * |c86beaeed1
Revert "tcp: fix possible sk_priority leak in tcp_v4_send_reset()" * |7c491aaf07
Revert "firmware: arm_sdei: Fix sleep from invalid context BUG" * |6d62ca19a7
Merge 5.10.181 into android12-5.10-lts |\| | *272d4b8a5b
Linux 5.10.181 | *cf7ee4b158
net: phy: mscc: add VSC8502 to MODULE_DEVICE_TABLE | *98cedb9910
3c589_cs: Fix an error handling path in tc589_probe() | *6f449e409b
arm64: dts: imx8mn-var-som: fix PHY detection bug by adding deassert delay | *d4d10a6df1
net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device | *8b9c561b9f
net/mlx5: Fix error message when failing to allocate device memory | *c21862232f
net/mlx5: DR, Fix crc32 calculation to work on big-endian (BE) CPUs | *058fd18e74
net/mlx5e: do as little as possible in napi poll when budget is 0 | *5afd5fb8a9
forcedeth: Fix an error handling path in nv_probe() | *80a4b9ad42
ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg | *c966b58c85
x86/show_trace_log_lvl: Ensure stack pointer is aligned, again | *0de80163de
xen/pvcalls-back: fix double frees with pvcalls_new_active_socket() | *b663696c06
coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet() | *a52d2019ec
fs: fix undefined behavior in bit shift for SB_NOUSER | *52967bbb93
power: supply: sbs-charger: Fix INHIBITED bit for Status reg | *e85757da90
power: supply: bq27xxx: Fix poll_interval handling and races on remove | *1da9a4b55a
power: supply: bq27xxx: Fix I2C IRQ race on remove | *ac1ab21394
power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition | *2de6eb7c40
power: supply: leds: Fix blink to LED on transition | *e5f82688ae
ipv6: Fix out-of-bounds access in ipv6_find_tlv() | *a61d5c13c7
bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields | *72971f4071
octeontx2-pf: Fix TSOv6 offload | *1c8a016822
selftests: fib_tests: mute cleanup error message | *a594382ec6
net: fix skb leak in __skb_tstamp_tx() | *8a30dce9d7
media: radio-shark: Add endpoint checks | *ccef03c511
USB: sisusbvga: Add endpoint checks | *4c260bbf35
USB: core: Add routines for endpoint checks in old drivers | *5014b64e36
udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated(). | *4bb955c4d2
net: fix stack overflow when LRO is disabled for virtual interfaces | *58ecc165ab
fbdev: udlfb: Fix endpoint check | *fd67307974
debugobjects: Don't wake up kswapd from fill_pool() | *a12ce786be
x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms | *518c39fc1e
parisc: Fix flush_dcache_page() for usage from irq context | *2d78438c31
selftests/memfd: Fix unknown type name build failure | *d4a5e6ae99
x86/mm: Avoid incomplete Global INVLPG flushes | *628d7e4941
dt-binding: cdns,usb3: Fix cdns,on-chip-buff-size type | *139f84c80d
btrfs: use nofs when cleaning up aborted transactions | *ea50ee0ef9
gpio: mockup: Fix mode of debugfs files | *c570dbf279
parisc: Allow to reboot machine after system halt | *de0d7dd5ef
parisc: Handle kgdb breakpoints only in kernel context | *89eba5586a
m68k: Move signal frame following exception on 68020/030 | *42b78c8cc7
net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize | *798c1c62cf
ALSA: hda/realtek: Enable headset onLenovo M70/M90 | *1f57a1b979
ALSA: hda: Fix unhandled register update during auto-suspend period | *b0d7e62fd1
ALSA: hda/ca0132: add quirk for EVGA X299 DARK | *c41324385a
ocfs2: Switch to security_inode_init_security() | *60afe299bb
spi: fsl-cpm: Use 16 bit mode for large transfers with even size | *e3674788a8
spi: fsl-spi: Re-organise transfer bits_per_word adaptation | *5324510378
act_mirred: use the backlog for nested calls to mirred ingress | *f5bf8e3ca1
net/sched: act_mirred: better wording on protection against excessive stack growth | *bba7ebe10b
net/sched: act_mirred: refactor the handle of xmit | *047f618d19
writeback, cgroup: remove extra percpu_ref_exit() | *84fbe6ad0f
ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 | *dbcc95bb51
watchdog: sp5100_tco: Immediately trigger upon starting. | *75258f0838
s390/qdio: fix do_sqbs() inline assembly constraint | *3681a0287a
s390/qdio: get rid of register asm | *9c9f253fc6
serial: 8250_exar: Add support for USR298x PCI Modems | *1ffa0b8ba9
serial: exar: Add support for Sealevel 7xxxC serial cards | *fb3c5714f5
serial: 8250_exar: derive nr_ports from PCI ID for Acces I/O cards | *18fbf8cfbb
KVM: arm64: Link position-independent string routines into .hyp.text | *e266da1656
HID: wacom: add three styli to wacom_intuos_get_tool_type | *dfd419db03
HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs | *05b1703797
HID: wacom: Force pen out of prox if no events have been received in a while | *6b4205ea97
nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode() | *710dee5701
powerpc/64s/radix: Fix soft dirty tracking | *ae149cdaef
tpm/tpm_tis: Disable interrupts for more Lenovo devices | *8c0109d762
ceph: force updating the msg pointer in non-split case | *11dddfbb7a
vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF | *ea3d5de90b
serial: Add support for Advantech PCI-1611U card | *ba061afa06
statfs: enforce statfs[64] structure initialization | *845f98af6a
can: kvaser_pciefd: Disable interrupts in probe error path | *7a7ec807fe
can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt | *65e85232ff
can: kvaser_pciefd: Clear listen-only bit if not explicitly requested | *0babb3fabf
can: kvaser_pciefd: Empty SRB buffer in probe | *03714e9c04
can: kvaser_pciefd: Call request_irq() before enabling interrupts | *3bbeba3ce1
can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop() | *073a4d750c
can: isotp: recvmsg(): allow MSG_CMSG_COMPAT flag | *b4b8294a41
can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag | *f7f799a6fe
ALSA: hda/realtek: Add quirk for 2nd ASUS GU603 | *b4f770e612
ALSA: hda/realtek: Add a quirk for HP EliteDesk 805 | *6cebdffba6
ALSA: hda/realtek: Add quirk for Clevo L140AU | *3add6b2a4a
ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table | *546b1f5f45
ALSA: hda: Fix Oops by 9.1 surround channel names | *ff466f77d0
usb: typec: altmodes/displayport: fix pin_assignment_show | *35e31e1e92
usb: gadget: u_ether: Fix host MAC address case | *e35adb75fd
usb: dwc3: debugfs: Resume dwc3 before accessing registers | *66070f5b99
USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value | *0caed1faf5
usb-storage: fix deadlock when a scsi command timeouts more than once | *6340e432cf
USB: usbtmc: Fix direction for 0-length ioctl control messages | *3b3c6f2d2f
ALSA: usb-audio: Add a sample rate workaround for Line6 Pod Go | *3bd6d11e7e
bridge: always declare tunnel functions | *3fa13203b6
netfilter: nft_set_rbtree: fix null deref on element insertion | *6cfe6f5185
vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit() | *562ec162b0
igb: fix bit_shift to be in [1..8] range | *dc61f7582c
cassini: Fix a memory leak in the error handling path of cas_init_one() | *81139679f4
scsi: storvsc: Don't pass unused PFNs to Hyper-V host | *d0d39bed9e
wifi: iwlwifi: mvm: don't trust firmware n_channels | *f9337a4177
wifi: mac80211: fix min center freq offset tracing | *43f6575004
net: bcmgenet: Restore phy_stop() depending upon suspend/close | *e92727ed9e
net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop() | *2937127d24
tipc: check the bearer min mtu properly when setting it by netlink | *2bd4ff4ffb
tipc: do not update mtu if msg_max is too small in mtu negotiation | *097ea78d8c
tipc: add tipc_bearer_min_mtu to calculate min mtu | *76ea144a35
net/tipc: fix tipc header files for kernel-doc | *02b20e0bc0
net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment() | *01cdda0d27
drm/exynos: fix g2d_open/close helper function definitions | *ce97bb60a6
SUNRPC: Fix trace_svc_register() call site | *f9982db735
media: netup_unidvb: fix use-after-free at del_timer() | *0cefa42152
net: hns3: fix reset delay time to avoid configuration timeout | *aba74ad998
net: hns3: fix sending pfc frames after reset issue | *e1f800be74
erspan: get the proto with the md version for collect_md | *153017561d
serial: arc_uart: fix of_iomap leak in `arc_serial_probe` | *e7fd68abbb
tcp: fix possible sk_priority leak in tcp_v4_send_reset() | *788791990d
net: Find dst with sk's xfrm policy not ctl_sk | *a9ef8b2589
ipv4/tcp: do not use per netns ctl sockets | *1716699177
vsock: avoid to close connected socket after the timeout | *b1cf6bd883
ALSA: hda/realtek: Apply HP B&O top speaker profile to Pavilion 15 | *13c5fa1248
ALSA: firewire-digi00x: prevent potential use after free | *6fb537895d
net: phy: dp83867: add w/a for packet errors seen with short cables | *83996d317b
net: fec: Better handle pm_runtime_get() failing in .remove() | *8f57715f8e
af_key: Reject optional tunnel/BEET mode templates in outbound policies | *f5cb28a90c
cpupower: Make TSC read per CPU for Mperf monitor | *dc30fed07d
drm/msm/dpu: Remove duplicate register defines from INTF | *eaf9394ed7
drm/msm/dp: unregister audio driver during unbind | *c5449195f8
Revert "Fix XFRM-I support for nested ESP tunnels" | *295e07a76b
xfrm: don't check the default policy if the policy allows the packet | *84fdaaf0d7
btrfs: fix space cache inconsistency after error loading it from disk | *a842fb6038
btrfs: replace calls to btrfs_find_free_ino with btrfs_find_free_objectid | *9c69a9d058
btrfs: move btrfs_find_highest_objectid/btrfs_find_free_objectid to disk-io.c | *6a1a72a8cf
mfd: dln2: Fix memory leak in dln2_probe() | *7d939e367b
phy: st: miphy28lp: use _poll_timeout functions for waits | *3b37bb0d92
Input: xpad - add constants for GIP interface numbers | *94ec1a44e8
iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any | *cae5f8f4f7
clk: tegra20: fix gcc-7 constant overflow warning | *8c472e68be
iommu/arm-smmu-qcom: Limit the SMR groups to 128 | *214ae2c1a9
RDMA/core: Fix multiple -Warray-bounds warnings | *2d9ca5f62f
recordmcount: Fix memory leaks in the uwrite function | *cf3e291601
sched: Fix KCSAN noinstr violation | *158502f790
mcb-pci: Reallocate memory region to avoid memory overlapping | *2c86a1305c
serial: 8250: Reinit port->pm on port specific driver unbind | *7ed30db879
usb: typec: tcpm: fix multiple times discover svids error | *60fabcba75
HID: wacom: generic: Set battery quirk only when we see battery data | *d234de1a92
spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3 | *0898a1df72
HID: logitech-hidpp: Reconcile USB and Unifying serials | *958534d436
HID: logitech-hidpp: Don't use the USB serial for USB devices | *bb1313f37e
staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE | *55410a9144
Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp | *a2d816f55d
Bluetooth: hci_bcm: Fall back to getting bdaddr from EFI if not set | *ba66851aba
ipvs: Update width of source for ip_vs_sync_conn_options | *866921dc06
wifi: ath11k: Fix SKB corruption in REO destination ring | *91ad1ab3cc
wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace | *e732a266b9
null_blk: Always check queue mode setting from configfs | *059e426d66
wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf | *0fc0d287c1
wifi: iwlwifi: pcie: fix possible NULL pointer dereference | *7560ed6592
samples/bpf: Fix fout leak in hbm's run_bpf_prog | *ad87bd313f
f2fs: fix to drop all dirty pages during umount() if cp_error is set | *fc7237e191
ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa() | *3ca3005b50
ext4: set goal start correctly in ext4_mb_normalize_request | *4c2c8f9599
gfs2: Fix inode height consistency check | *697f92f831
scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition | *f748e15253
lib: cpu_rmap: Avoid use after free on rmap->obj array entries | *4621e24c92
scsi: target: iscsit: Free cmds before session free | *2ea171230a
net: Catch invalid index in XPS mapping | *8b61e7ad13
net: pasemi: Fix return type of pasemi_mac_start_tx() | *e0e7faee3a
scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow | *22ab5fed07
ext2: Check block size validity during mount | *4e8dc0e5c7
wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex | *e8d49d1c59
bpf: Annotate data races in bpf_local_storage | *30d041c18d
wifi: ath: Silence memcpy run-time false positive warning | *b8e7589f50
drm/amd: Fix an out of bounds error in BIOS parser | *978e0d0554
ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in acpi_db_display_objects | *16359bc02c
ACPICA: Avoid undefined behavior: applying zero offset to null pointer | *3f64a0e664
drm/tegra: Avoid potential 32-bit integer overflow | *f718f1fd3e
remoteproc: stm32_rproc: Add mutex protection for workqueue | *066b90bca7
ACPI: EC: Fix oops when removing custom query handlers | *7d8f5ccc82
firmware: arm_sdei: Fix sleep from invalid context BUG | *5c23f6da62
memstick: r592: Fix UAF bug in r592_remove due to race condition | *ae6769fb93
arm64: dts: qcom: msm8996: Add missing DWC3 quirks | *bb1616e105
regmap: cache: Return error in cache sync operations for REGCACHE_NONE | *d5138ad7ca
drm/amd/display: Use DC_LOG_DC in the trasform pixel function | *c8daee6658
fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode() | *a7d21b8585
rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access | *e4842de4ec
refscale: Move shutdown from wait_event() to wait_event_idle() | *100c0ad6c0
ext4: allow ext4_get_group_info() to fail | *371d8b8ea0
ext4: allow to find by goal if EXT4_MB_HINT_GOAL_ONLY is set | *8669fff0d0
ext4: add mballoc stats proc file | *9b6a0c140e
ext4: drop s_mb_bal_lock and convert protected fields to atomic | *0983142c5f
ext4: remove redundant mb_regenerate_buddy() | *d48b7eea94
ext4: fix lockdep warning when enabling MMP | *5c87115520
ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled | *8284c7592d
ext4: reflect error codes from ext4_multi_mount_protect() to its callers | *efd18a91c9
ext4: remove an unused variable warning with CONFIG_QUOTA=n | *df1be652a4
fbdev: arcfb: Fix error handling in arcfb_probe() | *bd6b353671
drm/i915/dp: prevent potential div-by-zero | *8307e372e7
af_unix: Fix data races around sk->sk_shutdown. | *9b977b0cbb
af_unix: Fix a data race of sk->sk_receive_queue->qlen. | *fb6ac4b5bd
net: datagram: fix data-races in datagram_poll() | *f4a371d3f5
ipvlan:Fix out-of-bounds caused by unclear skb->cb | *963fe9ed86
tcp: add annotations around sk->sk_shutdown accesses | *f86568eca4
tcp: factor out __tcp_close() helper | *34a5ee69ec
net: add vlan_get_protocol_and_depth() helper | *9ccf3edbaf
net: tap: check vlan with eth_type_vlan() method | *4493914009
net: deal with most data-races in sk_wait_event() | *1b33bdd766
net: annotate sk->sk_err write from do_recvmmsg() | *f92557f79a
netlink: annotate accesses to nlk->cb_running | *26001e75dc
netfilter: conntrack: fix possible bug_on with enable_hooks=1 | *d06f67b2b8
net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs(). | *8eb35b1aca
linux/dim: Do nothing if no time delta between samples | *4d3ae448e8
net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe() | *b882224d73
ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings | *139c27648f
drm/mipi-dsi: Set the fwnode for mipi_dsi_device | *423908e89d
driver core: add a helper to setup both the of_node and fwnode of a device * |6229d57677
Revert "arm64: Stash shadow stack pointer in the task struct on interrupt" * |d70c95bd81
Merge 5.10.180 into android12-5.10-lts |\| | *4c893ff559
Linux 5.10.180 | *3ebe5d6d69
drm/amd/display: Fix hang when skipping modeset | *a992c387b4
mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock | *f2656f437f
drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag | *32232bcd4e
printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h | *fcfe05990a
KVM: x86: move guest_pv_has out of user_access section | *85cfbaa575
KVM: x86: do not report preemption if the steal time cache is stale | *4bffae22be
KVM: x86: revalidate steal time cache if MSR value changes | *e10a73f538
KVM: x86: do not set st->preempted when going back to user space | *0296620043
KVM: x86: Remove obsolete disabling of page faults in kvm_arch_vcpu_put() | *8e39c2f407
KVM: Fix steal time asm constraints | *ebd3010d42
KVM: x86: Fix recording of guest steal time / preempted status | *4b19cbdb1d
KVM: x86: Ensure PV TLB flush tracepoint reflects KVM behavior | *01c0002ec7
drbd: correctly submit flush bio on barrier | *ef77d602e3
serial: 8250: Fix serial8250_tx_empty() race with DMA Tx | *1a8822343e
ext4: fix invalid free tracking in ext4_xattr_move_to_block() | *b0fc279de4
ext4: remove a BUG_ON in ext4_mb_release_group_pa() | *d88fe8e611
ext4: bail out of ext4_xattr_ibody_get() fails for any reason | *4597554b4f
ext4: add bounds checking in get_max_inline_xattr_value_size() | *5f8b55136a
ext4: fix deadlock when converting an inline directory in nojournal mode | *37c69da3ad
ext4: improve error recovery code paths in __ext4_remount() | *08838aeefa
ext4: check iomap type only if ext4_iomap_begin() does not fail | *4aa7f744fa
ext4: fix data races when using cached status extents | *0dde3141c5
ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum | *5d356d902e
ext4: fix WARNING in mb_find_extent | *529f41f0eb
KVM: x86: do not report a vCPU as preempted outside instruction boundaries | *0cb6e9e7d3
KVM: x86: hyper-v: Avoid calling kvm_make_vcpus_request_mask() with vcpu_mask==NULL | *4502ebbdc0
HID: wacom: insert timestamp to packed Bluetooth (BT) events | *77fd800d3f
HID: wacom: Set a default resolution for older tablets | *c1420276be
drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend | *20ca90ceda
drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx ras | *eed63477ae
drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini() | *c85327c1e9
drm/panel: otm8009a: Set backlight parent to panel device | *957904f531
f2fs: fix potential corruption when moving a directory | *4a638a9582
ARM: dts: s5pv210: correct MIPI CSIS clock name | *fed6318e47
ARM: dts: exynos: fix WM8960 clock name in Itop Elite | *777952ce11
remoteproc: st: Call of_node_put() on iteration error | *30e0834bec
remoteproc: stm32: Call of_node_put() on iteration error | *62fe5d74ef
sh: nmi_debug: fix return value of __setup handler | *9245f34029
sh: init: use OF_EARLY_FLATTREE for early init | *f19bc0d2a6
sh: mcount.S: fix build error when PRINTK is not enabled | *bbad64abd6
sh: math-emu: fix macro redefined warning | *2d65c97777
inotify: Avoid reporting event with invalid wd | *73aef14407
platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i | *4b87eec73e
platform/x86: touchscreen_dmi: Add upside-down quirk for GDIX1002 ts on the Juno Tablet | *8c2cdb7326
cifs: fix pcchunk length type in smb2_copychunk_range | *829c20fd7a
btrfs: print-tree: parent bytenr must be aligned to sector size | *148b16cd30
btrfs: don't free qgroup space unless specified | *08fa23adbd
btrfs: fix btrfs_prev_leaf() to not return the same key twice | *7a4db11f00
perf symbols: Fix return incorrect build_id size in elf_read_build_id() | *87a1fa0ad7
crypto: sun8i-ss - Fix a test in sun8i_ss_setup_ivs() | *be3517ae6b
perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp() | *604b650fb5
perf pmu: zfree() expects a pointer to a pointer to zero it after freeing its contents | *1ebd0dfb27
perf vendor events power9: Remove UTF-8 characters from JSON files | *796616f216
net: enetc: check the index of the SFI rather than the handle | *b6b15de512
virtio_net: suppress cpu stall when free_unused_bufs | *c043714ef2
virtio_net: split free_unused_bufs() | *0773270b13
net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621 | *0f1ad0ef60
ALSA: caiaq: input: Add error handling for unsupported input methods in `snd_usb_caiaq_input_init` | *7f497a9451
drm/amdgpu: add a missing lock for AMDGPU_SCHED | *f00ef2618f
af_packet: Don't send zero-byte data in packet_sendmsg_spkt(). | *02359ba526
ionic: remove noise from ethtool rxnfc error msg | *3605b33184
octeontx2-vf: Detach LF resources on probe cleanup | *ea7453f5e5
octeontx2-pf: Disable packet I/O for graceful exit | *15152b8a4b
rxrpc: Fix hard call timeout units | *9291aba0ff
sfc: Fix module EEPROM reporting for QSFP modules | *774da70521
net/sched: act_mirred: Add carrier check | *f3fae1b1c7
watchdog: dw_wdt: Fix the error handling path of dw_wdt_drv_probe() | *3b7798b42e
writeback: fix call of incorrect macro | *f47f0fb5b5
net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu | *d6f0687d50
sit: update dev->needed_headroom in ipip6_tunnel_bind_dev() | *7311c8be37
net/sched: cls_api: remove block_cb from driver_list before freeing | *cc8efc78c3
net/ncsi: clear Tx enable mode when handling a Config required AEN | *fa19c533ab
scsi: qedi: Fix use after free bug in qedi_remove() | *4285cc0a22
dm verity: fix error handling for check_at_most_once on FEC | *fc097cfca0
dm verity: skip redundant verity_handle_err() on I/O errors | *26b1b0d0be
mailbox: zynqmp: Fix counts of child nodes | *67fb57f247
mailbox: zynq: Switch to flexible array to simplify code | *c4e636f025
crypto: ccp - Clear PSP interrupt status register before calling handler | *6f60aae72c
ring-buffer: Ensure proper resetting of atomic variables in ring_buffer_reset_online_cpus | *2fcb12b3f4
tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH | *6c2ee50c90
tty: clean include/linux/tty.h up | *57b510c7d3
tty: move some tty-only functions to drivers/tty/tty.h | *1924d47a28
tty: move some internal tty lock enums and functions out of tty.h | *f665d81ffa
tty: audit: move some local functions out of tty.h | *6a392b806f
tty: create internal tty.h file | *e044a24447
netfilter: nf_tables: deactivate anonymous set from preparation phase | *a222d2794c
scsi: target: core: Avoid smp_processor_id() in preemptible code | *14fc6af67b
arm64: dts: qcom: sdm845: correct dynamic power coefficients | *c820c05c5f
sound/oss/dmasound: fix 'dmasound_setup' defined but not used | *9079ff34a1
debugobject: Ensure pool refill (again) | *3f225f29c6
arm64: Stash shadow stack pointer in the task struct on interrupt * |d9baf420d0
Merge9134b5a464
("arm64: Always load shadow stack pointer directly from the task struct") into android12-5.10-lts |\| | *9134b5a464
arm64: Always load shadow stack pointer directly from the task struct * |4a2ed7d4bc
Mergea25a403e4b
("perf intel-pt: Fix CYC timestamps after standalone CBR") into android12-5.10-lts |\| | *a25a403e4b
perf intel-pt: Fix CYC timestamps after standalone CBR | *905f847675
perf auxtrace: Fix address filter entire kernel size * |5cb8a3c82c
Mergeea827627a9
("dm ioctl: fix nested locking in table_clear() to remove deadlock concern") into android12-5.10-lts |\| | *ea827627a9
dm ioctl: fix nested locking in table_clear() to remove deadlock concern * |e3f8cee7f9
Mergea1e3fffe02
("dm flakey: fix a crash with invalid table line") into android12-5.10-lts |\| | *a1e3fffe02
dm flakey: fix a crash with invalid table line * |eee3af95eb
Merge44f29e93a5
("dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path") into android12-5.10-lts |\| | *44f29e93a5
dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path * |7a6cb8c4fa
Merge717ceb487b
("dm clone: call kmem_cache_destroy() in dm_clone_init() error path") into android12-5.10-lts |\| | *717ceb487b
dm clone: call kmem_cache_destroy() in dm_clone_init() error path * |c7f1b9f365
Mergeeded3ad80a
("ia64: fix an addr to taddr in huge_pte_offset()") into android12-5.10-lts |\| | *eded3ad80a
ia64: fix an addr to taddr in huge_pte_offset() | *abb427cb77
s390/dasd: fix hanging blockdevice after request requeue | *c96807a4ad
btrfs: scrub: reject unsupported scrub flags | *f7fd1eed31
scripts/gdb: fix lx-timerlist for Python3 | *9aabb5f9ef
afs: Fix updating of i_size with dv jump from server | *3530a795bb
mfd: tqmx86: Correct board names for TQMxE39x | *cbe060011b
mfd: tqmx86: Specify IO port register range more precisely | *640a1f7e36
mfd: tqmx86: Add support for TQMx110EB and TQMxE40x | *4be49b7c24
mfd: tqmx86: Remove incorrect TQMx90UC board ID | *6697a3b0ed
mfd: tqmx86: Do not access I2C_DETECT register through io_base | *15da2acad5
thermal/drivers/mediatek: Use devm_of_iomap to avoid resource leak in mtk_thermal_probe | *08012d9edc
dmaengine: at_xdmac: do not enable all cyclic channels | *4f6303fd8f
dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing | *b295431945
dmaengine: dw-edma: Fix to change for continuous transfer | *da67d60467
phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and ulpi_port | *45e4c00940
pwm: mtk-disp: Disable shadow registers before setting backlight values | *6d13804388
pwm: mtk-disp: Adjust the clocks to avoid them mismatch | *060bd30bf7
pwm: mtk-disp: Don't check the return code of pwmchip_remove() | *795cec288e
leds: tca6507: Fix error handling of using fwnode_property_read_string | *033f00eb89
dmaengine: mv_xor_v2: Fix an error code. | *198fbdd106
leds: TI_LMU_COMMON: select REGMAP instead of depending on it | *770b061363
ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline | *8f009ae90b
openrisc: Properly store r31 to pt_regs on unhandled exceptions | *1fe1580521
clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when init fails | *3bc78eddf0
RDMA/mlx5: Use correct device num_ports when modify DC | *95468f165d
SUNRPC: remove the maximum number of retries in call_bind_status | *50440cdb0b
RDMA/mlx5: Fix flow counter query via DEVX | *0d6a5c9489
Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe | *09bfd90d04
input: raspberrypi-ts: Release firmware handle when not needed | *3aa2503717
firmware: raspberrypi: Introduce devm_rpi_firmware_get() | *73a65744c7
NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease | *9c4c6512d7
IB/hfi1: Fix bugs with non-PAGE_SIZE-end multi-iovec user SDMA requests | *f84c025978
IB/hfi1: Add additional usdma traces | *1af73620a1
IB/hfi1: Add AIP tx traces | *823b59fc56
IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order | *8ec6acdb9b
RDMA/srpt: Add a check for valid 'mad_agent' pointer | *16f596cfe9
RDMA/cm: Trace icm_send_rej event before the cm state is reset | *3ef7a4c0d5
RDMA/siw: Remove namespace check from siw_netdev_event() | *ac7f79ee11
clk: add missing of_node_put() in "assigned-clocks" property parsing | *391fbf0d08
power: supply: generic-adc-battery: fix unit scaling | *9e5a7c1106
rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time | *9ad3221c86
RDMA/mlx4: Prevent shift wrapping in set_user_sq_size() | *889a2070dc
rtc: omap: include header for omap_rtc_power_off_program prototype * |b38d756cea
Revert "workqueue: Rename "delayed" (delayed by active management) to "inactive"" * |24c41942a4
Revert "workqueue: Fix hung time report of worker pools" * |24c3784e97
Merge647781347a
("workqueue: Fix hung time report of worker pools") into android12-5.10-lts |\| | *647781347a
workqueue: Fix hung time report of worker pools | *77d9a64cfb
workqueue: Rename "delayed" (delayed by active management) to "inactive" * |de3c7c404a
Merge960167e0e0
("RDMA/rdmavt: Delete unnecessary NULL check") into android12-5.10-lts |\| | *960167e0e0
RDMA/rdmavt: Delete unnecessary NULL check | *f7790aecb3
RDMA/siw: Fix potential page_array out of range access | *ab8646c9a0
clk: at91: clk-sam9x60-pll: fix return value check | *8f381b2494
perf/core: Fix hardlockup failure caused by perf throttle | *3ea9186a3e
powerpc/rtas: use memmove for potentially overlapping buffer copy | *6339b9dcdb
macintosh: via-pmu-led: requires ATA to be set | *15f3a811bf
powerpc/sysdev/tsi108: fix resource printk format warnings | *4f41f55d82
powerpc/wii: fix resource printk format warnings | *701e3e5999
powerpc/mpc512x: fix resource printk format warning | *d68265ec0b
macintosh/windfarm_smu_sat: Add missing of_node_put() | *c45ab3ab9c
spmi: Add a check for remove callback when removing a SPMI driver | *4ca4a3e454
staging: rtl8192e: Fix W_DISABLE# does not work after stop/start | *d5d628fea5
serial: 8250: Add missing wakeup event reporting | *fde8ffaaac
tty: serial: fsl_lpuart: adjust buffer length to the intended size | *5a76bc35cc
firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe | *012936502a
usb: mtu3: fix kernel panic at qmu transfer done irq handler | *e8f64f3200
usb: chipidea: fix missing goto in `ci_hdrc_probe` | *7d667749b3
usb: gadget: tegra-xudc: Fix crash in vbus_draw | *95d97e182d
sh: sq: Fix incorrect element size for allocating bitmap buffer * |01e0792f60
Revert "uapi/linux/const.h: prefer ISO-friendly __typeof__" * |2343b43cca
Mergea69eb1200e
("uapi/linux/const.h: prefer ISO-friendly __typeof__") into android12-5.10-lts |\| | *a69eb1200e
uapi/linux/const.h: prefer ISO-friendly __typeof__ * |2dcf843019
Mergefd7bf900c3
("i2c: cadence: cdns_i2c_master_xfer(): Fix runtime PM leak on error path") into android12-5.10-lts |\| | *fd7bf900c3
i2c: cadence: cdns_i2c_master_xfer(): Fix runtime PM leak on error path | *b24f1ecc8f
spi: cadence-quadspi: fix suspend-resume implementations | *b5a6930fc6
ASoC: fsl_mqs: move of_node_put() to the correct location | *5bf2d84074
coresight: etm_pmu: Set the module field | *174d7483f1
scripts/gdb: bail early if there are no generic PD | *01710564a9
scripts/gdb: bail early if there are no clocks | *b4b4409510
ia64: salinfo: placate defined-but-not-used warning | *65b5b2c5fd
ia64: mm/contig: fix section mismatch warning/error | *fd4e45d8d7
PCI/EDR: Clear Device Status after EDR error recovery | *9e5ee4fa0d
of: Fix modalias string generation | *85b4aa4eb2
vmci_host: fix a race condition in vmci_host_poll() causing GPF | *4bdae667f9
spi: fsl-spi: Fix CPM/QE mode Litte Endian | *bc88243bbe
spi: qup: Don't skip cleanup in remove's error path | *00c5b5498b
linux/vt_buffer.h: allow either builtin or modular for macros | *d4a3c912c8
ASoC: es8316: Handle optional IRQ assignment | *67b6e077fb
ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ | *eb971efca7
PCI: imx6: Install the fault handler only on compatible match | *36c237b202
usb: gadget: udc: renesas_usb3: Fix use after free bug in renesas_usb3_remove due to race condition | *aa93a46f99
spi: imx: Don't skip cleanup in remove's error path | *c3aba912f4
spi: spi-imx: using pm_runtime_resume_and_get instead of pm_runtime_get_sync | *f1f3bc9915
iio: light: max44009: add missing OF device matching | *ed1f459af6
fpga: bridge: fix kernel-doc parameter description | *98bf98e749
usb: dwc3: gadget: Change condition for processing suspend event | *8a859ac86d
usb: host: xhci-rcar: remove leftover quirk handling | *c76ba91791
pstore: Revert pmsg_lock back to a normal mutex | *7d285c6cfe
ipmi: ASPEED_BT_IPMI_BMC: select REGMAP_MMIO instead of depending on it | *230a5ed7d8
tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp. | *0abcb0b0d6
net: amd: Fix link leak when verifying config failed | *b978d22fa1
netlink: Use copy_to_user() for optval in netlink_getsockopt(). | *0837d10f6c
Revert "Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work" | *566785731c
ipv4: Fix potential uninit variable access bug in __ip_make_skb() | *4b8a05e380
net/sched: sch_fq: fix integer overflow of "credit" | *cb71b24a89
netfilter: nf_tables: don't write table validation state without mutex | *f4fc43fde1
bpf: Don't EFAULT for getsockopt with optval=NULL | *80090acb58
ixgbe: Enable setting RSS table to default values | *7a150a5b54
ixgbe: Allow flow hash to be set via ethtool | *89496d6cff
wifi: iwlwifi: fw: fix memory leak in debugfs | *f4eb14d261
wifi: iwlwifi: mvm: check firmware response size | *4ff7c0fbb3
wifi: iwlwifi: make the loop for card preparation effective | *62fde46517
jdb2: Don't refuse invalidation of already invalidated buffers | *038cbab550
wifi: iwlwifi: fw: move memset before early return | *c0ca382419
wifi: iwlwifi: yoyo: Fix possible division by zero | *2a65555f7e
md/raid10: fix memleak of md thread | *6361b0592b
md/raid10: fix memleak for 'conf->bio_split' | *1697fb124c
md/raid10: fix leak of 'r10bio->remaining' for recovery | *fcacaa9d04
bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap | *21f2503d37
nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage" | *e119d19183
nvme: fix async event trace event | *a9e3d9bac9
nvme: handle the persistent internal error AER | *2f93072222
bpf, sockmap: fix deadlocks in the sockhash and sockmap | *2be04fa7ee
net: ethernet: stmmac: dwmac-rk: fix optional phy regulator handling | *bab8dc38b1
scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup() | *b2f423fda6
f2fs: fix to avoid use-after-free for cached IPU bio | *5877980dc2
xsk: Fix unaligned descriptor validation | *2a67bc52cd
crypto: drbg - Only fail when jent is unavailable in FIPS mode | *9dbdedd44f
crypto: drbg - make drbg_prepare_hrng() handle jent instantiation errors | *27942f477d
bpftool: Fix bug for long instructions in program CFG dumps | *072d16abf5
selftests/bpf: Wait for receive in cg_storage_multi test | *d64a12eeb4
net: qrtr: correct types of trace event parameters | *dc55805db2
wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg() | *c621697505
wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg() * |be7602cdd6
Mergeadc2d82eee
("crypto: sa2ul - Select CRYPTO_DES") into android12-5.10-lts |\| | *adc2d82eee
crypto: sa2ul - Select CRYPTO_DES | *de3908e151
crypto: caam - Clear some memory in instantiate_rng | *a8226a45b2
f2fs: compress: fix to call f2fs_wait_on_page_writeback() in f2fs_write_raw_pages() | *d11a74577c
f2fs: apply zone capacity to all zone type | *d420c4a06d
f2fs: enforce single zone capacity | *c3a1914b96
f2fs: handle dqget error in f2fs_transfer_project_quota() | *202048ec1e
scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS | *bfe67e0563
scsi: target: iscsit: Fix TAS handling during conn cleanup | *e1f59cd18a
scsi: target: Fix multiple LUN_RESET handling | *008b936bbd
scsi: target: Make state_list per CPU | *7c8a29f1b2
scsi: target: Rename cmd.bad_sector to cmd.sense_info | *621c89a021
scsi: target: Rename struct sense_info to sense_detail | *05c6db12ae
net/packet: convert po->auxdata to an atomic flag | *5ca1be3658
net/packet: convert po->origdev to an atomic flag | *8bb81a925a
net/packet: annotate accesses to po->xmit | *ba6d56b20e
vlan: partially enable SIOCSHWTSTAMP in container | *118df5df1b
bpf: Remove misleading spec_v1 check on var-offset stack read | *10c1051267
scm: fix MSG_CTRUNC setting condition for SO_PASSSEC | *10702be8b3
bpf: fix precision propagation verbose logging | *6be8ad4cdc
bpf: take into account liveness when propagating precision | *243fab8e37
wifi: rtw88: mac: Return the original error from rtw_mac_power_switch() | *1980dd8c53
wifi: rtw88: mac: Return the original error from rtw_pwr_seq_parser() | *3ab6ec6c48
tools: bpftool: Remove invalid \' json escape | *1300517e37
wifi: ath6kl: reduce WARN to dev_dbg() in callback | *6c91b3b57b
wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list() | *320d760a35
wifi: ath9k: hif_usb: fix memory leak of remain_skbs | *129c3fb579
wifi: ath6kl: minor fix for allocation size | *c401368926
tick/common: Align tick period with the HZ tick. | *107ea1f63b
tick: Get rid of tick_period | *fdc4876746
tick/sched: Optimize tick_do_update_jiffies64() further | *93c4300836
tick/sched: Reduce seqcount held scope in tick_do_update_jiffies64() | *ca721584e9
tick/sched: Use tick_next_period for lockless quick check | *780f303233
drm/i915: Make intel_get_crtc_new_encoder() less oopsy | *9edf5518db
debugobject: Prevent init race with static objects | *f16f065f8c
arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step | *55fc2246c4
x86/ioapic: Don't return 0 from arch_dynirq_lower_bound() | *dfce9bb351
regulator: stm32-pwr: fix of_iomap leak | *a6aeba550c
media: venus: dec: Fix handling of the start cmd | *3a227dc12b
media: venus: vdec: Handle DRC after drain | *5bac3de7f4
media: venus: preserve DRC state across seeks | *4c1239274f
media: venus: vdec: Make decoder return LAST flag for sufficient event | *a30297bff8
media: venus: vdec: Fix non reliable setting of LAST flag | *025a34716c
media: rc: gpio-ir-recv: Fix support for wake-up | *1acb982e36
media: rcar_fdp1: Fix refcount leak in probe and remove function | *ccc454881f
media: rcar_fdp1: Fix the correct variable assignments | *ee24c9e232
media: rcar_fdp1: Make use of the helper function devm_platform_ioremap_resource() | *bf91fb6c1e
media: rcar_fdp1: fix pm_runtime_get_sync() usage count | *21de9d0daa
media: rcar_fdp1: simplify error check logic at fdp_open() | *7dac96e9cc
media: saa7134: fix use after free bug in saa7134_finidev due to race condition | *e9d64e90a0
media: dm1105: Fix use after free bug in dm1105_remove due to race condition | *de19d02d73
media: rkvdec: fix use after free bug in rkvdec_remove | *4883f0f7ee
x86/apic: Fix atomic update of offset in reserve_eilvt_offset() | *06140d6dfe
regulator: core: Avoid lockdep reports when resolving supplies | *4c0b98d87c
regulator: core: Consistently set mutex_owner when using ww_mutex_lock_slow() | *e21c93b20a
drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe() | *0fc1a90bce
ARM: dts: gta04: fix excess dma channel usage | *f59421334e
mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data * |c83bfc082b
Merge1487b29030
("ACPI: processor: Fix evaluating _PDC method when running as Xen dom0") into android12-5.10-lts |\| | *1487b29030
ACPI: processor: Fix evaluating _PDC method when running as Xen dom0 | *ee22417f82
drm: msm: adreno: Disable preemption on Adreno 510 | *00f02bb8cb
drm/msm/adreno: drop bogus pm_runtime_set_active() | *f9ba5962cc
drm/msm/adreno: Defer enabling runpm until hw_init() | *9a3a907cf6
media: max9286: Free control handler | *f8d28cecf2
drm/bridge: adv7533: Fix adv7533_mode_valid for adv7533 and adv7535 | *076cdba34d
firmware: qcom_scm: Clear download bit during reboot | *4362444dca
media: bdisp: Add missing check for create_workqueue | *a9b9ea0e63
x86/MCE/AMD: Use an u64 for bank_map | *a8504f9a13
ARM: dts: qcom: ipq8064: Fix the PCI I/O port range | *7d731faebc
ARM: dts: qcom: ipq8064: reduce pci IO size to 64K | *870644bf1b
ARM: dts: qcom: ipq4019: Fix the PCI I/O port range | *4585591295
arm64: dts: qcom: msm8996: Fix the PCI I/O port range | *b6082e8caa
arm64: dts: qcom: ipq8074: Fix the PCI I/O port range | *5f6302ab78
arm64: dts: qcom: msm8998: Fix the PCI I/O port range | *212352542d
arm64: dts: qcom: sdm845: Fix the PCI I/O port range | *eb9c5b383e
arm64: dts: qcom: sdm845: correct dynamic power coefficients | *94e6f7e757
arm64: dts: qcom: msm8998: Fix stm-stimulus-base reg name | *e951bdaa65
EDAC/skx: Fix overflows on the DRAM row address mapping arrays | *6e6c27b2fb
drm/msm/disp/dpu: check for crtc enable rather than crtc active to release shared resources | *9c4c9010ae
arm64: dts: renesas: r8a774c0: Remove bogus voltages from OPP table | *fbfca9b839
arm64: dts: renesas: r8a77990: Remove bogus voltages from OPP table | *08310f8109
soc: ti: pm33xx: Fix refcount leak in am33xx_pm_probe | *a1e6a4161a
soc: ti: pm33xx: Enable basic PM runtime support for genpd | *e33f374d65
drm/probe-helper: Cancel previous job before starting new one | *67f07215eb
drm/vgem: add missing mutex_destroy | *ae784c3ed3
drm/rockchip: Drop unbalanced obj unref | *056a1217cf
erofs: fix potential overflow calculating xattr_isize | *7a4579cd6e
erofs: stop parsing non-compact HEAD index if clusterofs is invalid | *e5ec129158
tpm, tpm_tis: Claim locality when interrupts are reenabled on resume | *933bfc5ad2
tpm, tpm: Implement usage counter for locality | *140735c46d
tpm, tpm_tis: Claim locality before writing interrupt registers | *35ca7f6252
tpm, tpm_tis: Disable interrupts if tpm_tis_probe_irq() failed | *cbb1dd2705
tpm, tpm_tis: Claim locality before writing TPM_INT_ENABLE register | *c62a2331ab
tpm, tpm_tis: Do not skip reset of original interrupt vector | *3ec77043a2
selinux: ensure av_permissions.h is built when needed | *fea3144639
selinux: fix Makefile dependencies of flask.h | *0c29f14cf4
selftests/resctrl: Check for return value after write_schemata() | *4075fbcde4
selftests/resctrl: Return NULL if malloc_and_init_memory() did not alloc mem | *d0653cc6e0
rcu: Fix missing TICK_DEP_MASK_RCU_EXP dependency check | *d1ab8b54b2
clk: rockchip: rk3399: allow clk_cifout to force clk_cifout_src to reparent * |6f849f24da
Mergee0dd13b49d
("wifi: rtl8xxxu: RTL8192EU always needs full init") into android12-5.10-lts |\| | *e0dd13b49d
wifi: rtl8xxxu: RTL8192EU always needs full init | *0fd9b0f611
mailbox: zynqmp: Fix typo in IPI documentation | *63314371eb
mailbox: zynqmp: Fix IPI isr handling | *bdbf104b1c
md/raid10: fix null-ptr-deref in raid10_sync_request | *8a89d36a07
nilfs2: fix infinite loop in nilfs_mdt_get_block() | *7c3e662048
nilfs2: do not write dirty data after degenerating to read-only | *e4b5264422
parisc: Fix argument pointer in real64_call_asm() | *be649ea153
sound/oss/dmasound: fix build when drivers are mixed =y/=m | *b8f444a4fa
ubifs: Free memory for tmpfile name | *5b4b6cb724
ubi: Fix return value overwrite issue in try_write_vid_and_data() | *66e9f2fb3e
ubifs: Fix memleak when insert_old_idx() failed | *a4904c56fc
Revert "ubifs: dirty_cow_znode: Fix memleak in error handling path" | *87d98984b0
iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE | *db8b34ffb2
i2c: omap: Fix standard mode false ACK readings | *2b00b2a0e6
writeback, cgroup: fix null-ptr-deref write in bdi_split_work_to_wbs | *1b0df44753
relayfs: fix out-of-bounds access in relay_file_read | *e28df70df0
KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted | *680c419d0d
reiserfs: Add security prefix to xattr name in reiserfs_security_write() | *eb18bc5a86
rcu: Avoid stack overflow due to __rcu_irq_enter_check_tick() being kprobe-ed | *0a89d4a075
crypto: safexcel - Cleanup ring IRQ workqueues on load failure | *ff86deaba1
crypto: api - Demote BUG_ON() in crypto_unregister_alg() to a WARN_ON() | *1c99f65d6a
ring-buffer: Sync IRQ works before buffer destruction | *dda1372c8d
pwm: meson: Fix g12a ao clk81 name | *c1cabb10e0
pwm: meson: Fix axg ao mux parents | *fcd2da2e6b
kheaders: Use array declaration instead of char | *1b633da2fe
ipmi: fix SSIF not responding under certain cond. | *6d5993d569
ipmi:ssif: Add send_retries increment * |d7203e0307
Merge47e61cadc7
("MIPS: fw: Allow firmware to pass a empty env") into android12-5.10-lts |\| | *47e61cadc7
MIPS: fw: Allow firmware to pass a empty env | *2884595932
tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem | *29b89908fd
xhci: fix debugfs register accesses while suspended | *a863ac03fa
staging: iio: resolver: ads1210: fix config mode | *c8714ddf3c
ext4: use ext4_journal_start/stop for fast commit transactions | *701a822076
blk-crypto: make blk_crypto_evict_key() more robust | *5072008bef
blk-crypto: make blk_crypto_evict_key() return void | *874bdf43b4
blk-mq: release crypto keyslot before reporting I/O complete | *68494eb75f
perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into sysconf(__SC_THREAD_STACK_MIN_VALUE) | *7c5811b95c
posix-cpu-timers: Implement the missing timer_wait_running callback | *aed39acf7e
hwmon: (adt7475) Use device_property APIs when configuring polarity | *b009006887
hwmon: (k10temp) Check range scale when CUR_TEMP register is read-write | *a71cb92ec4
USB: dwc3: fix runtime pm imbalance on unbind | *27dc207c38
USB: dwc3: fix runtime pm imbalance on probe errors | *b978269dda
PCI: qcom: Fix the incorrect register usage in v2.7.0 config | *2f31633da8
PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock | *5434c7019d
wireguard: timers: cast enum limits members to int in prints | *69fdbb334d
asm-generic/io.h: suppress endianness warnings for readq() and writeq() | *925cbb7253
ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750 | *f5e96af71e
iio: adc: palmas_gpadc: fix NULL dereference on rmmod | *8aa079c2fd
driver core: Don't require dynamic_debug for initcall_debug probe timing | *f964a00386
USB: serial: option: add UNISOC vendor and TOZED LT70C product | *c0e9214223
x86/fpu: Prevent FPU state corruption | *98cfbad52f
bluetooth: Perform careful capability checks in hci_sock_ioctl() | *dc110b20f4
drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var | *549825602e
wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies() | *1dd95b2109
KVM: arm64: Fix buffer overflow in kvm_arm_set_fw_reg() | *0f29d0e8fc
counter: 104-quad-8: Fix race condition between FLAG and CNTR reads | *d4a895e924
seccomp: Move copy_seccomp() to no failure path. * |571879dd5f
Revert "sched/fair: Detect capacity inversion" * |ce3ecd63bf
Revert "sched/fair: Consider capacity inversion in util_fits_cpu()" * |652a7f2c7e
Revert "sched/uclamp: Fix a uninitialized variable warnings" * |e1be343429
Revert "sched/fair: Fixes for capacity inversion detection" * |4c20c2c837
Merge 5.10.179 into android12-5.10-lts |\| | *f1b32fda06
Linux 5.10.179 | *0367bf3f4a
ASN.1: Fix check for strdup() success | *4ab5f8f9d0
ASoC: fsl_asrc_dma: fix potential null-ptr-deref | *42604b4ad5
iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger() | *155b2586de
pwm: hibvt: Explicitly set .polarity in .get_state() | *1c3a121137
pwm: iqs620a: Explicitly set .polarity in .get_state() | *b28079807d
pwm: meson: Explicitly set .polarity in .get_state() | *f69112de70
sctp: Call inet6_destroy_sock() via sk->sk_destruct(). | *7da54ddc04
dccp: Call inet6_destroy_sock() via sk->sk_destruct(). | *04d393c4bb
inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy(). | *b1f06ab985
tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct(). | *0e7b5e1020
udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM). | *05cf34a2b6
ext4: fix use-after-free in ext4_xattr_set_entry | *c75711396c
ext4: remove duplicate definition of ext4_xattr_ibody_inline_set() | *9400206d9d
Revert "ext4: fix use-after-free in ext4_xattr_set_entry" | *81775ab858
fuse: fix deadlock between atomic O_TRUNC and page invalidation | *03cefde986
fuse: always revalidate rename target dentry | *42dfdbd4dc
fuse: fix attr version comparison in fuse_read_update_size() | *0078a1667c
fuse: check s_root when destroying sb | *6d0d67b05f
virtiofs: split requests that exceed virtqueue size | *cf08dc7916
virtiofs: clean up error handling in virtio_fs_get_tree() | *e220438d1e
purgatory: fix disabling debug info | *37df709706
docs: futex: Fix kernel-doc references after code split-up preparation | *77748b0a04
MIPS: Define RUNTIME_DISCARD_EXIT in LD script | *4735b6f74f
sched/fair: Fixes for capacity inversion detection | *89ad8a672f
sched/uclamp: Fix a uninitialized variable warnings | *09129798a6
sched/fair: Consider capacity inversion in util_fits_cpu() | *30f04dd56d
sched/fair: Detect capacity inversion | *b18cbd359d
sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit condition | *41a880740c
sched/uclamp: Make cpu_overutilized() use util_fits_cpu() | *07750955e9
sched/uclamp: Make asym_fits_capacity() use util_fits_cpu() | *2fd1c194e6
sched/uclamp: Make select_idle_capacity() use util_fits_cpu() | *8ca2bf63d9
sched/uclamp: Fix fits_capacity() check in feec() | *5cb1a56ced
sched/uclamp: Make task_fits_capacity() use util_fits_cpu() | *2523d9d7bb
mm/khugepaged: check again on anon uffd-wp during isolation | *651b0bf43d
mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25 | *c61928fcca
kernel/sys.c: fix and improve control flow in __sys_setres[ug]id() | *e10a6d88ae
memstick: fix memory leak if card device is never registered | *2c90ef3715
nilfs2: initialize unused bytes in segment summary blocks | *09daff9c3c
iio: light: tsl2772: fix reading proximity-diodes from device tree | *77ac8f2ad4
xfs: drop submit side trans alloc for append ioends | *a4e800a7bd
powerpc/doc: Fix htmldocs errors | *c215c63681
xen/netback: use same error messages for same errors | *0c9cbfc951
nvme-tcp: fix a possible UAF when failing to allocate an io queue | *8c746b6650
s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling | *a36246a748
net: dsa: b53: mmap: add phy ops | *b33f28ea45
scsi: core: Improve scsi_vpd_inquiry() checks | *24ddcc6a63
scsi: megaraid_sas: Fix fw_crash_buffer_show() | *01bd481b1b
selftests: sigaltstack: fix -Wuninitialized | *8b44a83a16
Input: i8042 - add quirk for Fujitsu Lifebook A574/H | *37882b203a
f2fs: Fix f2fs_truncate_partial_nodes ftrace event | *9a8dbfd7f3
e1000e: Disable TSO on i219-LM card to increase speed | *b1281d0088
bpf: Fix incorrect verifier pruning due to missing register precision taints | *b085b5787b
mlxsw: pci: Fix possible crash during initialization | *c972851d38
net: rpl: fix rpl header size calculation | *b6b06c5ee3
mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next() | *880c09bc2f
i40e: fix i40e_setup_misc_vector() error handling | *72df55d3dc
i40e: fix accessing vsi->active_filters without holding lock | *381110d061
netfilter: nf_tables: fix ifdef to also consider nf_tables=m | *6758a51ef3
sfc: Fix use-after-free due to selftest_work | *06a72bbf0d
sfc: Split STATE_READY in to STATE_NET_DOWN and STATE_NET_UP. | *b6dd232f63
virtio_net: bugfix overflow inside xdp_linearize_page() | *ddcf35deb8
net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg | *8e73952957
regulator: fan53555: Explicitly include bits header | *3224458030
netfilter: br_netfilter: fix recent physdev match breakage | *08b78037c4
arm64: dts: imx8mm-evk: correct pmic clock source | *2c06e904c2
arm64: dts: meson-g12-common: specify full DMC range | *b33dbd06ac
arm64: dts: qcom: ipq8074-hk01: enable QMP device, not the PHY node | *e662521ec7
ARM: dts: rockchip: fix a typo error for rk3288 spdif node * |b6b9dff07b
Merge branch android12-5.10 into android12-5.10-lts * |49df5be923
Revert "ASoC: hdac_hdmi: use set_stream() instead of set_tdm_slots()" * |a406acdee0
ANDROID: preserve CRC for xhci symbols * |a4023d8fc3
Revert "ipv4: shrink netns_ipv4 with sysctl conversions" * |e2f3aab65b
Revert "tcp: convert elligible sysctls to u8" * |036fa20734
Revert "tcp: restrict net.ipv4.tcp_app_win" * |2d6a4ad08c
Merge 5.10.178 into android12-5.10-lts |/ *791a854ae5
Linux 5.10.178 *f177b382c3
sysctl: Fix data-races in proc_dou8vec_minmax(). *56314b90fd
panic, kexec: make __crash_kexec() NMI safe *d425f34821
kexec: turn all kexec_mutex acquisitions into trylocks *784b6ba15e
kexec: move locking into do_kexec_load *0b077b22ea
riscv: Handle zicsr/zifencei issues between clang and binutils *c36a251011
kbuild: check CONFIG_AS_IS_LLVM instead of LLVM_IAS *d5f67f6d4e
kbuild: Switch to 'f' variants of integrated assembler flag *83f55e6f29
kbuild: check the minimum assembler version in Kconfig *6facabb4d0
coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug *7b78445bce
watchdog: sbsa_wdog: Make sure the timeout programming is within the limits *10b7a33c5d
i2c: ocores: generate stop condition after timeout in polling mode *b4210b10dc
x86/rtc: Remove __init for runtime functions *ba4a2f6d99
sched/fair: Fix imbalance overflow *68387ae3b6
sched/fair: Move calculate of avg_load to a better location *ccbec01cc9
powerpc/papr_scm: Update the NUMA distance table for the target node *453b3188be
powerpc/pseries: Add support for FORM2 associativity *498618e0a1
powerpc/pseries: Add a helper for form1 cpu distance *18ce785eff
powerpc/pseries: Consolidate different NUMA distance update code paths *f2ae0eb96b
powerpc/pseries: Rename TYPE1_AFFINITY to FORM1_AFFINITY *f6d8a3a2ea
powerpc/pseries: rename min_common_depth to primary_domain_index *5abf8af8df
ubi: Fix deadlock caused by recursively holding work_sem *33611d4a81
mtd: ubi: wl: Fix a couple of kernel-doc issues *0279e82e14
ubi: Fix failure attaching when vid_hdr offset equals to (sub)page size *37a3cf4abc
cgroup/cpuset: Wake up cpuset_attach_wq tasks in cpuset_cancel_attach() *10bda0ec31
x86/PCI: Add quirk for AMD XHCI controller that loses MSI-X state in D3hot *176d7345b8
scsi: ses: Handle enclosure with just a primary component gracefully *cf22c98bcb
net: sfp: initialize sfp->i2c_block_size at sfp allocation *2a4835b8ed
riscv: add icache flush for nommu sigreturn trampoline *c76e79e526
asymmetric_keys: log on fatal failures in PE/pkcs7 *5de2e1f5e2
verify_pefile: relax wrapper length check *e4b9f0bf91
drm: panel-orientation-quirks: Add quirk for Lenovo Yoga Book X90F *9f0ee9ed54
efi: sysfb_efi: Add quirk for Lenovo Yoga Book X91F/L *e1f80b4dfa
i2c: imx-lpi2c: clean rx/tx buffers upon new message *81c30f89b9
wifi: mwifiex: mark OF related data as maybe unused *ab39582f30
power: supply: cros_usbpd: reclassify "default case!" as debug *6de0d0699f
libbpf: Fix single-line struct definition output in btf_dump *1bec9da233
net: macb: fix a memory corruption in extended buffer descriptor mode *7d8c844b33
udp6: fix potential access to stale information *d1b9b31916
RDMA/core: Fix GID entry ref leak when create_ah fails *79b28f4221
sctp: fix a potential overflow in sctp_ifwdtsn_skip *3814d211ff
net: qrtr: Fix an uninit variable access bug in qrtr_tx_resume() *dad92d8ada
qlcnic: check pci_reset_function result *4a519731ec
drm/armada: Fix a potential double free in an error handling path *a069d4d98c
tcp: restrict net.ipv4.tcp_app_win *cc9f9a49f5
tcp: convert elligible sysctls to u8 *f662a0786d
ipv4: shrink netns_ipv4 with sysctl conversions *389dab6142
sysctl: add proc_dou8vec_minmax() *8a1fdb3545
niu: Fix missing unwind goto in niu_alloc_channels() *9266e939d7
9p/xen : Fix use after free bug in xen_9pfs_front_remove due to race condition *ae11498851
RDMA/cma: Allow UD qp_type to join multicast only *5e567fd296
IB/mlx5: Add support for 400G_8X lane speed *a1d2fb5d13
IB/mlx5: Add support for NDR link speed *8a886f01b8
clk: sprd: set max_register according to mapping range *6e2845284b
mtd: rawnand: stm32_fmc2: use timings.mode instead of checking tRC_min *9e946e4e8c
mtd: rawnand: stm32_fmc2: remove unsupported EDO mode *6b0e719192
mtd: rawnand: meson: fix bitmask for length in command word *441e57ff87
mtdblock: tolerate corrected bit-flips *0d07ea8d38
fbmem: Reject FB_ACTIVATE_KD_TEXT from userspace *5635e69406
btrfs: fix fast csum implementation detection *3576e08f19
btrfs: print checksum type and implementation at mount time *f7ec5ca433
Bluetooth: Fix race condition in hidp_session_thread *d9ba36c22a
Bluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp} *8533fe8645
ALSA: hda/sigmatel: fix S/PDIF out on Intel D*45* motherboards *8f6a20a4f4
ALSA: firewire-tascam: add missing unwind goto in snd_tscm_stream_start_duplex() *69108a8a45
ALSA: i2c/cs8427: fix iec958 mixer control deactivation *e63a515d11
ALSA: hda/sigmatel: add pin overrides for Intel DP45SG motherboard *df4af0ddf7
ALSA: emu10k1: fix capture interrupt handler unlinking *14e90335bc
Revert "pinctrl: amd: Disable and mask interrupts on resume" *59dc9767ce
bpftool: Print newline before '}' for struct with padding only fields *2765aca637
ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown *a412ba6b6c
Revert "media: ti: cal: fix possible memory leak in cal_ctx_create()" *2d96c8dca9
drm/bridge: lt9611: Fix PLL being unable to lock *a2773afc81
selftests: intel_pstate: ftime() is deprecated *ea8c42b3b6
mm/swap: fix swap_info_struct race between swapoff and get_swap_pages() *5a74837809
ring-buffer: Fix race while reader and writer are on the same page *c1bbe926a1
drm/nouveau/disp: Support more modes by checking with lower bpc *8250f7f7ae
drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path *acbbfdba9c
ASoC: hdac_hdmi: use set_stream() instead of set_tdm_slots() *6e36373aa5
tracing: Free error logs of tracing instances *9c5df2f14e
can: isotp: isotp_ops: fix poll() to not report false EPOLLOUT events *70caa596d1
can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access *f018ef34c4
ftrace: Fix issue that 'direct->addr' not restored in modify_ftrace_direct() *eadcad0a47
ftrace: Mark get_lock_parent_ip() __always_inline *9470fc63ab
perf/core: Fix the same task check in perf_event_set_output *499757ad33
scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param() *4bfdead174
iio: adc: ad7791: fix IRQ flags *14f9ff7857
ALSA: hda/realtek: Add quirk for Clevo X370SNW *1f3b8c3b04
dt-bindings: serial: renesas,scif: Fix 4th IRQ for 4-IRQ SCIFs *3dbee84bf9
nilfs2: fix sysfs interface lifetime *f32297dba3
nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread() *a17bed82c0
tty: serial: fsl_lpuart: avoid checking for transfer complete when UARTCTRL_SBK is asserted in lpuart32_tx_empty *25eff5e7f7
tty: serial: sh-sci: Fix Rx on RZ/G2L SCI *72a3e4fa88
tty: serial: sh-sci: Fix transmit end interrupt handler *741d73fc57
iio: light: cm32181: Unregister second I2C client if present *58bf30479a
iio: dac: cio-dac: Fix max DAC write value check for 12-bit *f47659f1e9
iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip *52a003870e
USB: serial: option: add Quectel RM500U-CN modem *e6655d4837
USB: serial: option: add Telit FE990 compositions *9d1f2a6b8d
usb: typec: altmodes/displayport: Fix configure initial pin assignment *4be2b71e9d
USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs *ec20260950
xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu *b4b4f17aa4
usb: xhci: tegra: fix sleep in atomic call *07216da8fb
NFSD: callback request does not use correct credential for AUTH_SYS *a3c4aa48e5
sunrpc: only free unix grouplist after RCU settles *890517a4a2
net: stmmac: fix up RX flow hash indirection table when setting channels *bdbbd3fa58
net: ethernet: ti: am65-cpsw: Fix mdio cleanup in probe *d8c8476c14
gpio: davinci: Add irq chip flag to skip set wake *605b056d63
ipv6: Fix an uninit variable access bug in __ip6_make_skb() *ff2565fb8f
net: qrtr: Do not do DEL_SERVER broadcast after DEL_CLIENT *b4b6dfad41
sctp: check send stream number after wait_for_sndbuf *efda95cebf
net: don't let netpoll invoke NAPI if in xmit context *ec81049f09
icmp: guard against too small mtu *98a9cd82c5
net: qrtr: Fix a refcount bug in qrtr_recvmsg() *94c53d2949
net: qrtr: combine nameservice into main module *3fe2051544
wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta *2951229ee7
KVM: s390: pv: fix external interruption loop not always detected *b43a8939f1
pwm: sprd: Explicitly set .polarity in .get_state() *d59b83494d
pwm: cros-ec: Explicitly set .polarity in .get_state() *176c6b4889
Drivers: vmbus: Check for channel allocation before looking up relids *c51b336bd9
gpio: GPIO_REGMAP: select REGMAP instead of depending on it Change-Id: I6a8130fdb5232ff7293bdb1bb84c5dc6dd2f4d47 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
e424229872
@ -894,10 +894,6 @@
|
||||
|
||||
debugpat [X86] Enable PAT debugging
|
||||
|
||||
decnet.addr= [HW,NET]
|
||||
Format: <area>[,<node>]
|
||||
See also Documentation/networking/decnet.rst.
|
||||
|
||||
default_hugepagesz=
|
||||
[HW] The size of the default HugeTLB page. This is
|
||||
the size represented by the legacy /proc/ hugepages
|
||||
|
@ -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
|
||||
|
@ -24,11 +24,8 @@ String Conversions
|
||||
.. kernel-doc:: lib/vsprintf.c
|
||||
:export:
|
||||
|
||||
.. kernel-doc:: include/linux/kernel.h
|
||||
:functions: kstrtol
|
||||
|
||||
.. kernel-doc:: include/linux/kernel.h
|
||||
:functions: kstrtoul
|
||||
.. kernel-doc:: include/linux/kstrtox.h
|
||||
:functions: kstrtol kstrtoul
|
||||
|
||||
.. kernel-doc:: lib/kstrtox.c
|
||||
:export:
|
||||
|
@ -74,7 +74,7 @@ properties:
|
||||
- description: Error interrupt
|
||||
- description: Receive buffer full interrupt
|
||||
- description: Transmit buffer empty interrupt
|
||||
- description: Transmit End interrupt
|
||||
- description: Break interrupt
|
||||
- items:
|
||||
- description: Error interrupt
|
||||
- description: Receive buffer full interrupt
|
||||
@ -89,7 +89,7 @@ properties:
|
||||
- const: eri
|
||||
- const: rxi
|
||||
- const: txi
|
||||
- const: tei
|
||||
- const: bri
|
||||
- items:
|
||||
- const: eri
|
||||
- const: rxi
|
||||
|
@ -50,7 +50,9 @@ properties:
|
||||
description: TDM TX current sense time slot.
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
# The codec has a single DAI, the #sound-dai-cells=<1>; case is left in for backward
|
||||
# compatibility but is deprecated.
|
||||
enum: [0, 1]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@ -67,7 +69,7 @@ examples:
|
||||
codec: codec@4c {
|
||||
compatible = "ti,tas2562";
|
||||
reg = <0x4c>;
|
||||
#sound-dai-cells = <1>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <14>;
|
||||
shutdown-gpios = <&gpio1 15 0>;
|
||||
|
@ -46,7 +46,9 @@ properties:
|
||||
description: TDM TX voltage sense time slot.
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
# The codec has a single DAI, the #sound-dai-cells=<1>; case is left in for backward
|
||||
# compatibility but is deprecated.
|
||||
enum: [0, 1]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@ -63,7 +65,7 @@ examples:
|
||||
codec: codec@38 {
|
||||
compatible = "ti,tas2764";
|
||||
reg = <0x38>;
|
||||
#sound-dai-cells = <1>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <14>;
|
||||
reset-gpios = <&gpio1 15 0>;
|
||||
|
@ -52,7 +52,9 @@ properties:
|
||||
- 1 # Falling edge
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
# The codec has a single DAI, the #sound-dai-cells=<1>; case is left in for backward
|
||||
# compatibility but is deprecated.
|
||||
enum: [0, 1]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@ -69,7 +71,7 @@ examples:
|
||||
codec: codec@41 {
|
||||
compatible = "ti,tas2770";
|
||||
reg = <0x41>;
|
||||
#sound-dai-cells = <1>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <14>;
|
||||
reset-gpio = <&gpio1 15 0>;
|
||||
|
@ -59,7 +59,7 @@ properties:
|
||||
description:
|
||||
size of memory intended as internal memory for endpoints
|
||||
buffers expressed in KB
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
$ref: /schemas/types.yaml#/definitions/uint16
|
||||
|
||||
cdns,phyrst-a-enable:
|
||||
description: Enable resetting of PHY if Rx fail is detected
|
||||
|
@ -1358,7 +1358,7 @@ Mutex API reference
|
||||
Futex API reference
|
||||
===================
|
||||
|
||||
.. kernel-doc:: kernel/futex.c
|
||||
.. kernel-doc:: kernel/futex/core.c
|
||||
:internal:
|
||||
|
||||
Further reading
|
||||
|
@ -1,243 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
=========================================
|
||||
Linux DECnet Networking Layer Information
|
||||
=========================================
|
||||
|
||||
1. Other documentation....
|
||||
==========================
|
||||
|
||||
- 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:
|
||||
|
||||
- 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>
|
||||
|
@ -46,7 +46,6 @@ Contents:
|
||||
cdc_mbim
|
||||
dccp
|
||||
dctcp
|
||||
decnet
|
||||
dns_resolver
|
||||
driver
|
||||
eql
|
||||
|
105
Documentation/powerpc/associativity.rst
Normal file
105
Documentation/powerpc/associativity.rst
Normal file
@ -0,0 +1,105 @@
|
||||
============================
|
||||
NUMA resource associativity
|
||||
============================
|
||||
|
||||
Associativity represents the groupings of the various platform resources into
|
||||
domains of substantially similar mean performance relative to resources outside
|
||||
of that domain. Resources subsets of a given domain that exhibit better
|
||||
performance relative to each other than relative to other resources subsets
|
||||
are represented as being members of a sub-grouping domain. This performance
|
||||
characteristic is presented in terms of NUMA node distance within the Linux kernel.
|
||||
From the platform view, these groups are also referred to as domains.
|
||||
|
||||
PAPR interface currently supports different ways of communicating these resource
|
||||
grouping details to the OS. These are referred to as Form 0, Form 1 and Form2
|
||||
associativity grouping. Form 0 is the oldest format and is now considered deprecated.
|
||||
|
||||
Hypervisor indicates the type/form of associativity used via "ibm,architecture-vec-5 property".
|
||||
Bit 0 of byte 5 in the "ibm,architecture-vec-5" property indicates usage of Form 0 or Form 1.
|
||||
A value of 1 indicates the usage of Form 1 associativity. For Form 2 associativity
|
||||
bit 2 of byte 5 in the "ibm,architecture-vec-5" property is used.
|
||||
|
||||
Form 0
|
||||
------
|
||||
Form 0 associativity supports only two NUMA distances (LOCAL and REMOTE).
|
||||
|
||||
Form 1
|
||||
------
|
||||
With Form 1 a combination of ibm,associativity-reference-points, and ibm,associativity
|
||||
device tree properties are used to determine the NUMA distance between resource groups/domains.
|
||||
|
||||
The “ibm,associativity” property contains a list of one or more numbers (domainID)
|
||||
representing the resource’s platform grouping domains.
|
||||
|
||||
The “ibm,associativity-reference-points” property contains a list of one or more numbers
|
||||
(domainID index) that represents the 1 based ordinal in the associativity lists.
|
||||
The list of domainID indexes represents an increasing hierarchy of resource grouping.
|
||||
|
||||
ex:
|
||||
{ primary domainID index, secondary domainID index, tertiary domainID index.. }
|
||||
|
||||
Linux kernel uses the domainID at the primary domainID index as the NUMA node id.
|
||||
Linux kernel computes NUMA distance between two domains by recursively comparing
|
||||
if they belong to the same higher-level domains. For mismatch at every higher
|
||||
level of the resource group, the kernel doubles the NUMA distance between the
|
||||
comparing domains.
|
||||
|
||||
Form 2
|
||||
-------
|
||||
Form 2 associativity format adds separate device tree properties representing NUMA node distance
|
||||
thereby making the node distance computation flexible. Form 2 also allows flexible primary
|
||||
domain numbering. With numa distance computation now detached from the index value in
|
||||
"ibm,associativity-reference-points" property, Form 2 allows a large number of primary domain
|
||||
ids at the same domainID index representing resource groups of different performance/latency
|
||||
characteristics.
|
||||
|
||||
Hypervisor indicates the usage of FORM2 associativity using bit 2 of byte 5 in the
|
||||
"ibm,architecture-vec-5" property.
|
||||
|
||||
"ibm,numa-lookup-index-table" property contains a list of one or more numbers representing
|
||||
the domainIDs present in the system. The offset of the domainID in this property is
|
||||
used as an index while computing numa distance information via "ibm,numa-distance-table".
|
||||
|
||||
prop-encoded-array: The number N of the domainIDs encoded as with encode-int, followed by
|
||||
N domainID encoded as with encode-int
|
||||
|
||||
For ex:
|
||||
"ibm,numa-lookup-index-table" = {4, 0, 8, 250, 252}. The offset of domainID 8 (2) is used when
|
||||
computing the distance of domain 8 from other domains present in the system. For the rest of
|
||||
this document, this offset will be referred to as domain distance offset.
|
||||
|
||||
"ibm,numa-distance-table" property contains a list of one or more numbers representing the NUMA
|
||||
distance between resource groups/domains present in the system.
|
||||
|
||||
prop-encoded-array: The number N of the distance values encoded as with encode-int, followed by
|
||||
N distance values encoded as with encode-bytes. The max distance value we could encode is 255.
|
||||
The number N must be equal to the square of m where m is the number of domainIDs in the
|
||||
numa-lookup-index-table.
|
||||
|
||||
For ex:
|
||||
ibm,numa-lookup-index-table = <3 0 8 40>;
|
||||
ibm,numa-distace-table = <9>, /bits/ 8 < 10 20 80 20 10 160 80 160 10>;
|
||||
|
||||
::
|
||||
|
||||
| 0 8 40
|
||||
--|------------
|
||||
|
|
||||
0 | 10 20 80
|
||||
|
|
||||
8 | 20 10 160
|
||||
|
|
||||
40| 80 160 10
|
||||
|
||||
A possible "ibm,associativity" property for resources in node 0, 8 and 40
|
||||
|
||||
{ 3, 6, 7, 0 }
|
||||
{ 3, 6, 9, 8 }
|
||||
{ 3, 6, 7, 40}
|
||||
|
||||
With "ibm,associativity-reference-points" { 0x3 }
|
||||
|
||||
"ibm,lookup-index-table" helps in having a compact representation of distance matrix.
|
||||
Since domainID can be sparse, the matrix of distances can also be effectively sparse.
|
||||
With "ibm,lookup-index-table" we can achieve a compact representation of
|
||||
distance information.
|
@ -7,6 +7,7 @@ powerpc
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
associativity
|
||||
booting
|
||||
bootwrapper
|
||||
cpu_families
|
||||
|
@ -704,7 +704,7 @@ ref
|
||||
no-jd
|
||||
BIOS setup but without jack-detection
|
||||
intel
|
||||
Intel DG45* mobos
|
||||
Intel D*45* mobos
|
||||
dell-m6-amic
|
||||
Dell desktops/laptops with analog mics
|
||||
dell-m6-dmic
|
||||
|
@ -1400,7 +1400,7 @@ Riferimento per l'API dei Mutex
|
||||
Riferimento per l'API dei Futex
|
||||
===============================
|
||||
|
||||
.. kernel-doc:: kernel/futex.c
|
||||
.. kernel-doc:: kernel/futex/core.c
|
||||
:internal:
|
||||
|
||||
Approfondimenti
|
||||
|
@ -303,7 +303,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
|
||||
|
@ -4905,13 +4905,6 @@ F: include/linux/tfrc.h
|
||||
F: include/uapi/linux/dccp.h
|
||||
F: net/dccp/
|
||||
|
||||
DECnet NETWORK LAYER
|
||||
L: linux-decnet-user@lists.sourceforge.net
|
||||
S: Orphan
|
||||
W: http://linux-decnet.sourceforge.net
|
||||
F: Documentation/networking/decnet.rst
|
||||
F: net/decnet/
|
||||
|
||||
DECSTATION PLATFORM SUPPORT
|
||||
M: "Maciej W. Rozycki" <macro@linux-mips.org>
|
||||
L: linux-mips@vger.kernel.org
|
||||
|
14
Makefile
14
Makefile
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 10
|
||||
SUBLEVEL = 177
|
||||
SUBLEVEL = 185
|
||||
EXTRAVERSION =
|
||||
NAME = Dare mighty things
|
||||
|
||||
@ -596,8 +596,10 @@ endif
|
||||
ifneq ($(GCC_TOOLCHAIN),)
|
||||
CLANG_FLAGS += --gcc-toolchain=$(GCC_TOOLCHAIN)
|
||||
endif
|
||||
ifneq ($(LLVM_IAS),1)
|
||||
CLANG_FLAGS += -no-integrated-as
|
||||
ifeq ($(LLVM_IAS),1)
|
||||
CLANG_FLAGS += -fintegrated-as
|
||||
else
|
||||
CLANG_FLAGS += -fno-integrated-as
|
||||
endif
|
||||
CLANG_FLAGS += -Werror=unknown-warning-option
|
||||
KBUILD_CFLAGS += $(CLANG_FLAGS)
|
||||
@ -827,6 +829,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
|
||||
@ -870,7 +876,7 @@ else
|
||||
DEBUG_CFLAGS += -g
|
||||
endif
|
||||
|
||||
ifeq ($(LLVM_IAS),1)
|
||||
ifdef CONFIG_AS_IS_LLVM
|
||||
KBUILD_AFLAGS += -g
|
||||
else
|
||||
KBUILD_AFLAGS += -Wa,-gdwarf-2
|
||||
|
@ -179,7 +179,7 @@ codec: wm8960@1a {
|
||||
compatible = "wlf,wm8960";
|
||||
reg = <0x1a>;
|
||||
clocks = <&pmu_system_controller 0>;
|
||||
clock-names = "MCLK1";
|
||||
clock-names = "mclk";
|
||||
wlf,shared-lrclk;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
|
@ -609,6 +609,22 @@ &i2c3 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&mcspi1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mcspi2 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mcspi3 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&mcspi4 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&usb_otg_hs {
|
||||
interface-type = <0>;
|
||||
usb-phy = <&usb2_phy>;
|
||||
|
@ -414,8 +414,8 @@ pcie0: pci@40000000 {
|
||||
#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";
|
||||
|
@ -465,8 +465,8 @@ pcie0: pci@1b500000 {
|
||||
#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";
|
||||
@ -516,8 +516,8 @@ pcie1: pci@1b700000 {
|
||||
#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";
|
||||
@ -567,8 +567,8 @@ pcie2: pci@1b900000 {
|
||||
#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";
|
||||
|
@ -959,7 +959,7 @@ wdt: watchdog@ff800000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spdif: sound@ff88b0000 {
|
||||
spdif: sound@ff8b0000 {
|
||||
compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
|
||||
reg = <0x0 0xff8b0000 0x0 0x10000>;
|
||||
#sound-dai-cells = <0>;
|
||||
|
@ -583,7 +583,7 @@ csis0: csis@fa600000 {
|
||||
interrupts = <29>;
|
||||
clocks = <&clocks CLK_CSIS>,
|
||||
<&clocks SCLK_CSIS>;
|
||||
clock-names = "clk_csis",
|
||||
clock-names = "csis",
|
||||
"sclk_csis";
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
|
@ -284,6 +284,88 @@ pins2 {
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1102,7 +1102,7 @@ pins {
|
||||
};
|
||||
};
|
||||
|
||||
sai2a_sleep_pins_c: sai2a-2 {
|
||||
sai2a_sleep_pins_c: sai2a-sleep-2 {
|
||||
pins {
|
||||
pinmux = <STM32_PINMUX('D', 13, ANALOG)>, /* SAI2_SCK_A */
|
||||
<STM32_PINMUX('D', 11, ANALOG)>, /* SAI2_SD_A */
|
||||
|
@ -132,6 +132,7 @@ L2: cache-controller@2c0f0000 {
|
||||
reg = <0x2c0f0000 0x1000>;
|
||||
interrupts = <0 84 4>;
|
||||
cache-level = <2>;
|
||||
cache-unified;
|
||||
};
|
||||
|
||||
pmu {
|
||||
|
@ -672,7 +672,6 @@ CONFIG_DRM_IMX_LDB=m
|
||||
CONFIG_DRM_IMX_HDMI=m
|
||||
CONFIG_DRM_ATMEL_HLCDC=m
|
||||
CONFIG_DRM_RCAR_DU=m
|
||||
CONFIG_DRM_RCAR_LVDS=y
|
||||
CONFIG_DRM_SUN4I=m
|
||||
CONFIG_DRM_MSM=m
|
||||
CONFIG_DRM_FSL_DCU=m
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -1604,10 +1604,9 @@ usb2_phy0: phy@36000 {
|
||||
|
||||
dmc: bus@38000 {
|
||||
compatible = "simple-bus";
|
||||
reg = <0x0 0x38000 0x0 0x400>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
|
||||
ranges = <0x0 0x0 0x0 0x38000 0x0 0x2000>;
|
||||
|
||||
canvas: video-lut@48 {
|
||||
compatible = "amlogic,canvas";
|
||||
|
@ -128,7 +128,7 @@ pmic@4b {
|
||||
rohm,reset-snvs-powered;
|
||||
|
||||
#clock-cells = <0>;
|
||||
clocks = <&osc_32k 0>;
|
||||
clocks = <&osc_32k>;
|
||||
clock-output-names = "clk-32k-out";
|
||||
|
||||
regulators {
|
||||
|
@ -98,11 +98,17 @@ mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethphy: ethernet-phy@4 {
|
||||
ethphy: ethernet-phy@4 { /* AR8033 or ADIN1300 */
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <4>;
|
||||
reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <10000>;
|
||||
/*
|
||||
* Deassert delay:
|
||||
* ADIN1300 requires 5ms.
|
||||
* AR8033 requires 1ms.
|
||||
*/
|
||||
reset-deassert-us = <20000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -60,11 +60,11 @@ &pcie1 {
|
||||
perst-gpio = <&tlmm 58 0x1>;
|
||||
};
|
||||
|
||||
&pcie_phy0 {
|
||||
&pcie_qmp0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie_phy1 {
|
||||
&pcie_qmp1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -607,10 +607,8 @@ pcie1: pci@10000000 {
|
||||
phys = <&pcie_phy1>;
|
||||
phy-names = "pciephy";
|
||||
|
||||
ranges = <0x81000000 0 0x10200000 0x10200000
|
||||
0 0x10000>, /* downstream I/O */
|
||||
<0x82000000 0 0x10220000 0x10220000
|
||||
0 0xfde0000>; /* non-prefetchable memory */
|
||||
ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
|
||||
<0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
|
||||
|
||||
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "msi";
|
||||
@ -671,10 +669,8 @@ pcie0: pci@20000000 {
|
||||
phys = <&pcie_phy0>;
|
||||
phy-names = "pciephy";
|
||||
|
||||
ranges = <0x81000000 0 0x20200000 0x20200000
|
||||
0 0x10000>, /* downstream I/O */
|
||||
<0x82000000 0 0x20220000 0x20220000
|
||||
0 0xfde0000>; /* non-prefetchable memory */
|
||||
ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
|
||||
<0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
|
||||
|
||||
interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "msi";
|
||||
|
@ -744,8 +744,8 @@ pcie0: pcie@600000 {
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x01000000 0x0 0x0c200000 0x0c200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x0c300000 0x0c300000 0x0 0xd00000>;
|
||||
ranges = <0x01000000 0x0 0x00000000 0x0c200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x0c300000 0x0c300000 0x0 0xd00000>;
|
||||
|
||||
interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "msi";
|
||||
@ -796,8 +796,8 @@ pcie1: pcie@608000 {
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x01000000 0x0 0x0d200000 0x0d200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x0d300000 0x0d300000 0x0 0xd00000>;
|
||||
ranges = <0x01000000 0x0 0x00000000 0x0d200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x0d300000 0x0d300000 0x0 0xd00000>;
|
||||
|
||||
interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "msi";
|
||||
@ -845,8 +845,8 @@ pcie2: pcie@610000 {
|
||||
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0x01000000 0x0 0x0e200000 0x0e200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x0e300000 0x0e300000 0x0 0x1d00000>;
|
||||
ranges = <0x01000000 0x0 0x00000000 0x0e200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x0e300000 0x0e300000 0x0 0x1d00000>;
|
||||
|
||||
device_type = "pci";
|
||||
|
||||
@ -1771,8 +1771,11 @@ dwc3@6a00000 {
|
||||
interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>;
|
||||
phys = <&hsusb_phy1>, <&ssusb_phy_0>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
snps,hird-threshold = /bits/ 8 <0>;
|
||||
snps,dis_u2_susphy_quirk;
|
||||
snps,dis_enblslpm_quirk;
|
||||
snps,is-utmi-l1-suspend;
|
||||
tx-fifo-resize;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -942,7 +942,7 @@ pcie0: pci@1c00000 {
|
||||
phys = <&pciephy>;
|
||||
phy-names = "pciephy";
|
||||
|
||||
ranges = <0x01000000 0x0 0x1b200000 0x1b200000 0x0 0x100000>,
|
||||
ranges = <0x01000000 0x0 0x00000000 0x1b200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x1b300000 0x1b300000 0x0 0xd00000>;
|
||||
|
||||
#interrupt-cells = <1>;
|
||||
@ -1187,7 +1187,7 @@ stm: stm@6002000 {
|
||||
compatible = "arm,coresight-stm", "arm,primecell";
|
||||
reg = <0x06002000 0x1000>,
|
||||
<0x16280000 0x180000>;
|
||||
reg-names = "stm-base", "stm-data-base";
|
||||
reg-names = "stm-base", "stm-stimulus-base";
|
||||
status = "disabled";
|
||||
|
||||
clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
|
||||
|
@ -196,8 +196,8 @@ CPU0: cpu@0 {
|
||||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <607>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <611>;
|
||||
dynamic-power-coefficient = <154>;
|
||||
qcom,freq-domain = <&cpufreq_hw 0>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -221,8 +221,8 @@ CPU1: cpu@100 {
|
||||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <607>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <611>;
|
||||
dynamic-power-coefficient = <154>;
|
||||
qcom,freq-domain = <&cpufreq_hw 0>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -243,8 +243,8 @@ CPU2: cpu@200 {
|
||||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <607>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <611>;
|
||||
dynamic-power-coefficient = <154>;
|
||||
qcom,freq-domain = <&cpufreq_hw 0>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -265,8 +265,8 @@ CPU3: cpu@300 {
|
||||
cpu-idle-states = <&LITTLE_CPU_SLEEP_0
|
||||
&LITTLE_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
capacity-dmips-mhz = <607>;
|
||||
dynamic-power-coefficient = <100>;
|
||||
capacity-dmips-mhz = <611>;
|
||||
dynamic-power-coefficient = <154>;
|
||||
qcom,freq-domain = <&cpufreq_hw 0>;
|
||||
operating-points-v2 = <&cpu0_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -288,7 +288,7 @@ CPU4: cpu@400 {
|
||||
cpu-idle-states = <&BIG_CPU_SLEEP_0
|
||||
&BIG_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
dynamic-power-coefficient = <396>;
|
||||
dynamic-power-coefficient = <442>;
|
||||
qcom,freq-domain = <&cpufreq_hw 1>;
|
||||
operating-points-v2 = <&cpu4_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -310,7 +310,7 @@ CPU5: cpu@500 {
|
||||
cpu-idle-states = <&BIG_CPU_SLEEP_0
|
||||
&BIG_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
dynamic-power-coefficient = <396>;
|
||||
dynamic-power-coefficient = <442>;
|
||||
qcom,freq-domain = <&cpufreq_hw 1>;
|
||||
operating-points-v2 = <&cpu4_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -332,7 +332,7 @@ CPU6: cpu@600 {
|
||||
cpu-idle-states = <&BIG_CPU_SLEEP_0
|
||||
&BIG_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
dynamic-power-coefficient = <396>;
|
||||
dynamic-power-coefficient = <442>;
|
||||
qcom,freq-domain = <&cpufreq_hw 1>;
|
||||
operating-points-v2 = <&cpu4_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -354,7 +354,7 @@ CPU7: cpu@700 {
|
||||
cpu-idle-states = <&BIG_CPU_SLEEP_0
|
||||
&BIG_CPU_SLEEP_1
|
||||
&CLUSTER_SLEEP_0>;
|
||||
dynamic-power-coefficient = <396>;
|
||||
dynamic-power-coefficient = <442>;
|
||||
qcom,freq-domain = <&cpufreq_hw 1>;
|
||||
operating-points-v2 = <&cpu4_opp_table>;
|
||||
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
|
||||
@ -1816,8 +1816,8 @@ pcie0: pci@1c00000 {
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
ranges = <0x01000000 0x0 0x60200000 0 0x60200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x60300000 0 0x60300000 0x0 0xd00000>;
|
||||
ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0xd00000>;
|
||||
|
||||
interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "msi";
|
||||
@ -1920,7 +1920,7 @@ pcie1: pci@1c08000 {
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
|
||||
ranges = <0x01000000 0x0 0x40200000 0x0 0x40200000 0x0 0x100000>,
|
||||
ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
|
||||
<0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
|
||||
|
||||
interrupts = <GIC_SPI 307 IRQ_TYPE_EDGE_RISING>;
|
||||
|
@ -49,17 +49,14 @@ cluster1_opp: opp_table10 {
|
||||
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;
|
||||
};
|
||||
|
@ -60,17 +60,14 @@ cluster1_opp: opp_table10 {
|
||||
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;
|
||||
};
|
||||
|
@ -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);
|
||||
|
@ -9,15 +9,16 @@
|
||||
#ifdef CONFIG_SHADOW_CALL_STACK
|
||||
scs_sp .req x18
|
||||
|
||||
.macro scs_load tsk, tmp
|
||||
ldr scs_sp, [\tsk, #TSK_TI_SCS_SP]
|
||||
.macro scs_load_current
|
||||
get_current_task scs_sp
|
||||
ldr scs_sp, [scs_sp, #TSK_TI_SCS_SP]
|
||||
.endm
|
||||
|
||||
.macro scs_save tsk, tmp
|
||||
str scs_sp, [\tsk, #TSK_TI_SCS_SP]
|
||||
.endm
|
||||
#else
|
||||
.macro scs_load tsk, tmp
|
||||
.macro scs_load_current
|
||||
.endm
|
||||
|
||||
.macro scs_save tsk, tmp
|
||||
|
@ -439,6 +439,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)
|
||||
{
|
||||
|
@ -297,7 +297,7 @@ alternative_if ARM64_HAS_ADDRESS_AUTH
|
||||
alternative_else_nop_endif
|
||||
1:
|
||||
|
||||
scs_load tsk, x20
|
||||
scs_load_current
|
||||
.else
|
||||
add x21, sp, #S_FRAME_SIZE
|
||||
get_current_task tsk
|
||||
@ -1122,7 +1122,7 @@ SYM_FUNC_START(cpu_switch_to)
|
||||
msr sp_el0, x1
|
||||
ptrauth_keys_install_kernel x1, x8, x9, x10
|
||||
scs_save x0, x8
|
||||
scs_load x1, x8
|
||||
scs_load_current
|
||||
ret
|
||||
SYM_FUNC_END(cpu_switch_to)
|
||||
NOKPROBE(cpu_switch_to)
|
||||
|
@ -621,7 +621,7 @@ SYM_FUNC_START_LOCAL(__secondary_switched)
|
||||
ldr x2, [x0, #CPU_BOOT_TASK]
|
||||
cbz x2, __secondary_too_slow
|
||||
msr sp_el0, x2
|
||||
scs_load x2, x3
|
||||
scs_load_current
|
||||
mov x29, #0
|
||||
mov x30, #0
|
||||
|
||||
|
@ -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:
|
||||
|
@ -499,6 +499,8 @@ int kvm_arm_set_fw_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
|
||||
u64 val;
|
||||
int wa_level;
|
||||
|
||||
if (KVM_REG_SIZE(reg->id) != sizeof(val))
|
||||
return -ENOENT;
|
||||
if (copy_from_user(&val, uaddr, KVM_REG_SIZE(reg->id)))
|
||||
return -EFAULT;
|
||||
|
||||
|
@ -484,8 +484,8 @@ static void do_bad_area(unsigned long far, unsigned int esr,
|
||||
}
|
||||
}
|
||||
|
||||
#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 int __do_page_fault(struct vm_area_struct *vma, unsigned long addr,
|
||||
unsigned int mm_flags, unsigned long vm_flags,
|
||||
|
@ -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");
|
||||
|
@ -79,7 +79,7 @@ void *per_cpu_init(void)
|
||||
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();
|
||||
|
@ -58,7 +58,7 @@ huge_pte_offset (struct mm_struct *mm, unsigned long addr, unsigned long sz)
|
||||
|
||||
pgd = pgd_offset(mm, taddr);
|
||||
if (pgd_present(*pgd)) {
|
||||
p4d = p4d_offset(pgd, addr);
|
||||
p4d = p4d_offset(pgd, taddr);
|
||||
if (p4d_present(*p4d)) {
|
||||
pud = pud_offset(p4d, taddr);
|
||||
if (pud_present(*pud)) {
|
||||
|
@ -882,11 +882,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,
|
||||
@ -904,7 +910,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);
|
||||
|
@ -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));
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -53,7 +53,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
|
||||
|
@ -203,7 +203,7 @@ ATOMIC_OPS(atomic64, xor, s64, ^=, xor, lld, scd)
|
||||
* The function returns the old value of @v minus @i.
|
||||
*/
|
||||
#define ATOMIC_SIP_OP(pfx, type, op, ll, sc) \
|
||||
static __inline__ int pfx##_sub_if_positive(type i, pfx##_t * v) \
|
||||
static __inline__ type pfx##_sub_if_positive(type i, pfx##_t * v) \
|
||||
{ \
|
||||
type temp, result; \
|
||||
\
|
||||
|
@ -154,10 +154,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
|
||||
@ -170,6 +166,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:
|
||||
|
@ -15,6 +15,8 @@
|
||||
#define EMITS_PT_NOTE
|
||||
#endif
|
||||
|
||||
#define RUNTIME_DISCARD_EXIT
|
||||
|
||||
#include <asm-generic/vmlinux.lds.h>
|
||||
|
||||
#undef mips
|
||||
|
@ -97,7 +97,7 @@ rgmii_0_eth_tse_0: ethernet@400 {
|
||||
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>;
|
||||
|
@ -106,7 +106,7 @@ tse_mac: ethernet@4000 {
|
||||
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>;
|
||||
|
@ -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 ;\
|
||||
|
@ -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); \
|
||||
|
@ -327,6 +327,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)) {
|
||||
@ -346,7 +347,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;
|
||||
@ -369,7 +370,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);
|
||||
|
||||
|
@ -446,11 +446,27 @@ 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();
|
||||
}
|
||||
}
|
||||
|
@ -123,13 +123,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);
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -245,8 +245,6 @@ CONFIG_ATM_LANE=m
|
||||
CONFIG_ATM_BR2684=m
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
CONFIG_DECNET=m
|
||||
CONFIG_DECNET_ROUTER=y
|
||||
CONFIG_ATALK=m
|
||||
CONFIG_DEV_APPLETALK=m
|
||||
CONFIG_IPDDP=m
|
||||
|
@ -44,7 +44,7 @@
|
||||
#define FW_FEATURE_OPAL ASM_CONST(0x0000000010000000)
|
||||
#define FW_FEATURE_SET_MODE ASM_CONST(0x0000000040000000)
|
||||
#define FW_FEATURE_BEST_ENERGY ASM_CONST(0x0000000080000000)
|
||||
#define FW_FEATURE_TYPE1_AFFINITY ASM_CONST(0x0000000100000000)
|
||||
#define FW_FEATURE_FORM1_AFFINITY ASM_CONST(0x0000000100000000)
|
||||
#define FW_FEATURE_PRRN ASM_CONST(0x0000000200000000)
|
||||
#define FW_FEATURE_DRMEM_V2 ASM_CONST(0x0000000400000000)
|
||||
#define FW_FEATURE_DRC_INFO ASM_CONST(0x0000000800000000)
|
||||
@ -53,6 +53,7 @@
|
||||
#define FW_FEATURE_ULTRAVISOR ASM_CONST(0x0000004000000000)
|
||||
#define FW_FEATURE_STUFF_TCE ASM_CONST(0x0000008000000000)
|
||||
#define FW_FEATURE_RPT_INVALIDATE ASM_CONST(0x0000010000000000)
|
||||
#define FW_FEATURE_FORM2_AFFINITY ASM_CONST(0x0000020000000000)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
@ -69,11 +70,11 @@ enum {
|
||||
FW_FEATURE_SPLPAR | FW_FEATURE_LPAR |
|
||||
FW_FEATURE_CMO | FW_FEATURE_VPHN | FW_FEATURE_XCMO |
|
||||
FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
|
||||
FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN |
|
||||
FW_FEATURE_FORM1_AFFINITY | FW_FEATURE_PRRN |
|
||||
FW_FEATURE_HPT_RESIZE | FW_FEATURE_DRMEM_V2 |
|
||||
FW_FEATURE_DRC_INFO | FW_FEATURE_BLOCK_REMOVE |
|
||||
FW_FEATURE_PAPR_SCM | FW_FEATURE_ULTRAVISOR |
|
||||
FW_FEATURE_RPT_INVALIDATE,
|
||||
FW_FEATURE_RPT_INVALIDATE | FW_FEATURE_FORM2_AFFINITY,
|
||||
FW_FEATURE_PSERIES_ALWAYS = 0,
|
||||
FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL | FW_FEATURE_ULTRAVISOR,
|
||||
FW_FEATURE_POWERNV_ALWAYS = 0,
|
||||
|
@ -147,8 +147,9 @@ extern int of_read_drc_info_cell(struct property **prop,
|
||||
#define OV5_MSI 0x0201 /* PCIe/MSI support */
|
||||
#define OV5_CMO 0x0480 /* Cooperative Memory Overcommitment */
|
||||
#define OV5_XCMO 0x0440 /* Page Coalescing */
|
||||
#define OV5_TYPE1_AFFINITY 0x0580 /* Type 1 NUMA affinity */
|
||||
#define OV5_FORM1_AFFINITY 0x0580 /* FORM1 NUMA affinity */
|
||||
#define OV5_PRRN 0x0540 /* Platform Resource Reassignment */
|
||||
#define OV5_FORM2_AFFINITY 0x0520 /* Form2 NUMA affinity */
|
||||
#define OV5_HP_EVT 0x0604 /* Hot Plug Event support */
|
||||
#define OV5_RESIZE_HPT 0x0601 /* Hash Page Table resizing */
|
||||
#define OV5_PFO_HW_RNG 0x1180 /* PFO Random Number Generator */
|
||||
|
@ -36,7 +36,7 @@ static inline int pcibus_to_node(struct pci_bus *bus)
|
||||
cpu_all_mask : \
|
||||
cpumask_of_node(pcibus_to_node(bus)))
|
||||
|
||||
extern int cpu_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc);
|
||||
int cpu_relative_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc);
|
||||
extern int __node_distance(int, int);
|
||||
#define node_distance(a, b) __node_distance(a, b)
|
||||
|
||||
@ -64,6 +64,7 @@ static inline int early_cpu_to_node(int cpu)
|
||||
}
|
||||
|
||||
int of_drconf_to_nid_single(struct drmem_lmb *lmb);
|
||||
void update_numa_distance(struct device_node *node);
|
||||
|
||||
#else
|
||||
|
||||
@ -83,7 +84,7 @@ static inline void sysfs_remove_device_from_node(struct device *dev,
|
||||
|
||||
static inline void update_numa_cpu_lookup_table(unsigned int cpu, int node) {}
|
||||
|
||||
static inline int cpu_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc)
|
||||
static inline int cpu_relative_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -93,6 +94,7 @@ static inline int of_drconf_to_nid_single(struct drmem_lmb *lmb)
|
||||
return first_online_node;
|
||||
}
|
||||
|
||||
static inline void update_numa_distance(struct device_node *node) {}
|
||||
#endif /* CONFIG_NUMA */
|
||||
|
||||
#if defined(CONFIG_NUMA) && defined(CONFIG_PPC_SPLPAR)
|
||||
|
@ -1069,7 +1069,8 @@ static const struct ibm_arch_vec ibm_architecture_vec_template __initconst = {
|
||||
#else
|
||||
0,
|
||||
#endif
|
||||
.associativity = OV5_FEAT(OV5_TYPE1_AFFINITY) | OV5_FEAT(OV5_PRRN),
|
||||
.associativity = OV5_FEAT(OV5_FORM1_AFFINITY) | OV5_FEAT(OV5_PRRN) |
|
||||
OV5_FEAT(OV5_FORM2_AFFINITY),
|
||||
.bin_opts = OV5_FEAT(OV5_RESIZE_HPT) | OV5_FEAT(OV5_HP_EVT),
|
||||
.micro_checkpoint = 0,
|
||||
.reserved0 = 0,
|
||||
|
@ -399,7 +399,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;
|
||||
|
@ -1064,8 +1064,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);
|
||||
/*
|
||||
|
@ -51,14 +51,22 @@ EXPORT_SYMBOL(numa_cpu_lookup_table);
|
||||
EXPORT_SYMBOL(node_to_cpumask_map);
|
||||
EXPORT_SYMBOL(node_data);
|
||||
|
||||
static int min_common_depth;
|
||||
static int primary_domain_index;
|
||||
static int n_mem_addr_cells, n_mem_size_cells;
|
||||
static int form1_affinity;
|
||||
|
||||
#define FORM0_AFFINITY 0
|
||||
#define FORM1_AFFINITY 1
|
||||
#define FORM2_AFFINITY 2
|
||||
static int affinity_form;
|
||||
|
||||
#define MAX_DISTANCE_REF_POINTS 4
|
||||
static int distance_ref_points_depth;
|
||||
static const __be32 *distance_ref_points;
|
||||
static int distance_lookup_table[MAX_NUMNODES][MAX_DISTANCE_REF_POINTS];
|
||||
static int numa_distance_table[MAX_NUMNODES][MAX_NUMNODES] = {
|
||||
[0 ... MAX_NUMNODES - 1] = { [0 ... MAX_NUMNODES - 1] = -1 }
|
||||
};
|
||||
static int numa_id_index_table[MAX_NUMNODES] = { [0 ... MAX_NUMNODES - 1] = NUMA_NO_NODE };
|
||||
|
||||
/*
|
||||
* Allocate node_to_cpumask_map based on number of available nodes
|
||||
@ -163,7 +171,55 @@ static void unmap_cpu_from_node(unsigned long cpu)
|
||||
}
|
||||
#endif /* CONFIG_HOTPLUG_CPU || CONFIG_PPC_SPLPAR */
|
||||
|
||||
int cpu_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc)
|
||||
static int __associativity_to_nid(const __be32 *associativity,
|
||||
int max_array_sz)
|
||||
{
|
||||
int nid;
|
||||
/*
|
||||
* primary_domain_index is 1 based array index.
|
||||
*/
|
||||
int index = primary_domain_index - 1;
|
||||
|
||||
if (!numa_enabled || index >= max_array_sz)
|
||||
return NUMA_NO_NODE;
|
||||
|
||||
nid = of_read_number(&associativity[index], 1);
|
||||
|
||||
/* POWER4 LPAR uses 0xffff as invalid node */
|
||||
if (nid == 0xffff || nid >= nr_node_ids)
|
||||
nid = NUMA_NO_NODE;
|
||||
return nid;
|
||||
}
|
||||
/*
|
||||
* Returns nid in the range [0..nr_node_ids], or -1 if no useful NUMA
|
||||
* info is found.
|
||||
*/
|
||||
static int associativity_to_nid(const __be32 *associativity)
|
||||
{
|
||||
int array_sz = of_read_number(associativity, 1);
|
||||
|
||||
/* Skip the first element in the associativity array */
|
||||
return __associativity_to_nid((associativity + 1), array_sz);
|
||||
}
|
||||
|
||||
static int __cpu_form2_relative_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc)
|
||||
{
|
||||
int dist;
|
||||
int node1, node2;
|
||||
|
||||
node1 = associativity_to_nid(cpu1_assoc);
|
||||
node2 = associativity_to_nid(cpu2_assoc);
|
||||
|
||||
dist = numa_distance_table[node1][node2];
|
||||
if (dist <= LOCAL_DISTANCE)
|
||||
return 0;
|
||||
else if (dist <= REMOTE_DISTANCE)
|
||||
return 1;
|
||||
else
|
||||
return 2;
|
||||
}
|
||||
|
||||
static int __cpu_form1_relative_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc)
|
||||
{
|
||||
int dist = 0;
|
||||
|
||||
@ -179,6 +235,15 @@ int cpu_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc)
|
||||
return dist;
|
||||
}
|
||||
|
||||
int cpu_relative_distance(__be32 *cpu1_assoc, __be32 *cpu2_assoc)
|
||||
{
|
||||
/* We should not get called with FORM0 */
|
||||
VM_WARN_ON(affinity_form == FORM0_AFFINITY);
|
||||
if (affinity_form == FORM1_AFFINITY)
|
||||
return __cpu_form1_relative_distance(cpu1_assoc, cpu2_assoc);
|
||||
return __cpu_form2_relative_distance(cpu1_assoc, cpu2_assoc);
|
||||
}
|
||||
|
||||
/* must hold reference to node during call */
|
||||
static const __be32 *of_get_associativity(struct device_node *dev)
|
||||
{
|
||||
@ -190,7 +255,9 @@ int __node_distance(int a, int b)
|
||||
int i;
|
||||
int distance = LOCAL_DISTANCE;
|
||||
|
||||
if (!form1_affinity)
|
||||
if (affinity_form == FORM2_AFFINITY)
|
||||
return numa_distance_table[a][b];
|
||||
else if (affinity_form == FORM0_AFFINITY)
|
||||
return ((a == b) ? LOCAL_DISTANCE : REMOTE_DISTANCE);
|
||||
|
||||
for (i = 0; i < distance_ref_points_depth; i++) {
|
||||
@ -205,52 +272,6 @@ int __node_distance(int a, int b)
|
||||
}
|
||||
EXPORT_SYMBOL(__node_distance);
|
||||
|
||||
static void initialize_distance_lookup_table(int nid,
|
||||
const __be32 *associativity)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!form1_affinity)
|
||||
return;
|
||||
|
||||
for (i = 0; i < distance_ref_points_depth; i++) {
|
||||
const __be32 *entry;
|
||||
|
||||
entry = &associativity[be32_to_cpu(distance_ref_points[i]) - 1];
|
||||
distance_lookup_table[nid][i] = of_read_number(entry, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns nid in the range [0..nr_node_ids], or -1 if no useful NUMA
|
||||
* info is found.
|
||||
*/
|
||||
static int associativity_to_nid(const __be32 *associativity)
|
||||
{
|
||||
int nid = NUMA_NO_NODE;
|
||||
|
||||
if (!numa_enabled)
|
||||
goto out;
|
||||
|
||||
if (of_read_number(associativity, 1) >= min_common_depth)
|
||||
nid = of_read_number(&associativity[min_common_depth], 1);
|
||||
|
||||
/* POWER4 LPAR uses 0xffff as invalid node */
|
||||
if (nid == 0xffff || nid >= nr_node_ids)
|
||||
nid = NUMA_NO_NODE;
|
||||
|
||||
if (nid > 0 &&
|
||||
of_read_number(associativity, 1) >= distance_ref_points_depth) {
|
||||
/*
|
||||
* Skip the length field and send start of associativity array
|
||||
*/
|
||||
initialize_distance_lookup_table(nid, associativity + 1);
|
||||
}
|
||||
|
||||
out:
|
||||
return nid;
|
||||
}
|
||||
|
||||
/* Returns the nid associated with the given device tree node,
|
||||
* or -1 if not found.
|
||||
*/
|
||||
@ -284,10 +305,159 @@ int of_node_to_nid(struct device_node *device)
|
||||
}
|
||||
EXPORT_SYMBOL(of_node_to_nid);
|
||||
|
||||
static int __init find_min_common_depth(void)
|
||||
static void __initialize_form1_numa_distance(const __be32 *associativity,
|
||||
int max_array_sz)
|
||||
{
|
||||
int depth;
|
||||
int i, nid;
|
||||
|
||||
if (affinity_form != FORM1_AFFINITY)
|
||||
return;
|
||||
|
||||
nid = __associativity_to_nid(associativity, max_array_sz);
|
||||
if (nid != NUMA_NO_NODE) {
|
||||
for (i = 0; i < distance_ref_points_depth; i++) {
|
||||
const __be32 *entry;
|
||||
int index = be32_to_cpu(distance_ref_points[i]) - 1;
|
||||
|
||||
/*
|
||||
* broken hierarchy, return with broken distance table
|
||||
*/
|
||||
if (WARN(index >= max_array_sz, "Broken ibm,associativity property"))
|
||||
return;
|
||||
|
||||
entry = &associativity[index];
|
||||
distance_lookup_table[nid][i] = of_read_number(entry, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void initialize_form1_numa_distance(const __be32 *associativity)
|
||||
{
|
||||
int array_sz;
|
||||
|
||||
array_sz = of_read_number(associativity, 1);
|
||||
/* Skip the first element in the associativity array */
|
||||
__initialize_form1_numa_distance(associativity + 1, array_sz);
|
||||
}
|
||||
|
||||
/*
|
||||
* Used to update distance information w.r.t newly added node.
|
||||
*/
|
||||
void update_numa_distance(struct device_node *node)
|
||||
{
|
||||
int nid;
|
||||
|
||||
if (affinity_form == FORM0_AFFINITY)
|
||||
return;
|
||||
else if (affinity_form == FORM1_AFFINITY) {
|
||||
const __be32 *associativity;
|
||||
|
||||
associativity = of_get_associativity(node);
|
||||
if (!associativity)
|
||||
return;
|
||||
|
||||
initialize_form1_numa_distance(associativity);
|
||||
return;
|
||||
}
|
||||
|
||||
/* FORM2 affinity */
|
||||
nid = of_node_to_nid_single(node);
|
||||
if (nid == NUMA_NO_NODE)
|
||||
return;
|
||||
|
||||
/*
|
||||
* With FORM2 we expect NUMA distance of all possible NUMA
|
||||
* nodes to be provided during boot.
|
||||
*/
|
||||
WARN(numa_distance_table[nid][nid] == -1,
|
||||
"NUMA distance details for node %d not provided\n", nid);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(update_numa_distance);
|
||||
|
||||
/*
|
||||
* ibm,numa-lookup-index-table= {N, domainid1, domainid2, ..... domainidN}
|
||||
* ibm,numa-distance-table = { N, 1, 2, 4, 5, 1, 6, .... N elements}
|
||||
*/
|
||||
static void initialize_form2_numa_distance_lookup_table(void)
|
||||
{
|
||||
int i, j;
|
||||
struct device_node *root;
|
||||
const __u8 *numa_dist_table;
|
||||
const __be32 *numa_lookup_index;
|
||||
int numa_dist_table_length;
|
||||
int max_numa_index, distance_index;
|
||||
|
||||
if (firmware_has_feature(FW_FEATURE_OPAL))
|
||||
root = of_find_node_by_path("/ibm,opal");
|
||||
else
|
||||
root = of_find_node_by_path("/rtas");
|
||||
if (!root)
|
||||
root = of_find_node_by_path("/");
|
||||
|
||||
numa_lookup_index = of_get_property(root, "ibm,numa-lookup-index-table", NULL);
|
||||
max_numa_index = of_read_number(&numa_lookup_index[0], 1);
|
||||
|
||||
/* first element of the array is the size and is encode-int */
|
||||
numa_dist_table = of_get_property(root, "ibm,numa-distance-table", NULL);
|
||||
numa_dist_table_length = of_read_number((const __be32 *)&numa_dist_table[0], 1);
|
||||
/* Skip the size which is encoded int */
|
||||
numa_dist_table += sizeof(__be32);
|
||||
|
||||
pr_debug("numa_dist_table_len = %d, numa_dist_indexes_len = %d\n",
|
||||
numa_dist_table_length, max_numa_index);
|
||||
|
||||
for (i = 0; i < max_numa_index; i++)
|
||||
/* +1 skip the max_numa_index in the property */
|
||||
numa_id_index_table[i] = of_read_number(&numa_lookup_index[i + 1], 1);
|
||||
|
||||
|
||||
if (numa_dist_table_length != max_numa_index * max_numa_index) {
|
||||
WARN(1, "Wrong NUMA distance information\n");
|
||||
/* consider everybody else just remote. */
|
||||
for (i = 0; i < max_numa_index; i++) {
|
||||
for (j = 0; j < max_numa_index; j++) {
|
||||
int nodeA = numa_id_index_table[i];
|
||||
int nodeB = numa_id_index_table[j];
|
||||
|
||||
if (nodeA == nodeB)
|
||||
numa_distance_table[nodeA][nodeB] = LOCAL_DISTANCE;
|
||||
else
|
||||
numa_distance_table[nodeA][nodeB] = REMOTE_DISTANCE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
distance_index = 0;
|
||||
for (i = 0; i < max_numa_index; i++) {
|
||||
for (j = 0; j < max_numa_index; j++) {
|
||||
int nodeA = numa_id_index_table[i];
|
||||
int nodeB = numa_id_index_table[j];
|
||||
|
||||
numa_distance_table[nodeA][nodeB] = numa_dist_table[distance_index++];
|
||||
pr_debug("dist[%d][%d]=%d ", nodeA, nodeB, numa_distance_table[nodeA][nodeB]);
|
||||
}
|
||||
}
|
||||
of_node_put(root);
|
||||
}
|
||||
|
||||
static int __init find_primary_domain_index(void)
|
||||
{
|
||||
int index;
|
||||
struct device_node *root;
|
||||
|
||||
/*
|
||||
* Check for which form of affinity.
|
||||
*/
|
||||
if (firmware_has_feature(FW_FEATURE_OPAL)) {
|
||||
affinity_form = FORM1_AFFINITY;
|
||||
} else if (firmware_has_feature(FW_FEATURE_FORM2_AFFINITY)) {
|
||||
dbg("Using form 2 affinity\n");
|
||||
affinity_form = FORM2_AFFINITY;
|
||||
} else if (firmware_has_feature(FW_FEATURE_FORM1_AFFINITY)) {
|
||||
dbg("Using form 1 affinity\n");
|
||||
affinity_form = FORM1_AFFINITY;
|
||||
} else
|
||||
affinity_form = FORM0_AFFINITY;
|
||||
|
||||
if (firmware_has_feature(FW_FEATURE_OPAL))
|
||||
root = of_find_node_by_path("/ibm,opal");
|
||||
@ -318,25 +488,21 @@ static int __init find_min_common_depth(void)
|
||||
}
|
||||
|
||||
distance_ref_points_depth /= sizeof(int);
|
||||
|
||||
if (firmware_has_feature(FW_FEATURE_OPAL) ||
|
||||
firmware_has_feature(FW_FEATURE_TYPE1_AFFINITY)) {
|
||||
dbg("Using form 1 affinity\n");
|
||||
form1_affinity = 1;
|
||||
}
|
||||
|
||||
if (form1_affinity) {
|
||||
depth = of_read_number(distance_ref_points, 1);
|
||||
} else {
|
||||
if (affinity_form == FORM0_AFFINITY) {
|
||||
if (distance_ref_points_depth < 2) {
|
||||
printk(KERN_WARNING "NUMA: "
|
||||
"short ibm,associativity-reference-points\n");
|
||||
"short ibm,associativity-reference-points\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
depth = of_read_number(&distance_ref_points[1], 1);
|
||||
index = of_read_number(&distance_ref_points[1], 1);
|
||||
} else {
|
||||
/*
|
||||
* Both FORM1 and FORM2 affinity find the primary domain details
|
||||
* at the same offset.
|
||||
*/
|
||||
index = of_read_number(distance_ref_points, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Warn and cap if the hardware supports more than
|
||||
* MAX_DISTANCE_REF_POINTS domains.
|
||||
@ -348,7 +514,7 @@ static int __init find_min_common_depth(void)
|
||||
}
|
||||
|
||||
of_node_put(root);
|
||||
return depth;
|
||||
return index;
|
||||
|
||||
err:
|
||||
of_node_put(root);
|
||||
@ -426,6 +592,38 @@ static int of_get_assoc_arrays(struct assoc_arrays *aa)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_nid_and_numa_distance(struct drmem_lmb *lmb)
|
||||
{
|
||||
struct assoc_arrays aa = { .arrays = NULL };
|
||||
int default_nid = NUMA_NO_NODE;
|
||||
int nid = default_nid;
|
||||
int rc, index;
|
||||
|
||||
if ((primary_domain_index < 0) || !numa_enabled)
|
||||
return default_nid;
|
||||
|
||||
rc = of_get_assoc_arrays(&aa);
|
||||
if (rc)
|
||||
return default_nid;
|
||||
|
||||
if (primary_domain_index <= aa.array_sz &&
|
||||
!(lmb->flags & DRCONF_MEM_AI_INVALID) && lmb->aa_index < aa.n_arrays) {
|
||||
const __be32 *associativity;
|
||||
|
||||
index = lmb->aa_index * aa.array_sz;
|
||||
associativity = &aa.arrays[index];
|
||||
nid = __associativity_to_nid(associativity, aa.array_sz);
|
||||
if (nid > 0 && affinity_form == FORM1_AFFINITY) {
|
||||
/*
|
||||
* lookup array associativity entries have
|
||||
* no length of the array as the first element.
|
||||
*/
|
||||
__initialize_form1_numa_distance(associativity, aa.array_sz);
|
||||
}
|
||||
}
|
||||
return nid;
|
||||
}
|
||||
|
||||
/*
|
||||
* This is like of_node_to_nid_single() for memory represented in the
|
||||
* ibm,dynamic-reconfiguration-memory node.
|
||||
@ -437,35 +635,28 @@ int of_drconf_to_nid_single(struct drmem_lmb *lmb)
|
||||
int nid = default_nid;
|
||||
int rc, index;
|
||||
|
||||
if ((min_common_depth < 0) || !numa_enabled)
|
||||
if ((primary_domain_index < 0) || !numa_enabled)
|
||||
return default_nid;
|
||||
|
||||
rc = of_get_assoc_arrays(&aa);
|
||||
if (rc)
|
||||
return default_nid;
|
||||
|
||||
if (min_common_depth <= aa.array_sz &&
|
||||
if (primary_domain_index <= aa.array_sz &&
|
||||
!(lmb->flags & DRCONF_MEM_AI_INVALID) && lmb->aa_index < aa.n_arrays) {
|
||||
index = lmb->aa_index * aa.array_sz + min_common_depth - 1;
|
||||
nid = of_read_number(&aa.arrays[index], 1);
|
||||
const __be32 *associativity;
|
||||
|
||||
if (nid == 0xffff || nid >= nr_node_ids)
|
||||
nid = default_nid;
|
||||
|
||||
if (nid > 0) {
|
||||
index = lmb->aa_index * aa.array_sz;
|
||||
initialize_distance_lookup_table(nid,
|
||||
&aa.arrays[index]);
|
||||
}
|
||||
index = lmb->aa_index * aa.array_sz;
|
||||
associativity = &aa.arrays[index];
|
||||
nid = __associativity_to_nid(associativity, aa.array_sz);
|
||||
}
|
||||
|
||||
return nid;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_SPLPAR
|
||||
static int vphn_get_nid(long lcpu)
|
||||
|
||||
static int __vphn_get_associativity(long lcpu, __be32 *associativity)
|
||||
{
|
||||
__be32 associativity[VPHN_ASSOC_BUFSIZE] = {0};
|
||||
long rc, hwid;
|
||||
|
||||
/*
|
||||
@ -485,12 +676,30 @@ static int vphn_get_nid(long lcpu)
|
||||
|
||||
rc = hcall_vphn(hwid, VPHN_FLAG_VCPU, associativity);
|
||||
if (rc == H_SUCCESS)
|
||||
return associativity_to_nid(associativity);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int vphn_get_nid(long lcpu)
|
||||
{
|
||||
__be32 associativity[VPHN_ASSOC_BUFSIZE] = {0};
|
||||
|
||||
|
||||
if (!__vphn_get_associativity(lcpu, associativity))
|
||||
return associativity_to_nid(associativity);
|
||||
|
||||
return NUMA_NO_NODE;
|
||||
|
||||
}
|
||||
#else
|
||||
|
||||
static int __vphn_get_associativity(long lcpu, __be32 *associativity)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int vphn_get_nid(long unused)
|
||||
{
|
||||
return NUMA_NO_NODE;
|
||||
@ -685,7 +894,7 @@ static int __init numa_setup_drmem_lmb(struct drmem_lmb *lmb,
|
||||
size = read_n_cells(n_mem_size_cells, usm);
|
||||
}
|
||||
|
||||
nid = of_drconf_to_nid_single(lmb);
|
||||
nid = get_nid_and_numa_distance(lmb);
|
||||
fake_numa_create_new_node(((base + size) >> PAGE_SHIFT),
|
||||
&nid);
|
||||
node_set_online(nid);
|
||||
@ -702,24 +911,31 @@ static int __init parse_numa_properties(void)
|
||||
struct device_node *memory;
|
||||
int default_nid = 0;
|
||||
unsigned long i;
|
||||
const __be32 *associativity;
|
||||
|
||||
if (numa_enabled == 0) {
|
||||
printk(KERN_WARNING "NUMA disabled by user\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
min_common_depth = find_min_common_depth();
|
||||
primary_domain_index = find_primary_domain_index();
|
||||
|
||||
if (min_common_depth < 0) {
|
||||
if (primary_domain_index < 0) {
|
||||
/*
|
||||
* if we fail to parse min_common_depth from device tree
|
||||
* if we fail to parse primary_domain_index from device tree
|
||||
* mark the numa disabled, boot with numa disabled.
|
||||
*/
|
||||
numa_enabled = false;
|
||||
return min_common_depth;
|
||||
return primary_domain_index;
|
||||
}
|
||||
|
||||
dbg("NUMA associativity depth for CPU/Memory: %d\n", min_common_depth);
|
||||
dbg("NUMA associativity depth for CPU/Memory: %d\n", primary_domain_index);
|
||||
|
||||
/*
|
||||
* If it is FORM2 initialize the distance table here.
|
||||
*/
|
||||
if (affinity_form == FORM2_AFFINITY)
|
||||
initialize_form2_numa_distance_lookup_table();
|
||||
|
||||
/*
|
||||
* Even though we connect cpus to numa domains later in SMP
|
||||
@ -727,18 +943,30 @@ static int __init parse_numa_properties(void)
|
||||
* each node to be onlined must have NODE_DATA etc backing it.
|
||||
*/
|
||||
for_each_present_cpu(i) {
|
||||
__be32 vphn_assoc[VPHN_ASSOC_BUFSIZE];
|
||||
struct device_node *cpu;
|
||||
int nid = vphn_get_nid(i);
|
||||
int nid = NUMA_NO_NODE;
|
||||
|
||||
/*
|
||||
* Don't fall back to default_nid yet -- we will plug
|
||||
* cpus into nodes once the memory scan has discovered
|
||||
* the topology.
|
||||
*/
|
||||
if (nid == NUMA_NO_NODE) {
|
||||
memset(vphn_assoc, 0, VPHN_ASSOC_BUFSIZE * sizeof(__be32));
|
||||
|
||||
if (__vphn_get_associativity(i, vphn_assoc) == 0) {
|
||||
nid = associativity_to_nid(vphn_assoc);
|
||||
initialize_form1_numa_distance(vphn_assoc);
|
||||
} else {
|
||||
|
||||
/*
|
||||
* Don't fall back to default_nid yet -- we will plug
|
||||
* cpus into nodes once the memory scan has discovered
|
||||
* the topology.
|
||||
*/
|
||||
cpu = of_get_cpu_node(i, NULL);
|
||||
BUG_ON(!cpu);
|
||||
nid = of_node_to_nid_single(cpu);
|
||||
|
||||
associativity = of_get_associativity(cpu);
|
||||
if (associativity) {
|
||||
nid = associativity_to_nid(associativity);
|
||||
initialize_form1_numa_distance(associativity);
|
||||
}
|
||||
of_node_put(cpu);
|
||||
}
|
||||
|
||||
@ -776,8 +1004,11 @@ static int __init parse_numa_properties(void)
|
||||
* have associativity properties. If none, then
|
||||
* everything goes to default_nid.
|
||||
*/
|
||||
nid = of_node_to_nid_single(memory);
|
||||
if (nid < 0)
|
||||
associativity = of_get_associativity(memory);
|
||||
if (associativity) {
|
||||
nid = associativity_to_nid(associativity);
|
||||
initialize_form1_numa_distance(associativity);
|
||||
} else
|
||||
nid = default_nid;
|
||||
|
||||
fake_numa_create_new_node(((start + size) >> PAGE_SHIFT), &nid);
|
||||
@ -926,7 +1157,7 @@ static void __init find_possible_nodes(void)
|
||||
goto out;
|
||||
}
|
||||
|
||||
max_nodes = of_read_number(&domains[min_common_depth], 1);
|
||||
max_nodes = of_read_number(&domains[primary_domain_index], 1);
|
||||
pr_info("Partition configured for %d NUMA nodes.\n", max_nodes);
|
||||
|
||||
for (i = 0; i < max_nodes; i++) {
|
||||
@ -935,7 +1166,7 @@ static void __init find_possible_nodes(void)
|
||||
}
|
||||
|
||||
prop_length /= sizeof(int);
|
||||
if (prop_length > min_common_depth + 2)
|
||||
if (prop_length > primary_domain_index + 2)
|
||||
coregroup_enabled = 1;
|
||||
|
||||
out:
|
||||
@ -1268,7 +1499,7 @@ int cpu_to_coregroup_id(int cpu)
|
||||
goto out;
|
||||
|
||||
index = of_read_number(associativity, 1);
|
||||
if (index > min_common_depth + 1)
|
||||
if (index > primary_domain_index + 1)
|
||||
return of_read_number(&associativity[index - 1], 1);
|
||||
|
||||
out:
|
||||
|
@ -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 { \
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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:
|
||||
|
@ -119,10 +119,11 @@ struct vec5_fw_feature {
|
||||
|
||||
static __initdata struct vec5_fw_feature
|
||||
vec5_fw_features_table[] = {
|
||||
{FW_FEATURE_TYPE1_AFFINITY, OV5_TYPE1_AFFINITY},
|
||||
{FW_FEATURE_FORM1_AFFINITY, OV5_FORM1_AFFINITY},
|
||||
{FW_FEATURE_PRRN, OV5_PRRN},
|
||||
{FW_FEATURE_DRMEM_V2, OV5_DRMEM_V2},
|
||||
{FW_FEATURE_DRC_INFO, OV5_DRC_INFO},
|
||||
{FW_FEATURE_FORM2_AFFINITY, OV5_FORM2_AFFINITY},
|
||||
};
|
||||
|
||||
static void __init fw_vec5_feature_init(const char *vec5, unsigned long len)
|
||||
|
@ -484,6 +484,8 @@ static ssize_t dlpar_cpu_add(u32 drc_index)
|
||||
return saved_rc;
|
||||
}
|
||||
|
||||
update_numa_distance(dn);
|
||||
|
||||
rc = dlpar_online_cpu(dn);
|
||||
if (rc) {
|
||||
saved_rc = rc;
|
||||
|
@ -180,6 +180,8 @@ static int update_lmb_associativity_index(struct drmem_lmb *lmb)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
update_numa_distance(lmb_node);
|
||||
|
||||
dr_node = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
|
||||
if (!dr_node) {
|
||||
dlpar_free_cc_nodes(lmb_node);
|
||||
|
@ -261,7 +261,7 @@ static int cpu_relative_dispatch_distance(int last_disp_cpu, int cur_disp_cpu)
|
||||
if (!last_disp_cpu_assoc || !cur_disp_cpu_assoc)
|
||||
return -EIO;
|
||||
|
||||
return cpu_distance(last_disp_cpu_assoc, cur_disp_cpu_assoc);
|
||||
return cpu_relative_distance(last_disp_cpu_assoc, cur_disp_cpu_assoc);
|
||||
}
|
||||
|
||||
static int cpu_home_node_dispatch_distance(int disp_cpu)
|
||||
@ -281,7 +281,7 @@ static int cpu_home_node_dispatch_distance(int disp_cpu)
|
||||
if (!disp_cpu_assoc || !vcpu_assoc)
|
||||
return -EIO;
|
||||
|
||||
return cpu_distance(disp_cpu_assoc, vcpu_assoc);
|
||||
return cpu_relative_distance(disp_cpu_assoc, vcpu_assoc);
|
||||
}
|
||||
|
||||
static void update_vcpu_disp_stat(int disp_cpu)
|
||||
|
@ -1079,6 +1079,13 @@ static int papr_scm_probe(struct platform_device *pdev)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/*
|
||||
* open firmware platform device create won't update the NUMA
|
||||
* distance table. For PAPR SCM devices we use numa_map_to_online_node()
|
||||
* to find the nearest online NUMA node and that requires correct
|
||||
* distance table information.
|
||||
*/
|
||||
update_numa_distance(dn);
|
||||
|
||||
p = kzalloc(sizeof(*p), GFP_KERNEL);
|
||||
if (!p)
|
||||
|
@ -4,6 +4,11 @@ KASAN_SANITIZE := n
|
||||
|
||||
targets += trampoline_$(BITS).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_$(BITS).o FORCE
|
||||
|
@ -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 */
|
||||
|
@ -22,6 +22,7 @@ config RISCV
|
||||
select ARCH_HAS_GIGANTIC_PAGE
|
||||
select ARCH_HAS_KCOV
|
||||
select ARCH_HAS_MMIOWB
|
||||
select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
|
||||
select ARCH_HAS_PTE_SPECIAL
|
||||
select ARCH_HAS_SET_DIRECT_MAP
|
||||
select ARCH_HAS_SET_MEMORY
|
||||
@ -331,6 +332,28 @@ config RISCV_BASE_PMU
|
||||
|
||||
endmenu
|
||||
|
||||
config TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI
|
||||
def_bool y
|
||||
# https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=aed44286efa8ae8717a77d94b51ac3614e2ca6dc
|
||||
depends on AS_IS_GNU && AS_VERSION >= 23800
|
||||
help
|
||||
Newer binutils versions default to ISA spec version 20191213 which
|
||||
moves some instructions from the I extension to the Zicsr and Zifencei
|
||||
extensions.
|
||||
|
||||
config TOOLCHAIN_NEEDS_OLD_ISA_SPEC
|
||||
def_bool y
|
||||
depends on TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI
|
||||
# https://github.com/llvm/llvm-project/commit/22e199e6afb1263c943c0c0d4498694e15bf8a16
|
||||
depends on CC_IS_CLANG && CLANG_VERSION < 170000
|
||||
help
|
||||
Certain versions of clang do not support zicsr and zifencei via -march
|
||||
but newer versions of binutils require it for the reasons noted in the
|
||||
help text of CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI. This
|
||||
option causes an older ISA spec compatible with these older versions
|
||||
of clang to be passed to GAS, which has the same result as passing zicsr
|
||||
and zifencei to -march.
|
||||
|
||||
config FPU
|
||||
bool "FPU support"
|
||||
default y
|
||||
|
@ -40,7 +40,7 @@ ifeq ($(CONFIG_LD_IS_LLD),y)
|
||||
ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 150000; echo $$?),0)
|
||||
KBUILD_CFLAGS += -mno-relax
|
||||
KBUILD_AFLAGS += -mno-relax
|
||||
ifneq ($(LLVM_IAS),1)
|
||||
ifndef CONFIG_AS_IS_LLVM
|
||||
KBUILD_CFLAGS += -Wa,-mno-relax
|
||||
KBUILD_AFLAGS += -Wa,-mno-relax
|
||||
endif
|
||||
@ -53,10 +53,12 @@ riscv-march-$(CONFIG_ARCH_RV64I) := rv64ima
|
||||
riscv-march-$(CONFIG_FPU) := $(riscv-march-y)fd
|
||||
riscv-march-$(CONFIG_RISCV_ISA_C) := $(riscv-march-y)c
|
||||
|
||||
# Newer binutils versions default to ISA spec version 20191213 which moves some
|
||||
# instructions from the I extension to the Zicsr and Zifencei extensions.
|
||||
toolchain-need-zicsr-zifencei := $(call cc-option-yn, -march=$(riscv-march-y)_zicsr_zifencei)
|
||||
riscv-march-$(toolchain-need-zicsr-zifencei) := $(riscv-march-y)_zicsr_zifencei
|
||||
ifdef CONFIG_TOOLCHAIN_NEEDS_OLD_ISA_SPEC
|
||||
KBUILD_CFLAGS += -Wa,-misa-spec=2.2
|
||||
KBUILD_AFLAGS += -Wa,-misa-spec=2.2
|
||||
else
|
||||
riscv-march-$(CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI) := $(riscv-march-y)_zicsr_zifencei
|
||||
endif
|
||||
|
||||
KBUILD_CFLAGS += -march=$(subst fd,,$(riscv-march-y))
|
||||
KBUILD_AFLAGS += -march=$(riscv-march-y)
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <asm/vdso.h>
|
||||
#include <asm/switch_to.h>
|
||||
#include <asm/csr.h>
|
||||
#include <asm/cacheflush.h>
|
||||
|
||||
extern u32 __user_rt_sigreturn[2];
|
||||
|
||||
@ -178,6 +179,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
|
||||
{
|
||||
struct rt_sigframe __user *frame;
|
||||
long err = 0;
|
||||
unsigned long __maybe_unused addr;
|
||||
|
||||
frame = get_sigframe(ksig, regs, sizeof(*frame));
|
||||
if (!access_ok(frame, sizeof(*frame)))
|
||||
@ -206,7 +208,12 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
|
||||
if (copy_to_user(&frame->sigreturn_code, __user_rt_sigreturn,
|
||||
sizeof(frame->sigreturn_code)))
|
||||
return -EFAULT;
|
||||
regs->ra = (unsigned long)&frame->sigreturn_code;
|
||||
|
||||
addr = (unsigned long)&frame->sigreturn_code;
|
||||
/* Make sure the two instructions are pushed to icache. */
|
||||
flush_icache_range(addr, addr + sizeof(frame->sigreturn_code));
|
||||
|
||||
regs->ra = addr;
|
||||
#endif /* CONFIG_MMU */
|
||||
|
||||
/*
|
||||
|
@ -500,9 +500,7 @@ long arch_ptrace(struct task_struct *child, long request,
|
||||
}
|
||||
return 0;
|
||||
case PTRACE_GET_LAST_BREAK:
|
||||
put_user(child->thread.last_break,
|
||||
(unsigned long __user *) data);
|
||||
return 0;
|
||||
return put_user(child->thread.last_break, (unsigned long __user *)data);
|
||||
case PTRACE_ENABLE_TE:
|
||||
if (!MACHINE_HAS_TE)
|
||||
return -EIO;
|
||||
@ -854,9 +852,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
||||
}
|
||||
return 0;
|
||||
case PTRACE_GET_LAST_BREAK:
|
||||
put_user(child->thread.last_break,
|
||||
(unsigned int __user *) data);
|
||||
return 0;
|
||||
return put_user(child->thread.last_break, (unsigned int __user *)data);
|
||||
}
|
||||
return compat_ptrace_request(child, request, addr, data);
|
||||
}
|
||||
|
@ -270,10 +270,18 @@ static int handle_prog(struct kvm_vcpu *vcpu)
|
||||
/**
|
||||
* handle_external_interrupt - used for external interruption interceptions
|
||||
*
|
||||
* This interception only occurs if the CPUSTAT_EXT_INT bit was set, or if
|
||||
* the new PSW does not have external interrupts disabled. In the first case,
|
||||
* we've got to deliver the interrupt manually, and in the second case, we
|
||||
* drop to userspace to handle the situation there.
|
||||
* This interception occurs if:
|
||||
* - the CPUSTAT_EXT_INT bit was already set when the external interrupt
|
||||
* occurred. In this case, the interrupt needs to be injected manually to
|
||||
* preserve interrupt priority.
|
||||
* - the external new PSW has external interrupts enabled, which will cause an
|
||||
* interruption loop. We drop to userspace in this case.
|
||||
*
|
||||
* The latter case can be detected by inspecting the external mask bit in the
|
||||
* external new psw.
|
||||
*
|
||||
* Under PV, only the latter case can occur, since interrupt priorities are
|
||||
* handled in the ultravisor.
|
||||
*/
|
||||
static int handle_external_interrupt(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
@ -284,10 +292,18 @@ static int handle_external_interrupt(struct kvm_vcpu *vcpu)
|
||||
|
||||
vcpu->stat.exit_external_interrupt++;
|
||||
|
||||
rc = read_guest_lc(vcpu, __LC_EXT_NEW_PSW, &newpsw, sizeof(psw_t));
|
||||
if (rc)
|
||||
return rc;
|
||||
/* We can not handle clock comparator or timer interrupt with bad PSW */
|
||||
if (kvm_s390_pv_cpu_is_protected(vcpu)) {
|
||||
newpsw = vcpu->arch.sie_block->gpsw;
|
||||
} else {
|
||||
rc = read_guest_lc(vcpu, __LC_EXT_NEW_PSW, &newpsw, sizeof(psw_t));
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
* Clock comparator or timer interrupt with external interrupt enabled
|
||||
* will cause interrupt loop. Drop to userspace.
|
||||
*/
|
||||
if ((eic == EXT_IRQ_CLK_COMP || eic == EXT_IRQ_CPU_TIMER) &&
|
||||
(newpsw.mask & PSW_MASK_EXT))
|
||||
return -EOPNOTSUPP;
|
||||
|
@ -18,7 +18,7 @@ config SH_STANDARD_BIOS
|
||||
|
||||
config STACK_DEBUG
|
||||
bool "Check for stack overflows"
|
||||
depends on DEBUG_KERNEL
|
||||
depends on DEBUG_KERNEL && PRINTK
|
||||
help
|
||||
This option will cause messages to be printed if free stack space
|
||||
drops below a certain limit. Saying Y here will add overhead to
|
||||
|
@ -381,7 +381,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;
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user