Release linux (4.9.10-1).
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEErCspvTSmr92z9o8157/I7JWGEQkFAlinNOsACgkQ57/I7JWG EQntWg//RuNSbOQeyML971UnFUtZjY3yAUYqhPJdpJimjY3WHjmZlJQrLlSz9IYQ 48Pkt/64P0+iAr9zJ+3uJv1fOagKePd5RaS/iChJdvq0fCGZstFlti5NwXEQtGSv Yzp0LStZr+pEPZo+8Bo+TVSP25FNXdZBvhUXE2sbxaV8+W9Vx+qFkfrWEiW7hpFv nCQJic7kmzllS4Aol9e/jj2MqcdWIhviufAImNnfrbpK61Ud6Gznw9gTODw9+OIT ny6F/k7O6MFPuHp3aAxVC5TCowh16PcC+VqJF9MTnnvHQmD3jYqdeA8zKLnW/tJk Dl9A6whZ3n4fFRlGjgxjmTP/CgAIeQVqgTgYCApuQQTVG3svIkznoXJLraj5UE90 rzeB30x3ikUWcVggN7xfSkW3e6/v+XSbRfu73sFA81mWyWoddT/NYhw+Y18ym4UJ Vk8iuAakpjdVj73FSyYOcNGRzOEp2SAV72EsJEMw1/IlIkmRkMmJkkg4T/HYj11P jK/TjZtSsVbje4zx9/U6g8Rj4Wi40EHZu6kuh2jUhCk91zsAr+7EC45gZC+uohxL jxKxv2R5p9AR7uN6JzQR4OuOL1bTCrt02MrWdsiPlUi0RBKlJ7O5sGMMsHrVMinn 4zFNeYq2U3Fyaejb32x3DOKtgCjoMRQ5iHyrjgljhzxJcf3fWKk= =rRkU -----END PGP SIGNATURE----- Merge tag 'debian/4.9.10-1' Drop changes to aufs.
This commit is contained in:
commit
8c94f719fa
|
@ -20,12 +20,13 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fuzz=0
|
fuzz=0
|
||||||
|
jobs=$(nproc)
|
||||||
|
|
||||||
eval "set -- $(getopt -n "$0" -o "f:j:s:" -l "fuzz:" -- "$@")"
|
eval "set -- $(getopt -n "$0" -o "f:j:s:" -l "fuzz:" -- "$@")"
|
||||||
while true; do
|
while true; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-f) flavour="$2"; shift 2 ;;
|
-f) flavour="$2"; shift 2 ;;
|
||||||
-j) export MAKEFLAGS="$MAKEFLAGS -j$2"; shift 2 ;;
|
-j) jobs="$2"; shift 2 ;;
|
||||||
-s) featureset="$2"; shift 2 ;;
|
-s) featureset="$2"; shift 2 ;;
|
||||||
--fuzz) fuzz="$2"; shift 2;;
|
--fuzz) fuzz="$2"; shift 2;;
|
||||||
--) shift 1; break ;;
|
--) shift 1; break ;;
|
||||||
|
@ -38,6 +39,7 @@ if [ $# -lt 1 ]; then
|
||||||
Options:
|
Options:
|
||||||
-f <flavour> specify the 'flavour' of kernel to build, e.g. 686-pae
|
-f <flavour> specify the 'flavour' of kernel to build, e.g. 686-pae
|
||||||
-j <jobs> specify number of compiler jobs to run in parallel
|
-j <jobs> specify number of compiler jobs to run in parallel
|
||||||
|
(default: number of available processors)
|
||||||
-s <featureset> specify an optional featureset to apply, e.g. rt
|
-s <featureset> specify an optional featureset to apply, e.g. rt
|
||||||
--fuzz <num> set the maximum patch fuzz factor (default: 0)
|
--fuzz <num> set the maximum patch fuzz factor (default: 0)
|
||||||
EOF
|
EOF
|
||||||
|
@ -49,6 +51,9 @@ if [ -z "$flavour" ]; then
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
export DEB_BUILD_PROFILES=pkg.linux.notools
|
||||||
|
export MAKEFLAGS="$MAKEFLAGS -j$jobs"
|
||||||
|
|
||||||
dpkg-checkbuilddeps -B
|
dpkg-checkbuilddeps -B
|
||||||
|
|
||||||
# Append 'a~test' to Debian version; this should be less than any official
|
# Append 'a~test' to Debian version; this should be less than any official
|
||||||
|
|
|
@ -54,6 +54,286 @@ linux (4.10~rc6-1~exp1) experimental; urgency=medium
|
||||||
|
|
||||||
-- Ben Hutchings <ben@decadent.org.uk> Tue, 31 Jan 2017 15:33:20 +0000
|
-- Ben Hutchings <ben@decadent.org.uk> Tue, 31 Jan 2017 15:33:20 +0000
|
||||||
|
|
||||||
|
linux (4.9.10-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.7
|
||||||
|
- drm: Schedule the output_poll_work with 1s delay if we have delayed event
|
||||||
|
- drm: Fix broken VT switch with video=1366x768 option
|
||||||
|
- [x86] drm/i915: Ignore bogus plane coordinates on SKL when the plane is
|
||||||
|
not visible
|
||||||
|
- [armhf,arm64] drm/vc4: Fix memory leak of the CRTC state.
|
||||||
|
- [armhf,arm64] drm/vc4: fix a bounds check
|
||||||
|
- Revert "drm/radeon: always apply pci shutdown callbacks"
|
||||||
|
- drm/atomic: clear out fence when duplicating state
|
||||||
|
- mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp
|
||||||
|
- mm/mempolicy.c: do not put mempolicy before using its nodemask
|
||||||
|
- mm, page_alloc: fix check for NULL preferred_zone
|
||||||
|
- mm, page_alloc: fix fast-path race with cpuset update or removal
|
||||||
|
- mm, page_alloc: move cpuset seqcount checking to slowpath
|
||||||
|
- mm, page_alloc: fix premature OOM when racing with cpuset mems update
|
||||||
|
- userns: Make ucounts lock irq-safe
|
||||||
|
- sysctl: fix proc_doulongvec_ms_jiffies_minmax()
|
||||||
|
- xfs: prevent quotacheck from overloading inode lru
|
||||||
|
- ISDN: eicon: silence misleading array-bounds warning
|
||||||
|
- Btrfs: remove old tree_root case in btrfs_read_locked_inode()
|
||||||
|
- Btrfs: disable xattr operations on subvolume directories
|
||||||
|
- Btrfs: remove ->{get, set}_acl() from btrfs_dir_ro_inode_operations
|
||||||
|
- RDMA/cma: Fix unknown symbol when CONFIG_IPV6 is not enabled
|
||||||
|
- [s390x] mm: Fix cmma unused transfer from pgste into pte
|
||||||
|
- [s390x] ptrace: Preserve previous registers for short regset write
|
||||||
|
- IB/cxgb3: fix misspelling in header guard
|
||||||
|
- IB/iser: Fix sg_tablesize calculation
|
||||||
|
- IB/srp: fix mr allocation when the device supports sg gaps
|
||||||
|
- IB/srp: fix invalid indirect_sg_entries parameter value
|
||||||
|
- can: c_can_pci: fix null-pointer-deref in c_can_start() - set device
|
||||||
|
pointer
|
||||||
|
- can: ti_hecc: add missing prepare and unprepare of the clock
|
||||||
|
- [hppa] Don't use BITS_PER_LONG in userspace-exported swab.h header
|
||||||
|
- nfs: Don't increment lock sequence ID after NFS4ERR_MOVED
|
||||||
|
- NFSv4.1: Fix a deadlock in layoutget
|
||||||
|
- NFSv4.0: always send mode in SETATTR after EXCLUSIVE4
|
||||||
|
- SUNRPC: cleanup ida information when removing sunrpc module
|
||||||
|
- iw_cxgb4: free EQ queue memory on last deref
|
||||||
|
- pctv452e: move buffer to heap, no mutex
|
||||||
|
- v4l: tvp5150: Reset device at probe time, not in get/set format handlers
|
||||||
|
- v4l: tvp5150: Fix comment regarding output pin muxing
|
||||||
|
- v4l: tvp5150: Don't override output pinmuxing at stream on/off time
|
||||||
|
- [x86] drm/i915: Clear ret before unbinding in i915_gem_evict_something()
|
||||||
|
- [x86] drm/i915: prevent crash with .disable_display parameter
|
||||||
|
- [x86] drm/i915: Don't leak edid in intel_crt_detect_ddc()
|
||||||
|
- [x86] drm/i915: Don't init hpd polling for vlv and chv from
|
||||||
|
runtime_suspend()
|
||||||
|
- [x86] drm/i915: Fix calculation of rotated x and y offsets for planar
|
||||||
|
formats
|
||||||
|
- [x86] drm/i915: Check for NULL atomic state in
|
||||||
|
intel_crtc_disable_noatomic()
|
||||||
|
- IB/umem: Release pid in error and ODP flow
|
||||||
|
- [x86] pinctrl: baytrail: Rectify debounce support
|
||||||
|
- memory_hotplug: make zone_can_shift() return a boolean value
|
||||||
|
- virtio_mmio: Set DMA masks appropriately
|
||||||
|
- mm, memcg: do not retry precharge charges
|
||||||
|
- perf/core: Fix concurrent sys_perf_event_open() vs. 'move_group' race
|
||||||
|
(CVE-2017-6001)
|
||||||
|
- [x86] drm/i915: Remove WaDisableLSQCROPERFforOCL KBL workaround.
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.8
|
||||||
|
- r8152: fix the sw rx checksum is unavailable
|
||||||
|
- [x86] netvsc: add rcu_read locking to netvsc callback
|
||||||
|
- net: lwtunnel: Handle lwtunnel_fill_encap failure
|
||||||
|
- net: ipv4: fix table id in getroute response
|
||||||
|
- tcp: fix tcp_fastopen unaligned access complaints on sparc
|
||||||
|
- openvswitch: maintain correct checksum state in conntrack actions
|
||||||
|
- mlx4: do not call napi_schedule() without care
|
||||||
|
- ip6_tunnel: Account for tunnel header in tunnel MTU
|
||||||
|
- ax25: Fix segfault after sock connection timeout
|
||||||
|
- net sched actions: fix refcnt when GETing of action after bind
|
||||||
|
- virtio: don't set VIRTIO_NET_HDR_F_DATA_VALID on xmit
|
||||||
|
- virtio-net: restore VIRTIO_HDR_F_DATA_VALID on receiving
|
||||||
|
- vxlan: fix byte order of vxlan-gpe port number
|
||||||
|
- net: fix harmonize_features() vs NETIF_F_HIGHDMA
|
||||||
|
- lwtunnel: fix autoload of lwt modules
|
||||||
|
- ipv6: addrconf: Avoid addrconf_disable_change() using RCU read-side lock
|
||||||
|
- tcp: initialize max window for a new fastopen socket
|
||||||
|
- net/mlx5e: Do not recycle pages from emergency reserve
|
||||||
|
- bridge: netlink: call br_changelink() during br_dev_newlink()
|
||||||
|
- net: mpls: Fix multipath selection for LSR use case
|
||||||
|
- r8152: don't execute runtime suspend if the tx is not empty
|
||||||
|
- af_unix: move unix_mknod() out of bindlock
|
||||||
|
- net: Specify the owning module for lwtunnel ops
|
||||||
|
- lwtunnel: Fix oops on state free after encap module unload
|
||||||
|
- [armhf] net: dsa: Bring back device detaching in dsa_slave_suspend()
|
||||||
|
- xfs: bump up reserved blocks in xfs_alloc_set_aside
|
||||||
|
- xfs: fix bogus minleft manipulations
|
||||||
|
- xfs: adjust allocation length in xfs_alloc_space_available
|
||||||
|
- xfs: don't rely on ->total in xfs_alloc_space_available
|
||||||
|
- xfs: don't print warnings when xfs_log_force fails
|
||||||
|
- xfs: make the ASSERT() condition likely
|
||||||
|
- xfs: sanity check directory inode di_size
|
||||||
|
- xfs: add missing include dependencies to xfs_dir2.h
|
||||||
|
- xfs: replace xfs_mode_to_ftype table with switch statement
|
||||||
|
- xfs: sanity check inode mode when creating new dentry
|
||||||
|
- xfs: sanity check inode di_mode
|
||||||
|
- xfs: don't wrap ID in xfs_dq_get_next_id
|
||||||
|
- xfs: fix xfs_mode_to_ftype() prototype
|
||||||
|
- xfs: fix COW writeback race
|
||||||
|
- xfs: verify dirblocklog correctly
|
||||||
|
- xfs: remove racy hasattr check from attr ops
|
||||||
|
- xfs: extsize hints are not unlikely in xfs_bmap_btalloc
|
||||||
|
- xfs: clear _XBF_PAGES from buffers when readahead page
|
||||||
|
- xfs: fix bmv_count confusion w/ shared extents
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.9
|
||||||
|
- PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe hierarchies
|
||||||
|
- ext4: validate s_first_meta_bg at mount time (CVE-2016-10208)
|
||||||
|
- [x86] efi: Always map the first physical page into the EFI pagetables
|
||||||
|
- [arm64] efi/fdt: Avoid FDT manipulation after ExitBootServices()
|
||||||
|
(Closes: #853170)
|
||||||
|
- HID: cp2112: fix sleep-while-atomic
|
||||||
|
- HID: cp2112: fix gpio-callback error handling
|
||||||
|
- [x86] pinctrl: baytrail: Add missing spinlock usage in
|
||||||
|
byt_gpio_irq_handler
|
||||||
|
- [x86] drm/amdgpu/si: fix crash on headless asics
|
||||||
|
- drm/nouveau/disp/gt215: Fix HDA ELD handling (thus, HDMI audio) on gt215
|
||||||
|
- drm/nouveau/nv1a,nv1f/disp: fix memory clock rate retrieval
|
||||||
|
- crypto: api - Clear CRYPTO_ALG_DEAD bit before registering an alg
|
||||||
|
- crypto: arm64/aes-blk - honour iv_out requirement in CBC and CTR modes
|
||||||
|
- perf/core: Fix use-after-free bug
|
||||||
|
- perf/core: Fix PERF_RECORD_MMAP2 prot/flags for anonymous memory
|
||||||
|
- ata: sata_mv:- Handle return value of devm_ioremap.
|
||||||
|
- libata: apply MAX_SEC_1024 to all CX1-JB*-HP devices
|
||||||
|
- libata: Fix ATA request sense
|
||||||
|
- [powerpc*] eeh: Fix wrong flag passed to eeh_unfreeze_pe()
|
||||||
|
- [powerpc*] Add missing error check to prom_find_boot_cpu()
|
||||||
|
- [powerpc*] mm: Use the correct pointer when setting a 2MB pte
|
||||||
|
- NFSD: Fix a null reference case in find_or_create_lock_stateid()
|
||||||
|
- svcrpc: fix oops in absence of krb5 module
|
||||||
|
- zswap: disable changing params if init fails
|
||||||
|
- cifs: initialize file_info_lock
|
||||||
|
- mm/memory_hotplug.c: check start_pfn in test_pages_in_a_zone()
|
||||||
|
- base/memory, hotplug: fix a kernel oops in show_valid_zones()
|
||||||
|
- mm, fs: check for fatal signals in do_generic_file_read()
|
||||||
|
- tracing: Fix hwlat kthread migration
|
||||||
|
- can: bcm: fix hrtimer/tasklet termination in bcm op removal
|
||||||
|
- cgroup: don't online subsystems before cgroup_name/path() are operational
|
||||||
|
- mmc: sdhci: Ignore unexpected CARD_INT interrupts
|
||||||
|
- vhost: fix initialization for vq->is_le
|
||||||
|
- [armhf] regulator: axp20x: AXP806: Fix dcdcb being set instead of dcdce
|
||||||
|
- percpu-refcount: fix reference leak during percpu-atomic transition
|
||||||
|
- [x86] pinctrl: baytrail: Debounce register is one per community
|
||||||
|
- [x86] pinctrl: intel: merrifield: Add missed check in mrfld_config_set()
|
||||||
|
- iwlwifi: fix double hyphen in MODULE_FIRMWARE for 8000
|
||||||
|
- iwlwifi: mvm: avoid crash on restart w/o reserved queues
|
||||||
|
- HID: usbhid: Quirk a AMI virtual mouse and keyboard with ALWAYS_POLL
|
||||||
|
- HID: hid-lg: Fix immediate disconnection of Logitech Rumblepad 2
|
||||||
|
- HID: wacom: Fix poor prox handling in 'wacom_pl_irq'
|
||||||
|
- [x86] perf/intel/uncore: Clean up hotplug conversion fallout
|
||||||
|
- [armhf] dmaengine: cppi41: Fix runtime PM timeouts with USB mass storage
|
||||||
|
- [armhf] dmaengine: cppi41: Fix oops in cppi41_runtime_resume
|
||||||
|
- [x86] KVM: do not save guest-unsupported XSAVE state
|
||||||
|
- USB: Add quirk for WORLDE easykey.25 MIDI keyboard
|
||||||
|
- usb: musb: Fix host mode error -71 regression
|
||||||
|
- usb: gadget: f_fs: Assorted buffer overflow checks.
|
||||||
|
- irqdomain: Avoid activating interrupts more than once
|
||||||
|
- [x86] irq: Make irq activate operations symmetric
|
||||||
|
- iw_cxgb4: set correct FetchBurstMax for QPs
|
||||||
|
- fs: break out of iomap_file_buffered_write on fatal signals
|
||||||
|
- [x86] drm/i915/execlists: Reset RING registers upon resume
|
||||||
|
(Closes: #855055)
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.10
|
||||||
|
- [x86] cpufreq: intel_pstate: Disable energy efficiency optimization
|
||||||
|
- acpi, nfit: fix acpi_nfit_flush_probe() crash
|
||||||
|
- [x86] libnvdimm, namespace: do not delete namespace-id 0
|
||||||
|
- [x86] libnvdimm, pfn: fix memmap reservation size versus 4K alignment
|
||||||
|
- dm rq: cope with DM device destruction while in dm_old_request_fn()
|
||||||
|
- crypto: algif_aead - Fix kernel panic on list_del
|
||||||
|
- [x86] crypto: qat - fix bar discovery for c62x
|
||||||
|
- [x86] crypto: qat - zero esram only for DH85x devices
|
||||||
|
- [x86] crypto: ccp - Fix DMA operations when IOMMU is enabled
|
||||||
|
- [x86] crypto: ccp - Fix double add when creating new DMA command
|
||||||
|
- Input: uinput - fix crash when mixing old and new init style
|
||||||
|
- selinux: fix off-by-one in setprocattr (CVE-2017-2618)
|
||||||
|
- [x86] Revert "x86/ioapic: Restore IO-APIC irq_chip retrigger callback"
|
||||||
|
- rtlwifi: rtl8192ce: Fix loading of incorrect firmware (Closes: #853073)
|
||||||
|
- cpumask: use nr_cpumask_bits for parsing functions (Closes: #848682)
|
||||||
|
- [armel,armhf] 8643/3: arm/ptrace: Preserve previous registers for short
|
||||||
|
regset write
|
||||||
|
- [x86] drm/i915: fix use-after-free in page_flip_completed()
|
||||||
|
- [x86] drm/i915/bxt: Add MST support when do DPLL calculation
|
||||||
|
- drm/atomic: Fix double free in drm_atomic_state_default_clear
|
||||||
|
- target: Don't BUG_ON during NodeACL dynamic -> explicit conversion
|
||||||
|
- target: Use correct SCSI status during EXTENDED_COPY exception
|
||||||
|
- target: Fix early transport_generic_handle_tmr abort scenario
|
||||||
|
- target: Fix multi-session dynamic se_node_acl double free OOPs
|
||||||
|
- target: Fix COMPARE_AND_WRITE ref leak for non GOOD status
|
||||||
|
- [armhf] dts: imx6dl: fix GPIO4 range
|
||||||
|
- [armhf] 8642/1: LPAE: catch pending imprecise abort on unmask
|
||||||
|
- [x86] drm/i915: Always convert incoming exec offsets to non-canonical
|
||||||
|
- nl80211: Fix mesh HT operation check
|
||||||
|
- mac80211: Fix adding of mesh vendor IEs
|
||||||
|
- net/mlx5e: Modify TIRs hash only when it's needed
|
||||||
|
- [x86] Drivers: hv: vmbus: Base host signaling strictly on the ring state
|
||||||
|
- [x86] Drivers: hv: vmbus: On write cleanup the logic to interrupt the host
|
||||||
|
- [x86] Drivers: hv: vmbus: On the read path cleanup the logic to interrupt
|
||||||
|
the host
|
||||||
|
- [x86] Drivers: hv: vmbus: finally fix hv_need_to_signal_on_read()
|
||||||
|
- [s390x] scsi: zfcp: fix use-after-free by not tracing WKA port open/close
|
||||||
|
on failed send
|
||||||
|
- scsi: aacraid: Fix INTx/MSI-x issue with older controllers
|
||||||
|
- scsi: mpt3sas: disable ASPM for MPI2 controllers
|
||||||
|
- scsi: qla2xxx: Avoid that issuing a LIP triggers a kernel crash
|
||||||
|
- btrfs: fix btrfs_compat_ioctl failures on non-compat ioctls
|
||||||
|
- [powerpc*] mm/radix: Update ERAT flushes when invalidating TLB
|
||||||
|
- [powerpc*] powernv: Fix CPU hotplug to handle waking on HVI
|
||||||
|
- xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend()
|
||||||
|
- ALSA: hda - adding a new NV HDMI/DP codec ID in the driver
|
||||||
|
- ALSA: seq: Fix race at creating a queue
|
||||||
|
- ALSA: seq: Don't handle loop timeout at snd_seq_pool_done()
|
||||||
|
- Revert "ALSA: line6: Only determine control port properties if needed"
|
||||||
|
- [x86] mm/ptdump: Fix soft lockup in page table walker
|
||||||
|
- [x86] CPU/AMD: Bring back Compute Unit ID
|
||||||
|
- [x86] CPU/AMD: Fix Zen SMT topology
|
||||||
|
- IB/rxe: Fix resid update
|
||||||
|
- IB/rxe: Fix mem_check_range integer overflow (CVE-2016-8636)
|
||||||
|
- stacktrace, lockdep: Fix address, newline ugliness
|
||||||
|
- perf diff: Fix -o/--order option behavior (again)
|
||||||
|
- perf diff: Fix segfault on 'perf diff -o N' option
|
||||||
|
- perf/core: Fix crash in perf_event_read()
|
||||||
|
|
||||||
|
[ Ben Hutchings ]
|
||||||
|
* Bump ABI to 2
|
||||||
|
* [or1k] Remove configuration, as the port has been abandoned
|
||||||
|
* [arm64] Enable KEXEC (Closes: #852747)
|
||||||
|
* [arm64,armhf,x86] usb: gadget: Enable USB_CONFIGFS, USB_ETH, USB_GADGETFS,
|
||||||
|
USB_FUNCTIONFS, USB_G_SERIAL as modules;
|
||||||
|
USB_CONFIGFS_{SERIAL,ACM,OBEX,NCM,ECM,ECM_SUBSET,RNDIS,EEM,PHONET,MASS_STORAGE},
|
||||||
|
USB_CONFIGFS_F_{LB_SS,LS,UAC1,UAC2,MIDI,HID,UVC,PRINTER}, USB_ETH_RNDIS,
|
||||||
|
USB_FUNCTIONFS_{ETH,RNDIS,GENERIC} (thanks to Riku Voipio)
|
||||||
|
* [ppc64el] Disable IBMEBUS; this bus does not exist on POWER8 systems
|
||||||
|
* aufs: Update support patchset to aufs4.9-20170206
|
||||||
|
* [rt] Update to 4.9.9-rt6:
|
||||||
|
- Revert "btrfs: swap free() and trace point in run_ordered_work()"
|
||||||
|
- pinctrl: qcom: Use raw spinlock variants
|
||||||
|
- x86/mm/cpa: avoid wbinvd() for PREEMPT
|
||||||
|
- Revert "radix-tree: Make RT aware"
|
||||||
|
- radix-tree: use local locks
|
||||||
|
- softirq: wake the timer softirq if needed
|
||||||
|
- timers: Don't wake ktimersoftd on every tick
|
||||||
|
- rt: Drop mutex_disable() on !DEBUG configs and the GPL suffix from export
|
||||||
|
symbol
|
||||||
|
- cpuset: Convert callback_lock to raw_spinlock_t
|
||||||
|
* pegasus: Use heap buffers for all register access (Closes: #852556)
|
||||||
|
* test-patches: Use the pkg.linux.notools build profile
|
||||||
|
* test-patches: Set default number of jobs to number of available processors
|
||||||
|
* dccp: Disable auto-loading as mitigation against local exploits
|
||||||
|
* net: ipv6: check route protocol when deleting routes (Closes: #855153)
|
||||||
|
* [arm64] drm: Enable DRM_AST as module (Closes: #820168)
|
||||||
|
- udeb: Add ast to fb-modules
|
||||||
|
* [armel/marvell] hwmon: Enable SENSORS_G762 as module (Closes: #854662)
|
||||||
|
* [m68k] Change MAC8390, MAC_SCSI from built-in to modules (Closes: #826614)
|
||||||
|
- udeb: Add mac8390 to nic-shared-modules
|
||||||
|
* udeb: Add bcache to md-modules (Closes: #718548)
|
||||||
|
* [x86] platform: acer-wmi: setup accelerometer when machine has appropriate
|
||||||
|
notify event (Closes: #853067)
|
||||||
|
* [x86] xen: Fix APIC id mismatch warning on Intel (Closes: #853193)
|
||||||
|
* media: dvb-usb-dibusb-mc-common: Add MODULE_LICENSE (Closes: #853110)
|
||||||
|
|
||||||
|
[ Roger Shimizu ]
|
||||||
|
* [armel] ARM: dts: orion5x-lschl: Fix model name
|
||||||
|
* [armel] ARM: dts: orion5x-lschl: More consistent naming on linkstation
|
||||||
|
series
|
||||||
|
* [armel] ARM: orion5x: fix Makefile for linkstation-lschl.dtb
|
||||||
|
|
||||||
|
[ Salvatore Bonaccorso ]
|
||||||
|
* ipv4: keep skb->dst around in presence of IP options (CVE-2017-5970)
|
||||||
|
* sctp: avoid BUG_ON on sctp_wait_for_sndbuf (CVE-2017-5986)
|
||||||
|
|
||||||
|
-- Ben Hutchings <ben@decadent.org.uk> Fri, 17 Feb 2017 13:18:17 +0000
|
||||||
|
|
||||||
|
linux (4.9.6-3) unstable; urgency=medium
|
||||||
|
|
||||||
|
* btree,musb,st_sensors: Ignore ABI changes (fixes FTBFS on armel,armhf)
|
||||||
|
|
||||||
|
-- Ben Hutchings <ben@decadent.org.uk> Sat, 28 Jan 2017 16:11:16 +0000
|
||||||
|
|
||||||
linux (4.9.6-2) unstable; urgency=medium
|
linux (4.9.6-2) unstable; urgency=medium
|
||||||
|
|
||||||
* linux-cpupower: Use dh-exec architecture filtering for x86-specific files
|
* linux-cpupower: Use dh-exec architecture filtering for x86-specific files
|
||||||
|
|
|
@ -10,6 +10,7 @@ CONFIG_ARM64_VA_BITS_48=y
|
||||||
## end choice
|
## end choice
|
||||||
CONFIG_SCHED_MC=y
|
CONFIG_SCHED_MC=y
|
||||||
CONFIG_SECCOMP=y
|
CONFIG_SECCOMP=y
|
||||||
|
CONFIG_KEXEC=y
|
||||||
CONFIG_XEN=y
|
CONFIG_XEN=y
|
||||||
CONFIG_RANDOMIZE_BASE=y
|
CONFIG_RANDOMIZE_BASE=y
|
||||||
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
|
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
|
||||||
|
@ -180,6 +181,11 @@ CONFIG_GPIO_MAX77620=y
|
||||||
##
|
##
|
||||||
CONFIG_DRM=m
|
CONFIG_DRM=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/gpu/drm/ast/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_DRM_AST=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/bridge/adv7511/Kconfig
|
## file: drivers/gpu/drm/bridge/adv7511/Kconfig
|
||||||
##
|
##
|
||||||
|
|
|
@ -223,6 +223,7 @@ CONFIG_MV_XOR=y
|
||||||
## file: drivers/hwmon/Kconfig
|
## file: drivers/hwmon/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_SENSORS_G760A=m
|
CONFIG_SENSORS_G760A=m
|
||||||
|
CONFIG_SENSORS_G762=m
|
||||||
CONFIG_SENSORS_GPIO_FAN=m
|
CONFIG_SENSORS_GPIO_FAN=m
|
||||||
CONFIG_SENSORS_LM75=m
|
CONFIG_SENSORS_LM75=m
|
||||||
|
|
||||||
|
|
|
@ -1118,9 +1118,6 @@ CONFIG_USB_GADGET=m
|
||||||
##
|
##
|
||||||
## file: drivers/usb/gadget/legacy/Kconfig
|
## file: drivers/usb/gadget/legacy/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_USB_ETH=m
|
|
||||||
CONFIG_USB_ETH_RNDIS=y
|
|
||||||
CONFIG_USB_GADGETFS=m
|
|
||||||
CONFIG_USB_G_NOKIA=m
|
CONFIG_USB_G_NOKIA=m
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -4601,6 +4601,37 @@ CONFIG_USB_DYNAMIC_MINORS=y
|
||||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||||
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
||||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||||
|
CONFIG_USB_CONFIGFS=m
|
||||||
|
CONFIG_USB_CONFIGFS_SERIAL=y
|
||||||
|
CONFIG_USB_CONFIGFS_ACM=y
|
||||||
|
CONFIG_USB_CONFIGFS_OBEX=y
|
||||||
|
CONFIG_USB_CONFIGFS_NCM=y
|
||||||
|
CONFIG_USB_CONFIGFS_ECM=y
|
||||||
|
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
|
||||||
|
CONFIG_USB_CONFIGFS_RNDIS=y
|
||||||
|
CONFIG_USB_CONFIGFS_EEM=y
|
||||||
|
CONFIG_USB_CONFIGFS_PHONET=y
|
||||||
|
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_LB_SS=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_FS=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_UAC1=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_UAC2=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_MIDI=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_HID=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_UVC=y
|
||||||
|
CONFIG_USB_CONFIGFS_F_PRINTER=y
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/usb/gadget/legacy/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_USB_ETH=m
|
||||||
|
CONFIG_USB_ETH_RNDIS=y
|
||||||
|
CONFIG_USB_GADGETFS=m
|
||||||
|
CONFIG_USB_FUNCTIONFS=m
|
||||||
|
CONFIG_USB_FUNCTIONFS_ETH=y
|
||||||
|
CONFIG_USB_FUNCTIONFS_RNDIS=y
|
||||||
|
CONFIG_USB_FUNCTIONFS_GENERIC=y
|
||||||
|
CONFIG_USB_G_SERIAL=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/usb/gadget/udc/Kconfig
|
## file: drivers/usb/gadget/udc/Kconfig
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
[abi]
|
[abi]
|
||||||
abiname: 1
|
abiname: 2
|
||||||
ignore-changes:
|
ignore-changes:
|
||||||
__cpuhp_*
|
__cpuhp_*
|
||||||
|
module:drivers/iio/common/st_sensors/**
|
||||||
module:drivers/net/wireless/**
|
module:drivers/net/wireless/**
|
||||||
module:drivers/power/supply/bq27xxx_battery
|
module:drivers/power/supply/bq27xxx_battery
|
||||||
module:drivers/usb/host/**
|
module:drivers/usb/host/**
|
||||||
|
module:drivers/usb/musb/**
|
||||||
module:net/ceph/libceph
|
module:net/ceph/libceph
|
||||||
|
# btree library is only selected by few drivers so not useful OOT
|
||||||
|
btree_*
|
||||||
|
visitor*
|
||||||
|
|
||||||
[base]
|
[base]
|
||||||
arches:
|
arches:
|
||||||
|
@ -30,7 +35,6 @@ arches:
|
||||||
# mipsn32r6el
|
# mipsn32r6el
|
||||||
# mips64r6
|
# mips64r6
|
||||||
# mips64r6el
|
# mips64r6el
|
||||||
or1k
|
|
||||||
powerpc
|
powerpc
|
||||||
powerpcspe
|
powerpcspe
|
||||||
ppc64
|
ppc64
|
||||||
|
|
|
@ -181,5 +181,7 @@ CONFIG_SPARSEMEM_MANUAL=y
|
||||||
##
|
##
|
||||||
## file: unknown
|
## file: unknown
|
||||||
##
|
##
|
||||||
|
#. octeon_mmc driver was requested in #800594, but still hasn't landed
|
||||||
|
#. upstream. Last submitted at: https://lkml.org/lkml/2016/12/19/185
|
||||||
CONFIG_OCTEON_MMC=m
|
CONFIG_OCTEON_MMC=m
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,11 @@
|
||||||
##
|
##
|
||||||
CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
|
CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: arch/powerpc/platforms/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_IBMEBUS=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: arch/powerpc/platforms/cell/Kconfig
|
## file: arch/powerpc/platforms/cell/Kconfig
|
||||||
##
|
##
|
||||||
|
|
|
@ -373,7 +373,7 @@ CONFIG_DEV_APPLETALK=m
|
||||||
## file: drivers/net/ethernet/8390/Kconfig
|
## file: drivers/net/ethernet/8390/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_HYDRA=m
|
CONFIG_HYDRA=m
|
||||||
CONFIG_MAC8390=y
|
CONFIG_MAC8390=m
|
||||||
CONFIG_NE2000=m
|
CONFIG_NE2000=m
|
||||||
CONFIG_APNE=m
|
CONFIG_APNE=m
|
||||||
CONFIG_ZORRO8390=m
|
CONFIG_ZORRO8390=m
|
||||||
|
@ -483,7 +483,7 @@ CONFIG_RTC_DRV_GENERIC=y
|
||||||
##
|
##
|
||||||
## file: drivers/scsi/Kconfig
|
## file: drivers/scsi/Kconfig
|
||||||
##
|
##
|
||||||
#. for MAC_SCSI and MVME147_SCSI that are not tristate
|
#. for MVME147_SCSI that is not tristate
|
||||||
CONFIG_SCSI=y
|
CONFIG_SCSI=y
|
||||||
CONFIG_SCSI_SPI_ATTRS=m
|
CONFIG_SCSI_SPI_ATTRS=m
|
||||||
# CONFIG_SCSI_FC_ATTRS is not set
|
# CONFIG_SCSI_FC_ATTRS is not set
|
||||||
|
@ -496,7 +496,7 @@ CONFIG_GVP11_SCSI=m
|
||||||
CONFIG_SCSI_A4000T=m
|
CONFIG_SCSI_A4000T=m
|
||||||
CONFIG_SCSI_ZORRO7XX=m
|
CONFIG_SCSI_ZORRO7XX=m
|
||||||
CONFIG_ATARI_SCSI=m
|
CONFIG_ATARI_SCSI=m
|
||||||
CONFIG_MAC_SCSI=y
|
CONFIG_MAC_SCSI=m
|
||||||
CONFIG_SCSI_MAC_ESP=m
|
CONFIG_SCSI_MAC_ESP=m
|
||||||
CONFIG_MVME147_SCSI=y
|
CONFIG_MVME147_SCSI=y
|
||||||
CONFIG_MVME16x_SCSI=m
|
CONFIG_MVME16x_SCSI=m
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[base]
|
|
||||||
kernel-arch: openrisc
|
|
||||||
featuresets:
|
|
||||||
# empty; we don't have initramfs working yet
|
|
|
@ -1 +1,2 @@
|
||||||
|
ast
|
||||||
tegra-drm
|
tegra-drm
|
||||||
|
|
|
@ -10,6 +10,7 @@ ariadne2 ?
|
||||||
atarilance ?
|
atarilance ?
|
||||||
dummy
|
dummy
|
||||||
hydra ?
|
hydra ?
|
||||||
|
mac8390 ?
|
||||||
mac89x0 ?
|
mac89x0 ?
|
||||||
macsonic ?
|
macsonic ?
|
||||||
zorro8390 ?
|
zorro8390 ?
|
||||||
|
|
|
@ -8,6 +8,7 @@ raid456
|
||||||
raid10
|
raid10
|
||||||
dm-mirror
|
dm-mirror
|
||||||
dm-snapshot
|
dm-snapshot
|
||||||
|
bcache
|
||||||
|
|
||||||
# RAID-related libraries, also used by btrfs
|
# RAID-related libraries, also used by btrfs
|
||||||
raid6_pq
|
raid6_pq
|
||||||
|
|
47
debian/patches/bugfix/all/ipv4-keep-skb-dst-around-in-presence-of-IP-options.patch
vendored
Normal file
47
debian/patches/bugfix/all/ipv4-keep-skb-dst-around-in-presence-of-IP-options.patch
vendored
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
From: Eric Dumazet <edumazet@google.com>
|
||||||
|
Date: Sat, 4 Feb 2017 11:16:52 -0800
|
||||||
|
Subject: ipv4: keep skb->dst around in presence of IP options
|
||||||
|
Origin: https://git.kernel.org/linus/34b2cef20f19c87999fff3da4071e66937db9644
|
||||||
|
|
||||||
|
Andrey Konovalov got crashes in __ip_options_echo() when a NULL skb->dst
|
||||||
|
is accessed.
|
||||||
|
|
||||||
|
ipv4_pktinfo_prepare() should not drop the dst if (evil) IP options
|
||||||
|
are present.
|
||||||
|
|
||||||
|
We could refine the test to the presence of ts_needtime or srr,
|
||||||
|
but IP options are not often used, so let's be conservative.
|
||||||
|
|
||||||
|
Thanks to syzkaller team for finding this bug.
|
||||||
|
|
||||||
|
Fixes: d826eb14ecef ("ipv4: PKTINFO doesnt need dst reference")
|
||||||
|
Signed-off-by: Eric Dumazet <edumazet@google.com>
|
||||||
|
Reported-by: Andrey Konovalov <andreyknvl@google.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
net/ipv4/ip_sockglue.c | 9 ++++++++-
|
||||||
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
|
||||||
|
index 53ae0c6..9000117 100644
|
||||||
|
--- a/net/ipv4/ip_sockglue.c
|
||||||
|
+++ b/net/ipv4/ip_sockglue.c
|
||||||
|
@@ -1238,7 +1238,14 @@ void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb)
|
||||||
|
pktinfo->ipi_ifindex = 0;
|
||||||
|
pktinfo->ipi_spec_dst.s_addr = 0;
|
||||||
|
}
|
||||||
|
- skb_dst_drop(skb);
|
||||||
|
+ /* We need to keep the dst for __ip_options_echo()
|
||||||
|
+ * We could restrict the test to opt.ts_needtime || opt.srr,
|
||||||
|
+ * but the following is good enough as IP options are not often used.
|
||||||
|
+ */
|
||||||
|
+ if (unlikely(IPCB(skb)->opt.optlen))
|
||||||
|
+ skb_dst_force(skb);
|
||||||
|
+ else
|
||||||
|
+ skb_dst_drop(skb);
|
||||||
|
}
|
||||||
|
|
||||||
|
int ip_setsockopt(struct sock *sk, int level,
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
28
debian/patches/bugfix/all/media-dvb-usb-dibusb-mc-common-add-module_license.patch
vendored
Normal file
28
debian/patches/bugfix/all/media-dvb-usb-dibusb-mc-common-add-module_license.patch
vendored
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Date: Fri, 17 Feb 2017 02:51:21 +0000
|
||||||
|
Subject: [media] dvb-usb-dibusb-mc-common: Add MODULE_LICENSE
|
||||||
|
Bug-Debian: https://bugs.debian.org/853110
|
||||||
|
|
||||||
|
dvb-usb-dibusb-mc-common is licensed under GPLv2, and if we don't say
|
||||||
|
so then it won't even load since it needs a GPL-only symbol.
|
||||||
|
|
||||||
|
Reported-by: Dominique Dumont <dod@debian.org>
|
||||||
|
References: https://bugs.debian.org/853110
|
||||||
|
Cc: stable@vger.kernel.org # 4.9+
|
||||||
|
Fixes: e91455a1495a ("[media] dvb-usb: split out common parts of dibusb")
|
||||||
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
---
|
||||||
|
drivers/media/usb/dvb-usb/dibusb-mc-common.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
--- a/drivers/media/usb/dvb-usb/dibusb-mc-common.c
|
||||||
|
+++ b/drivers/media/usb/dvb-usb/dibusb-mc-common.c
|
||||||
|
@@ -11,6 +11,8 @@
|
||||||
|
|
||||||
|
#include "dibusb.h"
|
||||||
|
|
||||||
|
+MODULE_LICENSE("GPL");
|
||||||
|
+
|
||||||
|
/* 3000MC/P stuff */
|
||||||
|
// Config Adjacent channels Perf -cal22
|
||||||
|
static struct dibx000_agc_config dib3000p_mt2060_agc_config = {
|
88
debian/patches/bugfix/all/pegasus-use-heap-buffers-for-all-register-access.patch
vendored
Normal file
88
debian/patches/bugfix/all/pegasus-use-heap-buffers-for-all-register-access.patch
vendored
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Date: Fri, 27 Jan 2017 02:44:26 +0000
|
||||||
|
Subject: pegasus: Use heap buffers for all register access
|
||||||
|
Forwarded: https://patchwork.ozlabs.org/patch/724109/
|
||||||
|
Bug-Debian: https://bugs.debian.org/852556
|
||||||
|
|
||||||
|
Allocating USB buffers on the stack is not portable, and no longer
|
||||||
|
works on x86_64 (with VMAP_STACK enabled as per default).
|
||||||
|
|
||||||
|
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
|
||||||
|
References: https://bugs.debian.org/852556
|
||||||
|
Reported-by: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
|
||||||
|
Tested-by: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
|
||||||
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
---
|
||||||
|
drivers/net/usb/pegasus.c | 29 +++++++++++++++++++++++++----
|
||||||
|
1 file changed, 25 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
|
||||||
|
index 24e803fe9a53..36674484c6fb 100644
|
||||||
|
--- a/drivers/net/usb/pegasus.c
|
||||||
|
+++ b/drivers/net/usb/pegasus.c
|
||||||
|
@@ -126,40 +126,61 @@ static void async_ctrl_callback(struct urb *urb)
|
||||||
|
|
||||||
|
static int get_registers(pegasus_t *pegasus, __u16 indx, __u16 size, void *data)
|
||||||
|
{
|
||||||
|
+ u8 *buf;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
+ buf = kmalloc(size, GFP_NOIO);
|
||||||
|
+ if (!buf)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+
|
||||||
|
ret = usb_control_msg(pegasus->usb, usb_rcvctrlpipe(pegasus->usb, 0),
|
||||||
|
PEGASUS_REQ_GET_REGS, PEGASUS_REQT_READ, 0,
|
||||||
|
- indx, data, size, 1000);
|
||||||
|
+ indx, buf, size, 1000);
|
||||||
|
if (ret < 0)
|
||||||
|
netif_dbg(pegasus, drv, pegasus->net,
|
||||||
|
"%s returned %d\n", __func__, ret);
|
||||||
|
+ else if (ret <= size)
|
||||||
|
+ memcpy(data, buf, ret);
|
||||||
|
+ kfree(buf);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int set_registers(pegasus_t *pegasus, __u16 indx, __u16 size, void *data)
|
||||||
|
+static int set_registers(pegasus_t *pegasus, __u16 indx, __u16 size,
|
||||||
|
+ const void *data)
|
||||||
|
{
|
||||||
|
+ u8 *buf;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
+ buf = kmemdup(data, size, GFP_NOIO);
|
||||||
|
+ if (!buf)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+
|
||||||
|
ret = usb_control_msg(pegasus->usb, usb_sndctrlpipe(pegasus->usb, 0),
|
||||||
|
PEGASUS_REQ_SET_REGS, PEGASUS_REQT_WRITE, 0,
|
||||||
|
- indx, data, size, 100);
|
||||||
|
+ indx, buf, size, 100);
|
||||||
|
if (ret < 0)
|
||||||
|
netif_dbg(pegasus, drv, pegasus->net,
|
||||||
|
"%s returned %d\n", __func__, ret);
|
||||||
|
+ kfree(buf);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int set_register(pegasus_t *pegasus, __u16 indx, __u8 data)
|
||||||
|
{
|
||||||
|
+ u8 *buf;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
+ buf = kmemdup(&data, 1, GFP_NOIO);
|
||||||
|
+ if (!buf)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+
|
||||||
|
ret = usb_control_msg(pegasus->usb, usb_sndctrlpipe(pegasus->usb, 0),
|
||||||
|
PEGASUS_REQ_SET_REG, PEGASUS_REQT_WRITE, data,
|
||||||
|
- indx, &data, 1, 1000);
|
||||||
|
+ indx, buf, 1, 1000);
|
||||||
|
if (ret < 0)
|
||||||
|
netif_dbg(pegasus, drv, pegasus->net,
|
||||||
|
"%s returned %d\n", __func__, ret);
|
||||||
|
+ kfree(buf);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
|
||||||
|
Date: Mon, 6 Feb 2017 18:10:31 -0200
|
||||||
|
Subject: sctp: avoid BUG_ON on sctp_wait_for_sndbuf
|
||||||
|
Origin: https://git.kernel.org/linus/2dcab598484185dea7ec22219c76dcdd59e3cb90
|
||||||
|
|
||||||
|
Alexander Popov reported that an application may trigger a BUG_ON in
|
||||||
|
sctp_wait_for_sndbuf if the socket tx buffer is full, a thread is
|
||||||
|
waiting on it to queue more data and meanwhile another thread peels off
|
||||||
|
the association being used by the first thread.
|
||||||
|
|
||||||
|
This patch replaces the BUG_ON call with a proper error handling. It
|
||||||
|
will return -EPIPE to the original sendmsg call, similarly to what would
|
||||||
|
have been done if the association wasn't found in the first place.
|
||||||
|
|
||||||
|
Acked-by: Alexander Popov <alex.popov@linux.com>
|
||||||
|
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
|
||||||
|
Reviewed-by: Xin Long <lucien.xin@gmail.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
net/sctp/socket.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
|
||||||
|
index 37eeab7..e214d2e 100644
|
||||||
|
--- a/net/sctp/socket.c
|
||||||
|
+++ b/net/sctp/socket.c
|
||||||
|
@@ -7426,7 +7426,8 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
|
||||||
|
*/
|
||||||
|
release_sock(sk);
|
||||||
|
current_timeo = schedule_timeout(current_timeo);
|
||||||
|
- BUG_ON(sk != asoc->base.sk);
|
||||||
|
+ if (sk != asoc->base.sk)
|
||||||
|
+ goto do_error;
|
||||||
|
lock_sock(sk);
|
||||||
|
|
||||||
|
*timeo_p = current_timeo;
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
79
debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch
vendored
Normal file
79
debian/patches/bugfix/x86/platform-x86-acer-wmi-setup-accelerometer-when-machi.patch
vendored
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
|
||||||
|
Date: Thu, 3 Nov 2016 08:18:52 +0800
|
||||||
|
Subject: platform/x86: acer-wmi: setup accelerometer when machine has
|
||||||
|
appropriate notify event
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
Origin: https://git.kernel.org/linus/98d610c3739ac354319a6590b915f4624d9151e6
|
||||||
|
Bug-Debian: https://bugs.debian.org/853067
|
||||||
|
|
||||||
|
The accelerometer event relies on the ACERWMID_EVENT_GUID notify.
|
||||||
|
So, this patch changes the codes to setup accelerometer input device
|
||||||
|
when detected ACERWMID_EVENT_GUID. It avoids that the accel input
|
||||||
|
device created on every Acer machines.
|
||||||
|
|
||||||
|
In addition, patch adds a clearly parsing logic of accelerometer hid
|
||||||
|
to acer_wmi_get_handle_cb callback function. It is positive matching
|
||||||
|
the "SENR" name with "BST0001" device to avoid non-supported hardware.
|
||||||
|
|
||||||
|
Reported-by: Bjørn Mork <bjorn@mork.no>
|
||||||
|
Cc: Darren Hart <dvhart@infradead.org>
|
||||||
|
Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
|
||||||
|
[andy: slightly massage commit message]
|
||||||
|
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||||
|
---
|
||||||
|
drivers/platform/x86/acer-wmi.c | 22 ++++++++++++++++++----
|
||||||
|
1 file changed, 18 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/platform/x86/acer-wmi.c
|
||||||
|
+++ b/drivers/platform/x86/acer-wmi.c
|
||||||
|
@@ -1808,11 +1808,24 @@ static int __init acer_wmi_enable_lm(voi
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#define ACER_WMID_ACCEL_HID "BST0001"
|
||||||
|
+
|
||||||
|
static acpi_status __init acer_wmi_get_handle_cb(acpi_handle ah, u32 level,
|
||||||
|
void *ctx, void **retval)
|
||||||
|
{
|
||||||
|
+ struct acpi_device *dev;
|
||||||
|
+
|
||||||
|
+ if (!strcmp(ctx, "SENR")) {
|
||||||
|
+ if (acpi_bus_get_device(ah, &dev))
|
||||||
|
+ return AE_OK;
|
||||||
|
+ if (!strcmp(ACER_WMID_ACCEL_HID, acpi_device_hid(dev)))
|
||||||
|
+ return AE_OK;
|
||||||
|
+ } else
|
||||||
|
+ return AE_OK;
|
||||||
|
+
|
||||||
|
*(acpi_handle *)retval = ah;
|
||||||
|
- return AE_OK;
|
||||||
|
+
|
||||||
|
+ return AE_CTRL_TERMINATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int __init acer_wmi_get_handle(const char *name, const char *prop,
|
||||||
|
@@ -1839,7 +1852,7 @@ static int __init acer_wmi_accel_setup(v
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
- err = acer_wmi_get_handle("SENR", "BST0001", &gsensor_handle);
|
||||||
|
+ err = acer_wmi_get_handle("SENR", ACER_WMID_ACCEL_HID, &gsensor_handle);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
@@ -2177,10 +2190,11 @@ static int __init acer_wmi_init(void)
|
||||||
|
err = acer_wmi_input_setup();
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
+ err = acer_wmi_accel_setup();
|
||||||
|
+ if (err)
|
||||||
|
+ return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
- acer_wmi_accel_setup();
|
||||||
|
-
|
||||||
|
err = platform_driver_register(&acer_platform_driver);
|
||||||
|
if (err) {
|
||||||
|
pr_err("Unable to register platform driver\n");
|
57
debian/patches/bugfix/x86/x86-xen-fix-apic-id-mismatch-warning-on-intel.patch
vendored
Normal file
57
debian/patches/bugfix/x86/x86-xen-fix-apic-id-mismatch-warning-on-intel.patch
vendored
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
From: Mohit Gambhir <mohit.gambhir@oracle.com>
|
||||||
|
Date: Thu, 26 Jan 2017 13:12:27 -0500
|
||||||
|
Subject: x86/xen: Fix APIC id mismatch warning on Intel
|
||||||
|
Origin: https://git.kernel.org/linus/cc272163ea554a97dac180fa8dd6cd54c2810bd1
|
||||||
|
Bug-Debian: https://bugs.debian.org/853193
|
||||||
|
|
||||||
|
This patch fixes the following warning message seen when booting the
|
||||||
|
kernel as Dom0 with Xen on Intel machines.
|
||||||
|
|
||||||
|
[0.003000] [Firmware Bug]: CPU1: APIC id mismatch. Firmware: 0 APIC: 1]
|
||||||
|
|
||||||
|
The code generating the warning in validate_apic_and_package_id() matches
|
||||||
|
cpu_data(cpu).apicid (initialized in init_intel()->
|
||||||
|
detect_extended_topology() using cpuid) against the apicid returned from
|
||||||
|
xen_apic_read(). Now, xen_apic_read() makes a hypercall to retrieve apicid
|
||||||
|
for the boot cpu but returns 0 otherwise. Hence the warning gets thrown
|
||||||
|
for all but the boot cpu.
|
||||||
|
|
||||||
|
The idea behind xen_apic_read() returning 0 for apicid is that the
|
||||||
|
guests (even Dom0) should not need to know what physical processor their
|
||||||
|
vcpus are running on. This is because we currently do not have topology
|
||||||
|
information in Xen and also because xen allows more vcpus than physical
|
||||||
|
processors. However, boot cpu's apicid is required for loading
|
||||||
|
xen-acpi-processor driver on AMD machines. Look at following patch for
|
||||||
|
details:
|
||||||
|
|
||||||
|
commit 558daa289a40 ("xen/apic: Return the APIC ID (and version) for CPU
|
||||||
|
0.")
|
||||||
|
|
||||||
|
So to get rid of the warning, this patch modifies
|
||||||
|
xen_cpu_present_to_apicid() to return cpu_data(cpu).apicid instead of
|
||||||
|
calling xen_apic_read().
|
||||||
|
|
||||||
|
The warning is not seen on AMD machines because init_amd() populates
|
||||||
|
cpu_data(cpu).apicid by calling hard_smp_processor_id()->xen_apic_read()
|
||||||
|
as opposed to using apicid from cpuid as is done on Intel machines.
|
||||||
|
|
||||||
|
Signed-off-by: Mohit Gambhir <mohit.gambhir@oracle.com>
|
||||||
|
Reviewed-by: Juergen Gross <jgross@suse.com>
|
||||||
|
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
|
||||||
|
---
|
||||||
|
arch/x86/xen/apic.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/arch/x86/xen/apic.c b/arch/x86/xen/apic.c
|
||||||
|
index 44c88ad1841a..bcea81f36fc5 100644
|
||||||
|
--- a/arch/x86/xen/apic.c
|
||||||
|
+++ b/arch/x86/xen/apic.c
|
||||||
|
@@ -145,7 +145,7 @@ static void xen_silent_inquire(int apicid)
|
||||||
|
static int xen_cpu_present_to_apicid(int cpu)
|
||||||
|
{
|
||||||
|
if (cpu_present(cpu))
|
||||||
|
- return xen_get_apic_id(xen_apic_read(APIC_ID));
|
||||||
|
+ return cpu_data(cpu).apicid;
|
||||||
|
else
|
||||||
|
return BAD_APICID;
|
||||||
|
}
|
41
debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch
vendored
Normal file
41
debian/patches/debian/dccp-disable-auto-loading-as-mitigation-against-local-exploits.patch
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Date: Thu, 16 Feb 2017 19:09:17 +0000
|
||||||
|
Subject: dccp: Disable auto-loading as mitigation against local exploits
|
||||||
|
Forwarded: not-needed
|
||||||
|
|
||||||
|
We can mitigate the effect of vulnerabilities in obscure protocols by
|
||||||
|
preventing unprivileged users from loading the modules, so that they
|
||||||
|
are only exploitable on systems where the administrator has chosen to
|
||||||
|
load the protocol.
|
||||||
|
|
||||||
|
The 'dccp' protocol is not actively maintained or widely used.
|
||||||
|
Therefore disable auto-loading.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
---
|
||||||
|
--- a/net/dccp/ipv4.c
|
||||||
|
+++ b/net/dccp/ipv4.c
|
||||||
|
@@ -1071,8 +1071,8 @@ module_exit(dccp_v4_exit);
|
||||||
|
* values directly, Also cover the case where the protocol is not specified,
|
||||||
|
* i.e. net-pf-PF_INET-proto-0-type-SOCK_DCCP
|
||||||
|
*/
|
||||||
|
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 33, 6);
|
||||||
|
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 0, 6);
|
||||||
|
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 33, 6); */
|
||||||
|
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 0, 6); */
|
||||||
|
MODULE_LICENSE("GPL");
|
||||||
|
MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");
|
||||||
|
MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol");
|
||||||
|
--- a/net/dccp/ipv6.c
|
||||||
|
+++ b/net/dccp/ipv6.c
|
||||||
|
@@ -1125,8 +1125,8 @@ module_exit(dccp_v6_exit);
|
||||||
|
* values directly, Also cover the case where the protocol is not specified,
|
||||||
|
* i.e. net-pf-PF_INET6-proto-0-type-SOCK_DCCP
|
||||||
|
*/
|
||||||
|
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 33, 6);
|
||||||
|
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 0, 6);
|
||||||
|
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 33, 6); */
|
||||||
|
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 0, 6); */
|
||||||
|
MODULE_LICENSE("GPL");
|
||||||
|
MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");
|
||||||
|
MODULE_DESCRIPTION("DCCPv6 - Datagram Congestion Controlled Protocol");
|
|
@ -1,7 +1,7 @@
|
||||||
From: "Yadi.hu" <yadi.hu@windriver.com>
|
From: "Yadi.hu" <yadi.hu@windriver.com>
|
||||||
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
||||||
Subject: ARM: enable irq in translation/section permission fault handlers
|
Subject: ARM: enable irq in translation/section permission fault handlers
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Probably happens on all ARM, with
|
Probably happens on all ARM, with
|
||||||
CONFIG_PREEMPT_RT_FULL
|
CONFIG_PREEMPT_RT_FULL
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 21 Mar 2013 19:01:05 +0100
|
Date: Thu, 21 Mar 2013 19:01:05 +0100
|
||||||
Subject: printk: Drop the logbuf_lock more often
|
Subject: printk: Drop the logbuf_lock more often
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
|
The lock is hold with irgs off. The latency drops 500us+ on my arm bugs
|
||||||
with a "full" buffer after executing "dmesg" on the shell.
|
with a "full" buffer after executing "dmesg" on the shell.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Josh Cartwright <joshc@ni.com>
|
From: Josh Cartwright <joshc@ni.com>
|
||||||
Date: Thu, 11 Feb 2016 11:54:01 -0600
|
Date: Thu, 11 Feb 2016 11:54:01 -0600
|
||||||
Subject: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable()
|
Subject: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating
|
kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating
|
||||||
the vgic and timer states to prevent the calling task from migrating to
|
the vgic and timer states to prevent the calling task from migrating to
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
From: Marcelo Tosatti <mtosatti@redhat.com>
|
||||||
Date: Wed, 8 Apr 2015 20:33:25 -0300
|
Date: Wed, 8 Apr 2015 20:33:25 -0300
|
||||||
Subject: KVM: lapic: mark LAPIC timer handler as irqsafe
|
Subject: KVM: lapic: mark LAPIC timer handler as irqsafe
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Since lapic timer handler only wakes up a simple waitqueue,
|
Since lapic timer handler only wakes up a simple waitqueue,
|
||||||
it can be executed from hardirq context.
|
it can be executed from hardirq context.
|
||||||
|
|
|
@ -5,7 +5,7 @@ Cc: Anna Schumaker <anna.schumaker@netapp.com>,
|
||||||
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
|
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
|
||||||
tglx@linutronix.de
|
tglx@linutronix.de
|
||||||
Subject: NFSv4: replace seqcount_t with a seqlock_t
|
Subject: NFSv4: replace seqcount_t with a seqlock_t
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
|
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
|
||||||
because it maps to preempt_disable() in -RT which I can't have at this
|
because it maps to preempt_disable() in -RT which I can't have at this
|
||||||
|
@ -58,7 +58,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/fs/nfs/nfs4proc.c
|
--- a/fs/nfs/nfs4proc.c
|
||||||
+++ b/fs/nfs/nfs4proc.c
|
+++ b/fs/nfs/nfs4proc.c
|
||||||
@@ -2697,7 +2697,7 @@ static int _nfs4_open_and_get_state(stru
|
@@ -2698,7 +2698,7 @@ static int _nfs4_open_and_get_state(stru
|
||||||
unsigned int seq;
|
unsigned int seq;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
ret = _nfs4_proc_open(opendata);
|
ret = _nfs4_proc_open(opendata);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@@ -2735,7 +2735,7 @@ static int _nfs4_open_and_get_state(stru
|
@@ -2736,7 +2736,7 @@ static int _nfs4_open_and_get_state(stru
|
||||||
ctx->state = state;
|
ctx->state = state;
|
||||||
if (d_inode(dentry) == state->inode) {
|
if (d_inode(dentry) == state->inode) {
|
||||||
nfs_inode_attach_open_context(ctx);
|
nfs_inode_attach_open_context(ctx);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Wed, 13 Feb 2013 09:26:05 -0500
|
Date: Wed, 13 Feb 2013 09:26:05 -0500
|
||||||
Subject: acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t
|
Subject: acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
We hit the following bug with 3.6-rt:
|
We hit the following bug with 3.6-rt:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Anders Roxell <anders.roxell@linaro.org>
|
From: Anders Roxell <anders.roxell@linaro.org>
|
||||||
Date: Thu, 14 May 2015 17:52:17 +0200
|
Date: Thu, 14 May 2015 17:52:17 +0200
|
||||||
Subject: arch/arm64: Add lazy preempt support
|
Subject: arch/arm64: Add lazy preempt support
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
arm64 is missing support for PREEMPT_RT. The main feature which is
|
arm64 is missing support for PREEMPT_RT. The main feature which is
|
||||||
lacking is support for lazy preemption. The arch-specific entry code,
|
lacking is support for lazy preemption. The arch-specific entry code,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||||
Date: Sat, 6 Mar 2010 17:47:10 +0100
|
Date: Sat, 6 Mar 2010 17:47:10 +0100
|
||||||
Subject: ARM: AT91: PIT: Remove irq handler when clock event is unused
|
Subject: ARM: AT91: PIT: Remove irq handler when clock event is unused
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Setup and remove the interrupt handler in clock event mode selection.
|
Setup and remove the interrupt handler in clock event mode selection.
|
||||||
This avoids calling the (shared) interrupt handler when the device is
|
This avoids calling the (shared) interrupt handler when the device is
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sat, 1 May 2010 18:29:35 +0200
|
Date: Sat, 1 May 2010 18:29:35 +0200
|
||||||
Subject: ARM: at91: tclib: Default to tclib timer for RT
|
Subject: ARM: at91: tclib: Default to tclib timer for RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
RT is not too happy about the shared timer interrupt in AT91
|
RT is not too happy about the shared timer interrupt in AT91
|
||||||
devices. Default to tclib timer for RT.
|
devices. Default to tclib timer for RT.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Frank Rowand <frank.rowand@am.sony.com>
|
From: Frank Rowand <frank.rowand@am.sony.com>
|
||||||
Date: Mon, 19 Sep 2011 14:51:14 -0700
|
Date: Mon, 19 Sep 2011 14:51:14 -0700
|
||||||
Subject: arm: Convert arm boot_lock to raw
|
Subject: arm: Convert arm boot_lock to raw
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The arm boot_lock is used by the secondary processor startup code. The locking
|
The arm boot_lock is used by the secondary processor startup code. The locking
|
||||||
task is the idle thread, which has idle->sched_class == &idle_sched_class.
|
task is the idle thread, which has idle->sched_class == &idle_sched_class.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: arm: Enable highmem for rt
|
Subject: arm: Enable highmem for rt
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 13 Feb 2013 11:03:11 +0100
|
Date: Wed, 13 Feb 2013 11:03:11 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
fixup highmem for ARM.
|
fixup highmem for ARM.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Mon, 11 Mar 2013 21:37:27 +0100
|
Date: Mon, 11 Mar 2013 21:37:27 +0100
|
||||||
Subject: arm/highmem: Flush tlb on unmap
|
Subject: arm/highmem: Flush tlb on unmap
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The tlb should be flushed on unmap and thus make the mapping entry
|
The tlb should be flushed on unmap and thus make the mapping entry
|
||||||
invalid. This is only done in the non-debug case which does not look
|
invalid. This is only done in the non-debug case which does not look
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 22 Dec 2016 17:28:33 +0100
|
Date: Thu, 22 Dec 2016 17:28:33 +0100
|
||||||
Subject: [PATCH] arm: include definition for cpumask_t
|
Subject: [PATCH] arm: include definition for cpumask_t
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
This definition gets pulled in by other files. With the (later) split of
|
This definition gets pulled in by other files. With the (later) split of
|
||||||
RCU and spinlock.h it won't compile anymore.
|
RCU and spinlock.h it won't compile anymore.
|
||||||
|
|
|
@ -2,7 +2,7 @@ From 6e2639b6d72e1ef9e264aa658db3b6171d9ba12f Mon Sep 17 00:00:00 2001
|
||||||
From: Yang Shi <yang.shi@linaro.org>
|
From: Yang Shi <yang.shi@linaro.org>
|
||||||
Date: Thu, 10 Nov 2016 16:17:55 -0800
|
Date: Thu, 10 Nov 2016 16:17:55 -0800
|
||||||
Subject: [PATCH] arm: kprobe: replace patch_lock to raw lock
|
Subject: [PATCH] arm: kprobe: replace patch_lock to raw lock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
When running kprobe on -rt kernel, the below bug is caught:
|
When running kprobe on -rt kernel, the below bug is caught:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: arm: Add support for lazy preemption
|
Subject: arm: Add support for lazy preemption
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 31 Oct 2012 12:04:11 +0100
|
Date: Wed, 31 Oct 2012 12:04:11 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Implement the arm pieces for lazy preempt.
|
Implement the arm pieces for lazy preempt.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 20 Sep 2013 14:31:54 +0200
|
Date: Fri, 20 Sep 2013 14:31:54 +0200
|
||||||
Subject: arm/unwind: use a raw_spin_lock
|
Subject: arm/unwind: use a raw_spin_lock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Mostly unwind is done with irqs enabled however SLUB may call it with
|
Mostly unwind is done with irqs enabled however SLUB may call it with
|
||||||
irqs disabled while creating a new SLUB cache.
|
irqs disabled while creating a new SLUB cache.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: arm64/xen: Make XEN depend on !RT
|
Subject: arm64/xen: Make XEN depend on !RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Mon, 12 Oct 2015 11:18:40 +0200
|
Date: Mon, 12 Oct 2015 11:18:40 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
It's not ready and probably never will be, unless xen folks have a
|
It's not ready and probably never will be, unless xen folks have a
|
||||||
look at it.
|
look at it.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 09 Mar 2016 10:51:06 +0100
|
Date: Wed, 09 Mar 2016 10:51:06 +0100
|
||||||
Subject: arm: at91: do not disable/enable clocks in a row
|
Subject: arm: at91: do not disable/enable clocks in a row
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Currently the driver will disable the clock and enable it one line later
|
Currently the driver will disable the clock and enable it one line later
|
||||||
if it is switching from periodic mode into one shot.
|
if it is switching from periodic mode into one shot.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <srostedt@redhat.com>
|
From: Steven Rostedt <srostedt@redhat.com>
|
||||||
Date: Fri, 3 Jul 2009 08:44:29 -0500
|
Date: Fri, 3 Jul 2009 08:44:29 -0500
|
||||||
Subject: ata: Do not disable interrupts in ide code for preempt-rt
|
Subject: ata: Do not disable interrupts in ide code for preempt-rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Use the local_irq_*_nort variants.
|
Use the local_irq_*_nort variants.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 13 Feb 2015 11:01:26 +0100
|
Date: Fri, 13 Feb 2015 11:01:26 +0100
|
||||||
Subject: block: blk-mq: Use swait
|
Subject: block: blk-mq: Use swait
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
||||||
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
|
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 29 Jan 2015 15:10:08 +0100
|
Date: Thu, 29 Jan 2015 15:10:08 +0100
|
||||||
Subject: block/mq: don't complete requests via IPI
|
Subject: block/mq: don't complete requests via IPI
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The IPI runs in hardirq context and there are sleeping locks. This patch
|
The IPI runs in hardirq context and there are sleeping locks. This patch
|
||||||
moves the completion into a workqueue.
|
moves the completion into a workqueue.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||||
Subject: block/mq: do not invoke preempt_disable()
|
Subject: block/mq: do not invoke preempt_disable()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
preempt_disable() and get_cpu() don't play well together with the sleeping
|
preempt_disable() and get_cpu() don't play well together with the sleeping
|
||||||
locks it tries to allocate later.
|
locks it tries to allocate later.
|
||||||
|
@ -32,7 +32,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __blk_mq_complete_request(struct request *rq)
|
static void __blk_mq_complete_request(struct request *rq)
|
||||||
@@ -917,14 +917,14 @@ void blk_mq_run_hw_queue(struct blk_mq_h
|
@@ -915,14 +915,14 @@ void blk_mq_run_hw_queue(struct blk_mq_h
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) {
|
if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
||||||
Subject: block: mq: use cpu_light()
|
Subject: block: mq: use cpu_light()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
there is a might sleep splat because get_cpu() disables preemption and
|
there is a might sleep splat because get_cpu() disables preemption and
|
||||||
later we grab a lock. As a workaround for this we use get_cpu_light().
|
later we grab a lock. As a workaround for this we use get_cpu_light().
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: block: Shorten interrupt disabled regions
|
Subject: block: Shorten interrupt disabled regions
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 22 Jun 2011 19:47:02 +0200
|
Date: Wed, 22 Jun 2011 19:47:02 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
|
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
|
||||||
disabled region in the scheduler allows us to replace
|
disabled region in the scheduler allows us to replace
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: block: Use cpu_chill() for retry loops
|
Subject: block: Use cpu_chill() for retry loops
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Thu, 20 Dec 2012 18:28:26 +0100
|
Date: Thu, 20 Dec 2012 18:28:26 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Retry loops on RT might loop forever when the modifying side was
|
Retry loops on RT might loop forever when the modifying side was
|
||||||
preempted. Steven also observed a live lock when there was a
|
preempted. Steven also observed a live lock when there was a
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
||||||
Date: Wed, 14 Dec 2016 12:28:52 +0100
|
|
||||||
Subject: [PATCH] btrfs: swap free() and trace point in run_ordered_work()
|
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
|
||||||
|
|
||||||
The previous patch removed a trace point due to a use after free problem
|
|
||||||
with tracing enabled. While looking at the backtrace it took me a while
|
|
||||||
to find the right spot. While doing so I noticed that this trace point
|
|
||||||
could be used with two clean-up functions in run_ordered_work():
|
|
||||||
- run_one_async_free()
|
|
||||||
- async_cow_free()
|
|
||||||
|
|
||||||
Both of them free the `work' item so a later use in the tracepoint is
|
|
||||||
not possible.
|
|
||||||
This patches swaps the order so we first have the trace point and then
|
|
||||||
free the struct.
|
|
||||||
|
|
||||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
||||||
---
|
|
||||||
fs/btrfs/async-thread.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/fs/btrfs/async-thread.c
|
|
||||||
+++ b/fs/btrfs/async-thread.c
|
|
||||||
@@ -306,8 +306,8 @@ static void run_ordered_work(struct __bt
|
|
||||||
* because the callback could free the structure.
|
|
||||||
*/
|
|
||||||
wtag = work;
|
|
||||||
- work->ordered_free(work);
|
|
||||||
trace_btrfs_all_work_done(wq->fs_info, wtag);
|
|
||||||
+ work->ordered_free(work);
|
|
||||||
}
|
|
||||||
spin_unlock_irqrestore(lock, flags);
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:58 -0500
|
Date: Fri, 3 Jul 2009 08:29:58 -0500
|
||||||
Subject: bug: BUG_ON/WARN_ON variants dependend on RT/!RT
|
Subject: bug: BUG_ON/WARN_ON variants dependend on RT/!RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code.
|
Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Sat, 21 Jun 2014 10:09:48 +0200
|
Date: Sat, 21 Jun 2014 10:09:48 +0200
|
||||||
Subject: memcontrol: Prevent scheduling while atomic in cgroup code
|
Subject: memcontrol: Prevent scheduling while atomic in cgroup code
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
mm, memcg: make refill_stock() use get_cpu_light()
|
mm, memcg: make refill_stock() use get_cpu_light()
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/mm/memcontrol.c
|
--- a/mm/memcontrol.c
|
||||||
+++ b/mm/memcontrol.c
|
+++ b/mm/memcontrol.c
|
||||||
@@ -1697,6 +1697,7 @@ struct memcg_stock_pcp {
|
@@ -1695,6 +1695,7 @@ struct memcg_stock_pcp {
|
||||||
#define FLUSHING_CACHED_CHARGE 0
|
#define FLUSHING_CACHED_CHARGE 0
|
||||||
};
|
};
|
||||||
static DEFINE_PER_CPU(struct memcg_stock_pcp, memcg_stock);
|
static DEFINE_PER_CPU(struct memcg_stock_pcp, memcg_stock);
|
||||||
|
@ -51,7 +51,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
static DEFINE_MUTEX(percpu_charge_mutex);
|
static DEFINE_MUTEX(percpu_charge_mutex);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1719,7 +1720,7 @@ static bool consume_stock(struct mem_cgr
|
@@ -1717,7 +1718,7 @@ static bool consume_stock(struct mem_cgr
|
||||||
if (nr_pages > CHARGE_BATCH)
|
if (nr_pages > CHARGE_BATCH)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
stock = this_cpu_ptr(&memcg_stock);
|
stock = this_cpu_ptr(&memcg_stock);
|
||||||
if (memcg == stock->cached && stock->nr_pages >= nr_pages) {
|
if (memcg == stock->cached && stock->nr_pages >= nr_pages) {
|
||||||
@@ -1727,7 +1728,7 @@ static bool consume_stock(struct mem_cgr
|
@@ -1725,7 +1726,7 @@ static bool consume_stock(struct mem_cgr
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -1754,13 +1755,13 @@ static void drain_local_stock(struct wor
|
@@ -1752,13 +1753,13 @@ static void drain_local_stock(struct wor
|
||||||
struct memcg_stock_pcp *stock;
|
struct memcg_stock_pcp *stock;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1772,7 +1773,7 @@ static void refill_stock(struct mem_cgro
|
@@ -1770,7 +1771,7 @@ static void refill_stock(struct mem_cgro
|
||||||
struct memcg_stock_pcp *stock;
|
struct memcg_stock_pcp *stock;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
stock = this_cpu_ptr(&memcg_stock);
|
stock = this_cpu_ptr(&memcg_stock);
|
||||||
if (stock->cached != memcg) { /* reset if necessary */
|
if (stock->cached != memcg) { /* reset if necessary */
|
||||||
@@ -1781,7 +1782,7 @@ static void refill_stock(struct mem_cgro
|
@@ -1779,7 +1780,7 @@ static void refill_stock(struct mem_cgro
|
||||||
}
|
}
|
||||||
stock->nr_pages += nr_pages;
|
stock->nr_pages += nr_pages;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 13 Feb 2015 15:52:24 +0100
|
Date: Fri, 13 Feb 2015 15:52:24 +0100
|
||||||
Subject: cgroups: use simple wait in css_release()
|
Subject: cgroups: use simple wait in css_release()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
To avoid:
|
To avoid:
|
||||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
||||||
|
@ -77,7 +77,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_and_link_css(struct cgroup_subsys_state *css,
|
static void init_and_link_css(struct cgroup_subsys_state *css,
|
||||||
@@ -5742,6 +5742,7 @@ static int __init cgroup_wq_init(void)
|
@@ -5739,6 +5739,7 @@ static int __init cgroup_wq_init(void)
|
||||||
*/
|
*/
|
||||||
cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
|
cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
|
||||||
BUG_ON(!cgroup_destroy_wq);
|
BUG_ON(!cgroup_destroy_wq);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
||||||
Date: Thu, 17 Mar 2016 21:09:43 +0100
|
Date: Thu, 17 Mar 2016 21:09:43 +0100
|
||||||
Subject: [PATCH] clockevents/drivers/timer-atmel-pit: fix double free_irq
|
Subject: [PATCH] clockevents/drivers/timer-atmel-pit: fix double free_irq
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
clockevents_exchange_device() changes the state from detached to shutdown
|
clockevents_exchange_device() changes the state from detached to shutdown
|
||||||
and so at that point the IRQ has not yet been requested.
|
and so at that point the IRQ has not yet been requested.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||||
Date: Mon, 8 Mar 2010 18:57:04 +0100
|
Date: Mon, 8 Mar 2010 18:57:04 +0100
|
||||||
Subject: clocksource: TCLIB: Allow higher clock rates for clock events
|
Subject: clocksource: TCLIB: Allow higher clock rates for clock events
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
As default the TCLIB uses the 32KiHz base clock rate for clock events.
|
As default the TCLIB uses the 32KiHz base clock rate for clock events.
|
||||||
Add a compile time selection to allow higher clock resulution.
|
Add a compile time selection to allow higher clock resulution.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: completion: Use simple wait queues
|
Subject: completion: Use simple wait queues
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 11 Jan 2013 11:23:51 +0100
|
Date: Fri, 11 Jan 2013 11:23:51 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Completions have no long lasting callbacks and therefor do not need
|
Completions have no long lasting callbacks and therefor do not need
|
||||||
the complex waitqueue variant. Use simple waitqueues which reduces the
|
the complex waitqueue variant. Use simple waitqueues which reduces the
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: sched: Use the proper LOCK_OFFSET for cond_resched()
|
Subject: sched: Use the proper LOCK_OFFSET for cond_resched()
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 17 Jul 2011 22:51:33 +0200
|
Date: Sun, 17 Jul 2011 22:51:33 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
RT does not increment preempt count when a 'sleeping' spinlock is
|
RT does not increment preempt count when a 'sleeping' spinlock is
|
||||||
locked. Update PREEMPT_LOCK_OFFSET for that case.
|
locked. Update PREEMPT_LOCK_OFFSET for that case.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: sched: Take RT softirq semantics into account in cond_resched()
|
Subject: sched: Take RT softirq semantics into account in cond_resched()
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Thu, 14 Jul 2011 09:56:44 +0200
|
Date: Thu, 14 Jul 2011 09:56:44 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The softirq semantics work different on -RT. There is no SOFTIRQ_MASK in
|
The softirq semantics work different on -RT. There is no SOFTIRQ_MASK in
|
||||||
the preemption counter which leads to the BUG_ON() statement in
|
the preemption counter which leads to the BUG_ON() statement in
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
|
||||||
--- a/include/linux/sched.h
|
--- a/include/linux/sched.h
|
||||||
+++ b/include/linux/sched.h
|
+++ b/include/linux/sched.h
|
||||||
@@ -3366,12 +3366,16 @@ extern int __cond_resched_lock(spinlock_
|
@@ -3367,12 +3367,16 @@ extern int __cond_resched_lock(spinlock_
|
||||||
__cond_resched_lock(lock); \
|
__cond_resched_lock(lock); \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Sun, 16 Oct 2016 05:11:54 +0200
|
Date: Sun, 16 Oct 2016 05:11:54 +0200
|
||||||
Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock
|
Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock
|
||||||
on RT
|
on RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
|
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
|
||||||
|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep
|
|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Thu, 5 Dec 2013 09:16:52 -0500
|
Date: Thu, 5 Dec 2013 09:16:52 -0500
|
||||||
Subject: cpu hotplug: Document why PREEMPT_RT uses a spinlock
|
Subject: cpu hotplug: Document why PREEMPT_RT uses a spinlock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The patch:
|
The patch:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT
|
Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Fri, 02 Mar 2012 10:36:57 -0500
|
Date: Fri, 02 Mar 2012 10:36:57 -0500
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
|
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
|
||||||
might be != RUNNING. So the mutex wakeup will set the state
|
might be != RUNNING. So the mutex wakeup will set the state
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <srostedt@redhat.com>
|
From: Steven Rostedt <srostedt@redhat.com>
|
||||||
Date: Mon, 16 Jul 2012 08:07:43 +0000
|
Date: Mon, 16 Jul 2012 08:07:43 +0000
|
||||||
Subject: cpu/rt: Rework cpu down for PREEMPT_RT
|
Subject: cpu/rt: Rework cpu down for PREEMPT_RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Bringing a CPU down is a pain with the PREEMPT_RT kernel because
|
Bringing a CPU down is a pain with the PREEMPT_RT kernel because
|
||||||
tasks can be preempted in many more places than in non-RT. In
|
tasks can be preempted in many more places than in non-RT. In
|
||||||
|
@ -57,7 +57,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
|
||||||
--- a/include/linux/sched.h
|
--- a/include/linux/sched.h
|
||||||
+++ b/include/linux/sched.h
|
+++ b/include/linux/sched.h
|
||||||
@@ -2473,6 +2473,10 @@ extern void do_set_cpus_allowed(struct t
|
@@ -2474,6 +2474,10 @@ extern void do_set_cpus_allowed(struct t
|
||||||
|
|
||||||
extern int set_cpus_allowed_ptr(struct task_struct *p,
|
extern int set_cpus_allowed_ptr(struct task_struct *p,
|
||||||
const struct cpumask *new_mask);
|
const struct cpumask *new_mask);
|
||||||
|
@ -68,7 +68,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
#else
|
#else
|
||||||
static inline void do_set_cpus_allowed(struct task_struct *p,
|
static inline void do_set_cpus_allowed(struct task_struct *p,
|
||||||
const struct cpumask *new_mask)
|
const struct cpumask *new_mask)
|
||||||
@@ -2485,6 +2489,9 @@ static inline int set_cpus_allowed_ptr(s
|
@@ -2486,6 +2490,9 @@ static inline int set_cpus_allowed_ptr(s
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Tue, 4 Mar 2014 12:28:32 -0500
|
Date: Tue, 4 Mar 2014 12:28:32 -0500
|
||||||
Subject: cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
|
Subject: cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
We hit another bug that was caused by switching cpu_chill() from
|
We hit another bug that was caused by switching cpu_chill() from
|
||||||
msleep() to hrtimer_nanosleep().
|
msleep() to hrtimer_nanosleep().
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Tiejun Chen <tiejun.chen@windriver.com>
|
From: Tiejun Chen <tiejun.chen@windriver.com>
|
||||||
Subject: cpu_down: move migrate_enable() back
|
Subject: cpu_down: move migrate_enable() back
|
||||||
Date: Thu, 7 Nov 2013 10:06:07 +0800
|
Date: Thu, 7 Nov 2013 10:06:07 +0800
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Commit 08c1ab68, "hotplug-use-migrate-disable.patch", intends to
|
Commit 08c1ab68, "hotplug-use-migrate-disable.patch", intends to
|
||||||
use migrate_enable()/migrate_disable() to replace that combination
|
use migrate_enable()/migrate_disable() to replace that combination
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 9 Apr 2015 15:23:01 +0200
|
Date: Thu, 9 Apr 2015 15:23:01 +0200
|
||||||
Subject: cpufreq: drop K8's driver from beeing selected
|
Subject: cpufreq: drop K8's driver from beeing selected
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Ralf posted a picture of a backtrace from
|
Ralf posted a picture of a backtrace from
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 14 Dec 2011 01:03:49 +0100
|
Date: Wed, 14 Dec 2011 01:03:49 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
There are "valid" GFP_ATOMIC allocations such as
|
There are "valid" GFP_ATOMIC allocations such as
|
||||||
|
|
||||||
|
|
287
debian/patches/features/all/rt/cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
vendored
Normal file
287
debian/patches/features/all/rt/cpuset-Convert-callback_lock-to-raw_spinlock_t.patch
vendored
Normal file
|
@ -0,0 +1,287 @@
|
||||||
|
From: Mike Galbraith <efault@gmx.de>
|
||||||
|
Date: Sun, 8 Jan 2017 09:32:25 +0100
|
||||||
|
Subject: [PATCH] cpuset: Convert callback_lock to raw_spinlock_t
|
||||||
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
|
The two commits below add up to a cpuset might_sleep() splat for RT:
|
||||||
|
|
||||||
|
8447a0fee974 cpuset: convert callback_mutex to a spinlock
|
||||||
|
344736f29b35 cpuset: simplify cpuset_node_allowed API
|
||||||
|
|
||||||
|
BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:995
|
||||||
|
in_atomic(): 0, irqs_disabled(): 1, pid: 11718, name: cset
|
||||||
|
CPU: 135 PID: 11718 Comm: cset Tainted: G E 4.10.0-rt1-rt #4
|
||||||
|
Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRHSXSD1.86B.0056.R01.1409242327 09/24/2014
|
||||||
|
Call Trace:
|
||||||
|
? dump_stack+0x5c/0x81
|
||||||
|
? ___might_sleep+0xf4/0x170
|
||||||
|
? rt_spin_lock+0x1c/0x50
|
||||||
|
? __cpuset_node_allowed+0x66/0xc0
|
||||||
|
? ___slab_alloc+0x390/0x570 <disables IRQs>
|
||||||
|
? anon_vma_fork+0x8f/0x140
|
||||||
|
? copy_page_range+0x6cf/0xb00
|
||||||
|
? anon_vma_fork+0x8f/0x140
|
||||||
|
? __slab_alloc.isra.74+0x5a/0x81
|
||||||
|
? anon_vma_fork+0x8f/0x140
|
||||||
|
? kmem_cache_alloc+0x1b5/0x1f0
|
||||||
|
? anon_vma_fork+0x8f/0x140
|
||||||
|
? copy_process.part.35+0x1670/0x1ee0
|
||||||
|
? _do_fork+0xdd/0x3f0
|
||||||
|
? _do_fork+0xdd/0x3f0
|
||||||
|
? do_syscall_64+0x61/0x170
|
||||||
|
? entry_SYSCALL64_slow_path+0x25/0x25
|
||||||
|
|
||||||
|
The later ensured that a NUMA box WILL take callback_lock in atomic
|
||||||
|
context by removing the allocator and reclaim path __GFP_HARDWALL
|
||||||
|
usage which prevented such contexts from taking callback_mutex.
|
||||||
|
|
||||||
|
One option would be to reinstate __GFP_HARDWALL protections for
|
||||||
|
RT, however, as the 8447a0fee974 changelog states:
|
||||||
|
|
||||||
|
The callback_mutex is only used to synchronize reads/updates of cpusets'
|
||||||
|
flags and cpu/node masks. These operations should always proceed fast so
|
||||||
|
there's no reason why we can't use a spinlock instead of the mutex.
|
||||||
|
|
||||||
|
Cc: stable-rt@vger.kernel.org
|
||||||
|
Signed-off-by: Mike Galbraith <efault@gmx.de>
|
||||||
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
---
|
||||||
|
kernel/cpuset.c | 66 ++++++++++++++++++++++++++++----------------------------
|
||||||
|
1 file changed, 33 insertions(+), 33 deletions(-)
|
||||||
|
|
||||||
|
--- a/kernel/cpuset.c
|
||||||
|
+++ b/kernel/cpuset.c
|
||||||
|
@@ -284,7 +284,7 @@ static struct cpuset top_cpuset = {
|
||||||
|
*/
|
||||||
|
|
||||||
|
static DEFINE_MUTEX(cpuset_mutex);
|
||||||
|
-static DEFINE_SPINLOCK(callback_lock);
|
||||||
|
+static DEFINE_RAW_SPINLOCK(callback_lock);
|
||||||
|
|
||||||
|
static struct workqueue_struct *cpuset_migrate_mm_wq;
|
||||||
|
|
||||||
|
@@ -907,9 +907,9 @@ static void update_cpumasks_hier(struct
|
||||||
|
continue;
|
||||||
|
rcu_read_unlock();
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cpumask_copy(cp->effective_cpus, new_cpus);
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
WARN_ON(!cgroup_subsys_on_dfl(cpuset_cgrp_subsys) &&
|
||||||
|
!cpumask_equal(cp->cpus_allowed, cp->effective_cpus));
|
||||||
|
@@ -974,9 +974,9 @@ static int update_cpumask(struct cpuset
|
||||||
|
if (retval < 0)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cpumask_copy(cs->cpus_allowed, trialcs->cpus_allowed);
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
/* use trialcs->cpus_allowed as a temp variable */
|
||||||
|
update_cpumasks_hier(cs, trialcs->cpus_allowed);
|
||||||
|
@@ -1176,9 +1176,9 @@ static void update_nodemasks_hier(struct
|
||||||
|
continue;
|
||||||
|
rcu_read_unlock();
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cp->effective_mems = *new_mems;
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
WARN_ON(!cgroup_subsys_on_dfl(cpuset_cgrp_subsys) &&
|
||||||
|
!nodes_equal(cp->mems_allowed, cp->effective_mems));
|
||||||
|
@@ -1246,9 +1246,9 @@ static int update_nodemask(struct cpuset
|
||||||
|
if (retval < 0)
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cs->mems_allowed = trialcs->mems_allowed;
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
/* use trialcs->mems_allowed as a temp variable */
|
||||||
|
update_nodemasks_hier(cs, &trialcs->mems_allowed);
|
||||||
|
@@ -1339,9 +1339,9 @@ static int update_flag(cpuset_flagbits_t
|
||||||
|
spread_flag_changed = ((is_spread_slab(cs) != is_spread_slab(trialcs))
|
||||||
|
|| (is_spread_page(cs) != is_spread_page(trialcs)));
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cs->flags = trialcs->flags;
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
if (!cpumask_empty(trialcs->cpus_allowed) && balance_flag_changed)
|
||||||
|
rebuild_sched_domains_locked();
|
||||||
|
@@ -1756,7 +1756,7 @@ static int cpuset_common_seq_show(struct
|
||||||
|
cpuset_filetype_t type = seq_cft(sf)->private;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case FILE_CPULIST:
|
||||||
|
@@ -1775,7 +1775,7 @@ static int cpuset_common_seq_show(struct
|
||||||
|
ret = -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1989,12 +1989,12 @@ static int cpuset_css_online(struct cgro
|
||||||
|
|
||||||
|
cpuset_inc();
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
if (cgroup_subsys_on_dfl(cpuset_cgrp_subsys)) {
|
||||||
|
cpumask_copy(cs->effective_cpus, parent->effective_cpus);
|
||||||
|
cs->effective_mems = parent->effective_mems;
|
||||||
|
}
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
if (!test_bit(CGRP_CPUSET_CLONE_CHILDREN, &css->cgroup->flags))
|
||||||
|
goto out_unlock;
|
||||||
|
@@ -2021,12 +2021,12 @@ static int cpuset_css_online(struct cgro
|
||||||
|
}
|
||||||
|
rcu_read_unlock();
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cs->mems_allowed = parent->mems_allowed;
|
||||||
|
cs->effective_mems = parent->mems_allowed;
|
||||||
|
cpumask_copy(cs->cpus_allowed, parent->cpus_allowed);
|
||||||
|
cpumask_copy(cs->effective_cpus, parent->cpus_allowed);
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
out_unlock:
|
||||||
|
mutex_unlock(&cpuset_mutex);
|
||||||
|
return 0;
|
||||||
|
@@ -2065,7 +2065,7 @@ static void cpuset_css_free(struct cgrou
|
||||||
|
static void cpuset_bind(struct cgroup_subsys_state *root_css)
|
||||||
|
{
|
||||||
|
mutex_lock(&cpuset_mutex);
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
|
||||||
|
if (cgroup_subsys_on_dfl(cpuset_cgrp_subsys)) {
|
||||||
|
cpumask_copy(top_cpuset.cpus_allowed, cpu_possible_mask);
|
||||||
|
@@ -2076,7 +2076,7 @@ static void cpuset_bind(struct cgroup_su
|
||||||
|
top_cpuset.mems_allowed = top_cpuset.effective_mems;
|
||||||
|
}
|
||||||
|
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
mutex_unlock(&cpuset_mutex);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2177,12 +2177,12 @@ hotplug_update_tasks_legacy(struct cpuse
|
||||||
|
{
|
||||||
|
bool is_empty;
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cpumask_copy(cs->cpus_allowed, new_cpus);
|
||||||
|
cpumask_copy(cs->effective_cpus, new_cpus);
|
||||||
|
cs->mems_allowed = *new_mems;
|
||||||
|
cs->effective_mems = *new_mems;
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Don't call update_tasks_cpumask() if the cpuset becomes empty,
|
||||||
|
@@ -2219,10 +2219,10 @@ hotplug_update_tasks(struct cpuset *cs,
|
||||||
|
if (nodes_empty(*new_mems))
|
||||||
|
*new_mems = parent_cs(cs)->effective_mems;
|
||||||
|
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
cpumask_copy(cs->effective_cpus, new_cpus);
|
||||||
|
cs->effective_mems = *new_mems;
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
|
||||||
|
if (cpus_updated)
|
||||||
|
update_tasks_cpumask(cs);
|
||||||
|
@@ -2308,21 +2308,21 @@ static void cpuset_hotplug_workfn(struct
|
||||||
|
|
||||||
|
/* synchronize cpus_allowed to cpu_active_mask */
|
||||||
|
if (cpus_updated) {
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
if (!on_dfl)
|
||||||
|
cpumask_copy(top_cpuset.cpus_allowed, &new_cpus);
|
||||||
|
cpumask_copy(top_cpuset.effective_cpus, &new_cpus);
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
/* we don't mess with cpumasks of tasks in top_cpuset */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* synchronize mems_allowed to N_MEMORY */
|
||||||
|
if (mems_updated) {
|
||||||
|
- spin_lock_irq(&callback_lock);
|
||||||
|
+ raw_spin_lock_irq(&callback_lock);
|
||||||
|
if (!on_dfl)
|
||||||
|
top_cpuset.mems_allowed = new_mems;
|
||||||
|
top_cpuset.effective_mems = new_mems;
|
||||||
|
- spin_unlock_irq(&callback_lock);
|
||||||
|
+ raw_spin_unlock_irq(&callback_lock);
|
||||||
|
update_tasks_nodemask(&top_cpuset);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2420,11 +2420,11 @@ void cpuset_cpus_allowed(struct task_str
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
|
- spin_lock_irqsave(&callback_lock, flags);
|
||||||
|
+ raw_spin_lock_irqsave(&callback_lock, flags);
|
||||||
|
rcu_read_lock();
|
||||||
|
guarantee_online_cpus(task_cs(tsk), pmask);
|
||||||
|
rcu_read_unlock();
|
||||||
|
- spin_unlock_irqrestore(&callback_lock, flags);
|
||||||
|
+ raw_spin_unlock_irqrestore(&callback_lock, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cpuset_cpus_allowed_fallback(struct task_struct *tsk)
|
||||||
|
@@ -2472,11 +2472,11 @@ nodemask_t cpuset_mems_allowed(struct ta
|
||||||
|
nodemask_t mask;
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
|
- spin_lock_irqsave(&callback_lock, flags);
|
||||||
|
+ raw_spin_lock_irqsave(&callback_lock, flags);
|
||||||
|
rcu_read_lock();
|
||||||
|
guarantee_online_mems(task_cs(tsk), &mask);
|
||||||
|
rcu_read_unlock();
|
||||||
|
- spin_unlock_irqrestore(&callback_lock, flags);
|
||||||
|
+ raw_spin_unlock_irqrestore(&callback_lock, flags);
|
||||||
|
|
||||||
|
return mask;
|
||||||
|
}
|
||||||
|
@@ -2568,14 +2568,14 @@ bool __cpuset_node_allowed(int node, gfp
|
||||||
|
return true;
|
||||||
|
|
||||||
|
/* Not hardwall and node outside mems_allowed: scan up cpusets */
|
||||||
|
- spin_lock_irqsave(&callback_lock, flags);
|
||||||
|
+ raw_spin_lock_irqsave(&callback_lock, flags);
|
||||||
|
|
||||||
|
rcu_read_lock();
|
||||||
|
cs = nearest_hardwall_ancestor(task_cs(current));
|
||||||
|
allowed = node_isset(node, cs->mems_allowed);
|
||||||
|
rcu_read_unlock();
|
||||||
|
|
||||||
|
- spin_unlock_irqrestore(&callback_lock, flags);
|
||||||
|
+ raw_spin_unlock_irqrestore(&callback_lock, flags);
|
||||||
|
return allowed;
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Fri, 21 Feb 2014 17:24:04 +0100
|
Date: Fri, 21 Feb 2014 17:24:04 +0100
|
||||||
Subject: crypto: Reduce preempt disabled regions, more algos
|
Subject: crypto: Reduce preempt disabled regions, more algos
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Don Estabrook reported
|
Don Estabrook reported
|
||||||
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
|
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: debugobjects: Make RT aware
|
Subject: debugobjects: Make RT aware
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 17 Jul 2011 21:41:35 +0200
|
Date: Sun, 17 Jul 2011 21:41:35 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Avoid filling the pool / allocating memory with irqs off().
|
Avoid filling the pool / allocating memory with irqs off().
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: dm: Make rt aware
|
Subject: dm: Make rt aware
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Mon, 14 Nov 2011 23:06:09 +0100
|
Date: Mon, 14 Nov 2011 23:06:09 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
|
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
|
||||||
interrupts legitimately enabled here as we cant deadlock against the
|
interrupts legitimately enabled here as we cant deadlock against the
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
|
|
||||||
--- a/drivers/md/dm-rq.c
|
--- a/drivers/md/dm-rq.c
|
||||||
+++ b/drivers/md/dm-rq.c
|
+++ b/drivers/md/dm-rq.c
|
||||||
@@ -832,7 +832,7 @@ static void dm_old_request_fn(struct req
|
@@ -838,7 +838,7 @@ static void dm_old_request_fn(struct req
|
||||||
/* Establish tio->ti before queuing work (map_tio_request) */
|
/* Establish tio->ti before queuing work (map_tio_request) */
|
||||||
tio->ti = ti;
|
tio->ti = ti;
|
||||||
kthread_queue_work(&md->kworker, &tio->work);
|
kthread_queue_work(&md->kworker, &tio->work);
|
||||||
|
|
|
@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Thu, 31 Mar 2016 04:08:28 +0200
|
Date: Thu, 31 Mar 2016 04:08:28 +0200
|
||||||
Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex
|
Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex
|
||||||
for -rt
|
for -rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
They're nondeterministic, and lead to ___might_sleep() splats in -rt.
|
They're nondeterministic, and lead to ___might_sleep() splats in -rt.
|
||||||
OTOH, they're a lot less wasteful than an rtmutex per page.
|
OTOH, they're a lot less wasteful than an rtmutex per page.
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/drivers/block/zram/zram_drv.c
|
--- a/drivers/block/zram/zram_drv.c
|
||||||
+++ b/drivers/block/zram/zram_drv.c
|
+++ b/drivers/block/zram/zram_drv.c
|
||||||
@@ -519,6 +519,8 @@ static struct zram_meta *zram_meta_alloc
|
@@ -528,6 +528,8 @@ static struct zram_meta *zram_meta_alloc
|
||||||
goto out_error;
|
goto out_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
return meta;
|
return meta;
|
||||||
|
|
||||||
out_error:
|
out_error:
|
||||||
@@ -567,12 +569,12 @@ static int zram_decompress_page(struct z
|
@@ -576,12 +578,12 @@ static int zram_decompress_page(struct z
|
||||||
unsigned long handle;
|
unsigned long handle;
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
clear_page(mem);
|
clear_page(mem);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -587,7 +589,7 @@ static int zram_decompress_page(struct z
|
@@ -596,7 +598,7 @@ static int zram_decompress_page(struct z
|
||||||
zcomp_stream_put(zram->comp);
|
zcomp_stream_put(zram->comp);
|
||||||
}
|
}
|
||||||
zs_unmap_object(meta->mem_pool, handle);
|
zs_unmap_object(meta->mem_pool, handle);
|
||||||
|
@ -49,7 +49,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
/* Should NEVER happen. Return bio error if it does. */
|
/* Should NEVER happen. Return bio error if it does. */
|
||||||
if (unlikely(ret)) {
|
if (unlikely(ret)) {
|
||||||
@@ -607,14 +609,14 @@ static int zram_bvec_read(struct zram *z
|
@@ -616,14 +618,14 @@ static int zram_bvec_read(struct zram *z
|
||||||
struct zram_meta *meta = zram->meta;
|
struct zram_meta *meta = zram->meta;
|
||||||
page = bvec->bv_page;
|
page = bvec->bv_page;
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
if (is_partial_io(bvec))
|
if (is_partial_io(bvec))
|
||||||
/* Use a temporary buffer to decompress the page */
|
/* Use a temporary buffer to decompress the page */
|
||||||
@@ -691,10 +693,10 @@ static int zram_bvec_write(struct zram *
|
@@ -700,10 +702,10 @@ static int zram_bvec_write(struct zram *
|
||||||
if (user_mem)
|
if (user_mem)
|
||||||
kunmap_atomic(user_mem);
|
kunmap_atomic(user_mem);
|
||||||
/* Free memory associated with this sector now. */
|
/* Free memory associated with this sector now. */
|
||||||
|
@ -80,7 +80,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
atomic64_inc(&zram->stats.zero_pages);
|
atomic64_inc(&zram->stats.zero_pages);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
@@ -785,12 +787,12 @@ static int zram_bvec_write(struct zram *
|
@@ -794,12 +796,12 @@ static int zram_bvec_write(struct zram *
|
||||||
* Free memory associated with this sector
|
* Free memory associated with this sector
|
||||||
* before overwriting unused sectors.
|
* before overwriting unused sectors.
|
||||||
*/
|
*/
|
||||||
|
@ -95,7 +95,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
/* Update stats */
|
/* Update stats */
|
||||||
atomic64_add(clen, &zram->stats.compr_data_size);
|
atomic64_add(clen, &zram->stats.compr_data_size);
|
||||||
@@ -833,9 +835,9 @@ static void zram_bio_discard(struct zram
|
@@ -842,9 +844,9 @@ static void zram_bio_discard(struct zram
|
||||||
}
|
}
|
||||||
|
|
||||||
while (n >= PAGE_SIZE) {
|
while (n >= PAGE_SIZE) {
|
||||||
|
@ -107,7 +107,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
atomic64_inc(&zram->stats.notify_free);
|
atomic64_inc(&zram->stats.notify_free);
|
||||||
index++;
|
index++;
|
||||||
n -= PAGE_SIZE;
|
n -= PAGE_SIZE;
|
||||||
@@ -964,9 +966,9 @@ static void zram_slot_free_notify(struct
|
@@ -973,9 +975,9 @@ static void zram_slot_free_notify(struct
|
||||||
zram = bdev->bd_disk->private_data;
|
zram = bdev->bd_disk->private_data;
|
||||||
meta = zram->meta;
|
meta = zram->meta;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:24 -0500
|
Date: Fri, 3 Jul 2009 08:29:24 -0500
|
||||||
Subject: drivers/net: Use disable_irq_nosync() in 8139too
|
Subject: drivers/net: Use disable_irq_nosync() in 8139too
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Use disable_irq_nosync() instead of disable_irq() as this might be
|
Use disable_irq_nosync() instead of disable_irq() as this might be
|
||||||
called in atomic context with netpoll.
|
called in atomic context with netpoll.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Fri, 3 Jul 2009 08:30:00 -0500
|
Date: Fri, 3 Jul 2009 08:30:00 -0500
|
||||||
Subject: drivers/net: vortex fix locking issues
|
Subject: drivers/net: vortex fix locking issues
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Argh, cut and paste wasn't enough...
|
Argh, cut and paste wasn't enough...
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:30 -0500
|
Date: Fri, 3 Jul 2009 08:29:30 -0500
|
||||||
Subject: drivers: random: Reduce preempt disabled region
|
Subject: drivers: random: Reduce preempt disabled region
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
No need to keep preemption disabled across the whole function.
|
No need to keep preemption disabled across the whole function.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: tty/serial/omap: Make the locking RT aware
|
Subject: tty/serial/omap: Make the locking RT aware
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Thu, 28 Jul 2011 13:32:57 +0200
|
Date: Thu, 28 Jul 2011 13:32:57 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The lock is a sleeping lock and local_irq_save() is not the
|
The lock is a sleeping lock and local_irq_save() is not the
|
||||||
optimsation we are looking for. Redo it to make it work on -RT and
|
optimsation we are looking for. Redo it to make it work on -RT and
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: tty/serial/pl011: Make the locking work on RT
|
Subject: tty/serial/pl011: Make the locking work on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Tue, 08 Jan 2013 21:36:51 +0100
|
Date: Tue, 08 Jan 2013 21:36:51 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The lock is a sleeping lock and local_irq_save() is not the optimsation
|
The lock is a sleeping lock and local_irq_save() is not the optimsation
|
||||||
we are looking for. Redo it to make it work on -RT and non-RT.
|
we are looking for. Redo it to make it work on -RT and non-RT.
|
||||||
|
|
|
@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Thu, 20 Oct 2016 11:15:22 +0200
|
Date: Thu, 20 Oct 2016 11:15:22 +0200
|
||||||
Subject: [PATCH] drivers/zram: Don't disable preemption in
|
Subject: [PATCH] drivers/zram: Don't disable preemption in
|
||||||
zcomp_stream_get/put()
|
zcomp_stream_get/put()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
In v4.7, the driver switched to percpu compression streams, disabling
|
In v4.7, the driver switched to percpu compression streams, disabling
|
||||||
preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We
|
preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We
|
||||||
|
@ -63,7 +63,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
/* dynamic per-device compression frontend */
|
/* dynamic per-device compression frontend */
|
||||||
--- a/drivers/block/zram/zram_drv.c
|
--- a/drivers/block/zram/zram_drv.c
|
||||||
+++ b/drivers/block/zram/zram_drv.c
|
+++ b/drivers/block/zram/zram_drv.c
|
||||||
@@ -568,6 +568,7 @@ static int zram_decompress_page(struct z
|
@@ -577,6 +577,7 @@ static int zram_decompress_page(struct z
|
||||||
struct zram_meta *meta = zram->meta;
|
struct zram_meta *meta = zram->meta;
|
||||||
unsigned long handle;
|
unsigned long handle;
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
|
@ -71,7 +71,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
zram_lock_table(&meta->table[index]);
|
zram_lock_table(&meta->table[index]);
|
||||||
handle = meta->table[index].handle;
|
handle = meta->table[index].handle;
|
||||||
@@ -579,16 +580,15 @@ static int zram_decompress_page(struct z
|
@@ -588,16 +589,15 @@ static int zram_decompress_page(struct z
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 25 Apr 2013 18:12:52 +0200
|
Date: Thu, 25 Apr 2013 18:12:52 +0200
|
||||||
Subject: drm/i915: drop trace_i915_gem_ring_dispatch on rt
|
Subject: drm/i915: drop trace_i915_gem_ring_dispatch on rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
This tracepoint is responsible for:
|
This tracepoint is responsible for:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end()
|
Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end()
|
||||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Sat, 27 Feb 2016 09:01:42 +0100
|
Date: Sat, 27 Feb 2016 09:01:42 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
|
|
||||||
[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918
|
[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended
|
Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended
|
||||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Sat, 27 Feb 2016 08:09:11 +0100
|
Date: Sat, 27 Feb 2016 08:09:11 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
DRM folks identified the spots, so use them.
|
DRM folks identified the spots, so use them.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: fs/epoll: Do not disable preemption on RT
|
Subject: fs/epoll: Do not disable preemption on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 08 Jul 2011 16:35:35 +0200
|
Date: Fri, 08 Jul 2011 16:35:35 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
ep_call_nested() takes a sleeping lock so we can't disable preemption.
|
ep_call_nested() takes a sleeping lock so we can't disable preemption.
|
||||||
The light version is enough since ep_call_nested() doesn't mind beeing
|
The light version is enough since ep_call_nested() doesn't mind beeing
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Mon, 16 Feb 2015 18:49:10 +0100
|
Date: Mon, 16 Feb 2015 18:49:10 +0100
|
||||||
Subject: fs/aio: simple simple work
|
Subject: fs/aio: simple simple work
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|
||||||
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
|
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: block: Turn off warning which is bogus on RT
|
Subject: block: Turn off warning which is bogus on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Tue, 14 Jun 2011 17:05:09 +0200
|
Date: Tue, 14 Jun 2011 17:05:09 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
On -RT the context is always with IRQs enabled. Ignore this warning on -RT.
|
On -RT the context is always with IRQs enabled. Ignore this warning on -RT.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 14 Sep 2016 11:55:23 +0200
|
Date: Wed, 14 Sep 2016 11:55:23 +0200
|
||||||
Subject: fs/dcache: include wait.h
|
Subject: fs/dcache: include wait.h
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Since commit d9171b934526 ("parallel lookups machinery, part 4 (and
|
Since commit d9171b934526 ("parallel lookups machinery, part 4 (and
|
||||||
last)") dcache.h is using but does not include wait.h. It works as long
|
last)") dcache.h is using but does not include wait.h. It works as long
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 14 Sep 2016 17:57:03 +0200
|
Date: Wed, 14 Sep 2016 17:57:03 +0200
|
||||||
Subject: [PATCH] fs/dcache: init in_lookup_hashtable
|
Subject: [PATCH] fs/dcache: init in_lookup_hashtable
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
in_lookup_hashtable was introduced in commit 94bdd655caba ("parallel
|
in_lookup_hashtable was introduced in commit 94bdd655caba ("parallel
|
||||||
lookups machinery, part 3") and never initialized but since it is in
|
lookups machinery, part 3") and never initialized but since it is in
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/fs/dcache.c
|
--- a/fs/dcache.c
|
||||||
+++ b/fs/dcache.c
|
+++ b/fs/dcache.c
|
||||||
@@ -3601,6 +3601,11 @@ EXPORT_SYMBOL(d_genocide);
|
@@ -3604,6 +3604,11 @@ EXPORT_SYMBOL(d_genocide);
|
||||||
|
|
||||||
void __init vfs_caches_init_early(void)
|
void __init vfs_caches_init_early(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: fs: dcache: Use cpu_chill() in trylock loops
|
Subject: fs: dcache: Use cpu_chill() in trylock loops
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Wed, 07 Mar 2012 21:00:34 +0100
|
Date: Wed, 07 Mar 2012 21:00:34 +0100
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Retry loops on RT might loop forever when the modifying side was
|
Retry loops on RT might loop forever when the modifying side was
|
||||||
preempted. Use cpu_chill() instead of cpu_relax() to let the system
|
preempted. Use cpu_chill() instead of cpu_relax() to let the system
|
||||||
|
@ -78,7 +78,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
goto repeat;
|
goto repeat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2321,7 +2333,7 @@ void d_delete(struct dentry * dentry)
|
@@ -2324,7 +2336,7 @@ void d_delete(struct dentry * dentry)
|
||||||
if (dentry->d_lockref.count == 1) {
|
if (dentry->d_lockref.count == 1) {
|
||||||
if (!spin_trylock(&inode->i_lock)) {
|
if (!spin_trylock(&inode->i_lock)) {
|
||||||
spin_unlock(&dentry->d_lock);
|
spin_unlock(&dentry->d_lock);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 14 Sep 2016 14:35:49 +0200
|
Date: Wed, 14 Sep 2016 14:35:49 +0200
|
||||||
Subject: [PATCH] fs/dcache: use swait_queue instead of waitqueue
|
Subject: [PATCH] fs/dcache: use swait_queue instead of waitqueue
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
|
__d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock()
|
||||||
which disables preemption. As a workaround convert it to swait.
|
which disables preemption. As a workaround convert it to swait.
|
||||||
|
@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/fs/dcache.c
|
--- a/fs/dcache.c
|
||||||
+++ b/fs/dcache.c
|
+++ b/fs/dcache.c
|
||||||
@@ -2393,21 +2393,24 @@ static inline void end_dir_add(struct in
|
@@ -2396,21 +2396,24 @@ static inline void end_dir_add(struct in
|
||||||
|
|
||||||
static void d_wait_lookup(struct dentry *dentry)
|
static void d_wait_lookup(struct dentry *dentry)
|
||||||
{
|
{
|
||||||
|
@ -70,7 +70,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
{
|
{
|
||||||
unsigned int hash = name->hash;
|
unsigned int hash = name->hash;
|
||||||
struct hlist_bl_head *b = in_lookup_hash(parent, hash);
|
struct hlist_bl_head *b = in_lookup_hash(parent, hash);
|
||||||
@@ -2516,7 +2519,7 @@ void __d_lookup_done(struct dentry *dent
|
@@ -2519,7 +2522,7 @@ void __d_lookup_done(struct dentry *dent
|
||||||
hlist_bl_lock(b);
|
hlist_bl_lock(b);
|
||||||
dentry->d_flags &= ~DCACHE_PAR_LOOKUP;
|
dentry->d_flags &= ~DCACHE_PAR_LOOKUP;
|
||||||
__hlist_bl_del(&dentry->d_u.d_in_lookup_hash);
|
__hlist_bl_del(&dentry->d_u.d_in_lookup_hash);
|
||||||
|
@ -121,7 +121,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
struct dentry *dentry;
|
struct dentry *dentry;
|
||||||
struct dentry *alias;
|
struct dentry *alias;
|
||||||
struct inode *dir = d_inode(parent);
|
struct inode *dir = d_inode(parent);
|
||||||
@@ -1498,7 +1498,7 @@ int nfs_atomic_open(struct inode *dir, s
|
@@ -1487,7 +1487,7 @@ int nfs_atomic_open(struct inode *dir, s
|
||||||
struct file *file, unsigned open_flags,
|
struct file *file, unsigned open_flags,
|
||||||
umode_t mode, int *opened)
|
umode_t mode, int *opened)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
||||||
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe
|
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
bit_spin_locks break under RT.
|
bit_spin_locks break under RT.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Mon, 17 Feb 2014 17:30:03 +0100
|
Date: Mon, 17 Feb 2014 17:30:03 +0100
|
||||||
Subject: fs: jbd2: pull your plug when waiting for space
|
Subject: fs: jbd2: pull your plug when waiting for space
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Two cps in parallel managed to stall the the ext4 fs. It seems that
|
Two cps in parallel managed to stall the the ext4 fs. It seems that
|
||||||
journal code is either waiting for locks or sleeping waiting for
|
journal code is either waiting for locks or sleeping waiting for
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 19 Jul 2009 08:44:27 -0500
|
Date: Sun, 19 Jul 2009 08:44:27 -0500
|
||||||
Subject: fs: namespace preemption fix
|
Subject: fs: namespace preemption fix
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
On RT we cannot loop with preemption disabled here as
|
On RT we cannot loop with preemption disabled here as
|
||||||
mnt_make_readonly() might have been preempted. We can safely enable
|
mnt_make_readonly() might have been preempted. We can safely enable
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Thu, 15 Sep 2016 10:51:27 +0200
|
Date: Thu, 15 Sep 2016 10:51:27 +0200
|
||||||
Subject: [PATCH] fs/nfs: turn rmdir_sem into a semaphore
|
Subject: [PATCH] fs/nfs: turn rmdir_sem into a semaphore
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
The RW semaphore had a reader side which used the _non_owner version
|
The RW semaphore had a reader side which used the _non_owner version
|
||||||
because it most likely took the reader lock in one thread and released it
|
because it most likely took the reader lock in one thread and released it
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
|
|
||||||
--- a/fs/nfs/dir.c
|
--- a/fs/nfs/dir.c
|
||||||
+++ b/fs/nfs/dir.c
|
+++ b/fs/nfs/dir.c
|
||||||
@@ -1813,7 +1813,11 @@ int nfs_rmdir(struct inode *dir, struct
|
@@ -1802,7 +1802,11 @@ int nfs_rmdir(struct inode *dir, struct
|
||||||
|
|
||||||
trace_nfs_rmdir_enter(dir, dentry);
|
trace_nfs_rmdir_enter(dir, dentry);
|
||||||
if (d_really_is_positive(dentry)) {
|
if (d_really_is_positive(dentry)) {
|
||||||
|
@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name);
|
error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name);
|
||||||
/* Ensure the VFS deletes this inode */
|
/* Ensure the VFS deletes this inode */
|
||||||
switch (error) {
|
switch (error) {
|
||||||
@@ -1823,7 +1827,11 @@ int nfs_rmdir(struct inode *dir, struct
|
@@ -1812,7 +1816,11 @@ int nfs_rmdir(struct inode *dir, struct
|
||||||
case -ENOENT:
|
case -ENOENT:
|
||||||
nfs_dentry_handle_enoent(dentry);
|
nfs_dentry_handle_enoent(dentry);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <efault@gmx.de>
|
From: Mike Galbraith <efault@gmx.de>
|
||||||
Date: Fri, 3 Jul 2009 08:44:12 -0500
|
Date: Fri, 3 Jul 2009 08:44:12 -0500
|
||||||
Subject: fs: ntfs: disable interrupt only on !RT
|
Subject: fs: ntfs: disable interrupt only on !RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
|
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
|
||||||
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
|
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
||||||
Subject: buffer_head: Replace bh_uptodate_lock for -rt
|
Subject: buffer_head: Replace bh_uptodate_lock for -rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Wrap the bit_spin_lock calls into a separate inline and add the RT
|
Wrap the bit_spin_lock calls into a separate inline and add the RT
|
||||||
replacements with a real spinlock.
|
replacements with a real spinlock.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Sun, 16 Oct 2016 05:08:30 +0200
|
Date: Sun, 16 Oct 2016 05:08:30 +0200
|
||||||
Subject: [PATCH] ftrace: Fix trace header alignment
|
Subject: [PATCH] ftrace: Fix trace header alignment
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Line up helper arrows to the right column.
|
Line up helper arrows to the right column.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
||||||
Subject: trace: Add migrate-disabled counter to tracing output
|
Subject: trace: Add migrate-disabled counter to tracing output
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||||
---
|
---
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Fri, 1 Mar 2013 11:17:42 +0100
|
Date: Fri, 1 Mar 2013 11:17:42 +0100
|
||||||
Subject: futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock
|
Subject: futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
In exit_pi_state_list() we have the following locking construct:
|
In exit_pi_state_list() we have the following locking construct:
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Steven Rostedt <rostedt@goodmis.org>
|
From: Steven Rostedt <rostedt@goodmis.org>
|
||||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||||
Subject: futex: Fix bug on when a requeued RT task times out
|
Subject: futex: Fix bug on when a requeued RT task times out
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
|
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Ingo Molnar <mingo@elte.hu>
|
From: Ingo Molnar <mingo@elte.hu>
|
||||||
Date: Fri, 3 Jul 2009 08:29:57 -0500
|
Date: Fri, 3 Jul 2009 08:29:57 -0500
|
||||||
Subject: genirq: Disable irqpoll on -rt
|
Subject: genirq: Disable irqpoll on -rt
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Creates long latencies for no value
|
Creates long latencies for no value
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Wed, 21 Aug 2013 17:48:46 +0200
|
Date: Wed, 21 Aug 2013 17:48:46 +0200
|
||||||
Subject: genirq: Do not invoke the affinity callback via a workqueue on RT
|
Subject: genirq: Do not invoke the affinity callback via a workqueue on RT
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Joe Korty reported, that __irq_set_affinity_locked() schedules a
|
Joe Korty reported, that __irq_set_affinity_locked() schedules a
|
||||||
workqueue while holding a rawlock which results in a might_sleep()
|
workqueue while holding a rawlock which results in a might_sleep()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Subject: genirq: Force interrupt thread on RT
|
Subject: genirq: Force interrupt thread on RT
|
||||||
From: Thomas Gleixner <tglx@linutronix.de>
|
From: Thomas Gleixner <tglx@linutronix.de>
|
||||||
Date: Sun, 03 Apr 2011 11:57:29 +0200
|
Date: Sun, 03 Apr 2011 11:57:29 +0200
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Force threaded_irqs and optimize the code (force_irqthreads) in regard
|
Force threaded_irqs and optimize the code (force_irqthreads) in regard
|
||||||
to this.
|
to this.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Josh Cartwright <joshc@ni.com>
|
From: Josh Cartwright <joshc@ni.com>
|
||||||
Date: Thu, 11 Feb 2016 11:54:00 -0600
|
Date: Thu, 11 Feb 2016 11:54:00 -0600
|
||||||
Subject: genirq: update irq_set_irqchip_state documentation
|
Subject: genirq: update irq_set_irqchip_state documentation
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
On -rt kernels, the use of migrate_disable()/migrate_enable() is
|
On -rt kernels, the use of migrate_disable()/migrate_enable() is
|
||||||
sufficient to guarantee a task isn't moved to another CPU. Update the
|
sufficient to guarantee a task isn't moved to another CPU. Update the
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||||
Subject: gpu: don't check for the lock owner.
|
Subject: gpu: don't check for the lock owner.
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||||
---
|
---
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||||
Date: Tue, 24 Mar 2015 08:14:49 +0100
|
Date: Tue, 24 Mar 2015 08:14:49 +0100
|
||||||
Subject: hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread()
|
Subject: hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread()
|
||||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9-rt1.tar.xz
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.9/older/patches-4.9.9-rt6.tar.xz
|
||||||
|
|
||||||
do_set_cpus_allowed() is not safe vs ->sched_class change.
|
do_set_cpus_allowed() is not safe vs ->sched_class change.
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue