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
|
||||
|
||||
fuzz=0
|
||||
jobs=$(nproc)
|
||||
|
||||
eval "set -- $(getopt -n "$0" -o "f:j:s:" -l "fuzz:" -- "$@")"
|
||||
while true; do
|
||||
case "$1" in
|
||||
-f) flavour="$2"; shift 2 ;;
|
||||
-j) export MAKEFLAGS="$MAKEFLAGS -j$2"; shift 2 ;;
|
||||
-j) jobs="$2"; shift 2 ;;
|
||||
-s) featureset="$2"; shift 2 ;;
|
||||
--fuzz) fuzz="$2"; shift 2;;
|
||||
--) shift 1; break ;;
|
||||
|
@ -38,6 +39,7 @@ if [ $# -lt 1 ]; then
|
|||
Options:
|
||||
-f <flavour> specify the 'flavour' of kernel to build, e.g. 686-pae
|
||||
-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
|
||||
--fuzz <num> set the maximum patch fuzz factor (default: 0)
|
||||
EOF
|
||||
|
@ -49,6 +51,9 @@ if [ -z "$flavour" ]; then
|
|||
exit 2
|
||||
fi
|
||||
|
||||
export DEB_BUILD_PROFILES=pkg.linux.notools
|
||||
export MAKEFLAGS="$MAKEFLAGS -j$jobs"
|
||||
|
||||
dpkg-checkbuilddeps -B
|
||||
|
||||
# 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
|
||||
|
||||
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-cpupower: Use dh-exec architecture filtering for x86-specific files
|
||||
|
|
|
@ -10,6 +10,7 @@ CONFIG_ARM64_VA_BITS_48=y
|
|||
## end choice
|
||||
CONFIG_SCHED_MC=y
|
||||
CONFIG_SECCOMP=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_XEN=y
|
||||
CONFIG_RANDOMIZE_BASE=y
|
||||
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
|
||||
|
@ -180,6 +181,11 @@ CONFIG_GPIO_MAX77620=y
|
|||
##
|
||||
CONFIG_DRM=m
|
||||
|
||||
##
|
||||
## file: drivers/gpu/drm/ast/Kconfig
|
||||
##
|
||||
CONFIG_DRM_AST=m
|
||||
|
||||
##
|
||||
## file: drivers/gpu/drm/bridge/adv7511/Kconfig
|
||||
##
|
||||
|
|
|
@ -223,6 +223,7 @@ CONFIG_MV_XOR=y
|
|||
## file: drivers/hwmon/Kconfig
|
||||
##
|
||||
CONFIG_SENSORS_G760A=m
|
||||
CONFIG_SENSORS_G762=m
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
CONFIG_SENSORS_LM75=m
|
||||
|
||||
|
|
|
@ -1118,9 +1118,6 @@ CONFIG_USB_GADGET=m
|
|||
##
|
||||
## file: drivers/usb/gadget/legacy/Kconfig
|
||||
##
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_USB_ETH_RNDIS=y
|
||||
CONFIG_USB_GADGETFS=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_FS is not set
|
||||
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
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
[abi]
|
||||
abiname: 1
|
||||
abiname: 2
|
||||
ignore-changes:
|
||||
__cpuhp_*
|
||||
module:drivers/iio/common/st_sensors/**
|
||||
module:drivers/net/wireless/**
|
||||
module:drivers/power/supply/bq27xxx_battery
|
||||
module:drivers/usb/host/**
|
||||
module:drivers/usb/musb/**
|
||||
module:net/ceph/libceph
|
||||
# btree library is only selected by few drivers so not useful OOT
|
||||
btree_*
|
||||
visitor*
|
||||
|
||||
[base]
|
||||
arches:
|
||||
|
@ -30,7 +35,6 @@ arches:
|
|||
# mipsn32r6el
|
||||
# mips64r6
|
||||
# mips64r6el
|
||||
or1k
|
||||
powerpc
|
||||
powerpcspe
|
||||
ppc64
|
||||
|
|
|
@ -181,5 +181,7 @@ CONFIG_SPARSEMEM_MANUAL=y
|
|||
##
|
||||
## 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
|
||||
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
##
|
||||
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
|
||||
##
|
||||
|
|
|
@ -373,7 +373,7 @@ CONFIG_DEV_APPLETALK=m
|
|||
## file: drivers/net/ethernet/8390/Kconfig
|
||||
##
|
||||
CONFIG_HYDRA=m
|
||||
CONFIG_MAC8390=y
|
||||
CONFIG_MAC8390=m
|
||||
CONFIG_NE2000=m
|
||||
CONFIG_APNE=m
|
||||
CONFIG_ZORRO8390=m
|
||||
|
@ -483,7 +483,7 @@ CONFIG_RTC_DRV_GENERIC=y
|
|||
##
|
||||
## 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_SPI_ATTRS=m
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
|
@ -496,7 +496,7 @@ CONFIG_GVP11_SCSI=m
|
|||
CONFIG_SCSI_A4000T=m
|
||||
CONFIG_SCSI_ZORRO7XX=m
|
||||
CONFIG_ATARI_SCSI=m
|
||||
CONFIG_MAC_SCSI=y
|
||||
CONFIG_MAC_SCSI=m
|
||||
CONFIG_SCSI_MAC_ESP=m
|
||||
CONFIG_MVME147_SCSI=y
|
||||
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
|
||||
|
|
|
@ -10,6 +10,7 @@ ariadne2 ?
|
|||
atarilance ?
|
||||
dummy
|
||||
hydra ?
|
||||
mac8390 ?
|
||||
mac89x0 ?
|
||||
macsonic ?
|
||||
zorro8390 ?
|
||||
|
|
|
@ -8,6 +8,7 @@ raid456
|
|||
raid10
|
||||
dm-mirror
|
||||
dm-snapshot
|
||||
bcache
|
||||
|
||||
# RAID-related libraries, also used by btrfs
|
||||
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>
|
||||
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
||||
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
|
||||
CONFIG_PREEMPT_RT_FULL
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 21 Mar 2013 19:01:05 +0100
|
||||
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
|
||||
with a "full" buffer after executing "dmesg" on the shell.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Josh Cartwright <joshc@ni.com>
|
||||
Date: Thu, 11 Feb 2016 11:54:01 -0600
|
||||
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
|
||||
the vgic and timer states to prevent the calling task from migrating to
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
||||
Date: Wed, 8 Apr 2015 20:33:25 -0300
|
||||
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,
|
||||
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,
|
||||
tglx@linutronix.de
|
||||
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
|
||||
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
|
||||
+++ 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;
|
||||
int ret;
|
||||
|
||||
|
@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
ret = _nfs4_proc_open(opendata);
|
||||
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;
|
||||
if (d_inode(dentry) == state->inode) {
|
||||
nfs_inode_attach_open_context(ctx);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Wed, 13 Feb 2013 09:26:05 -0500
|
||||
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:
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Anders Roxell <anders.roxell@linaro.org>
|
||||
Date: Thu, 14 May 2015 17:52:17 +0200
|
||||
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
|
||||
lacking is support for lazy preemption. The arch-specific entry code,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||
Date: Sat, 6 Mar 2010 17:47:10 +0100
|
||||
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.
|
||||
This avoids calling the (shared) interrupt handler when the device is
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sat, 1 May 2010 18:29:35 +0200
|
||||
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
|
||||
devices. Default to tclib timer for RT.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Frank Rowand <frank.rowand@am.sony.com>
|
||||
Date: Mon, 19 Sep 2011 14:51:14 -0700
|
||||
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
|
||||
task is the idle thread, which has idle->sched_class == &idle_sched_class.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: arm: Enable highmem for rt
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 11 Mar 2013 21:37:27 +0100
|
||||
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
|
||||
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>
|
||||
Date: Thu, 22 Dec 2016 17:28:33 +0100
|
||||
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
|
||||
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>
|
||||
Date: Thu, 10 Nov 2016 16:17:55 -0800
|
||||
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:
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: arm: Add support for lazy preemption
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 20 Sep 2013 14:31:54 +0200
|
||||
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
|
||||
irqs disabled while creating a new SLUB cache.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: arm64/xen: Make XEN depend on !RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
look at it.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 09 Mar 2016 10:51:06 +0100
|
||||
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
|
||||
if it is switching from periodic mode into one shot.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <srostedt@redhat.com>
|
||||
Date: Fri, 3 Jul 2009 08:44:29 -0500
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 13 Feb 2015 11:01:26 +0100
|
||||
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
|
||||
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 29 Jan 2015 15:10:08 +0100
|
||||
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
|
||||
moves the completion into a workqueue.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||
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
|
||||
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)
|
||||
@@ -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;
|
||||
|
||||
if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
||||
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
|
||||
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
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
disabled region in the scheduler allows us to replace
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: block: Use cpu_chill() for retry loops
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
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>
|
||||
Date: Fri, 3 Jul 2009 08:29:58 -0500
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sat, 21 Jun 2014 10:09:48 +0200
|
||||
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()
|
||||
|
||||
|
@ -43,7 +43,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
--- a/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
|
||||
};
|
||||
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);
|
||||
|
||||
/**
|
||||
@@ -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)
|
||||
return ret;
|
||||
|
||||
|
@ -60,7 +60,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
stock = this_cpu_ptr(&memcg_stock);
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
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;
|
||||
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;
|
||||
unsigned long flags;
|
||||
|
||||
|
@ -94,7 +94,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
stock = this_cpu_ptr(&memcg_stock);
|
||||
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;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 13 Feb 2015 15:52:24 +0100
|
||||
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:
|
||||
|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,
|
||||
@@ -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);
|
||||
BUG_ON(!cgroup_destroy_wq);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
||||
Date: Thu, 17 Mar 2016 21:09:43 +0100
|
||||
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
|
||||
and so at that point the IRQ has not yet been requested.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Benedikt Spranger <b.spranger@linutronix.de>
|
||||
Date: Mon, 8 Mar 2010 18:57:04 +0100
|
||||
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.
|
||||
Add a compile time selection to allow higher clock resulution.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: completion: Use simple wait queues
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
the complex waitqueue variant. Use simple waitqueues which reduces the
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: sched: Use the proper LOCK_OFFSET for cond_resched()
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
locked. Update PREEMPT_LOCK_OFFSET for that case.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: sched: Take RT softirq semantics into account in cond_resched()
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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 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
|
||||
+++ 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); \
|
||||
})
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
|||
Date: Sun, 16 Oct 2016 05:11:54 +0200
|
||||
Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock
|
||||
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
|
||||
|in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Thu, 5 Dec 2013 09:16:52 -0500
|
||||
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:
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: cpu: Make hotplug.lock a "sleeping" spinlock on RT
|
||||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
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
|
||||
might be != RUNNING. So the mutex wakeup will set the state
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <srostedt@redhat.com>
|
||||
Date: Mon, 16 Jul 2012 08:07:43 +0000
|
||||
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
|
||||
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
|
||||
+++ 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,
|
||||
const struct cpumask *new_mask);
|
||||
|
@ -68,7 +68,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|||
#else
|
||||
static inline void do_set_cpus_allowed(struct task_struct *p,
|
||||
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 0;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Tue, 4 Mar 2014 12:28:32 -0500
|
||||
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
|
||||
msleep() to hrtimer_nanosleep().
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Tiejun Chen <tiejun.chen@windriver.com>
|
||||
Subject: cpu_down: move migrate_enable() back
|
||||
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
|
||||
use migrate_enable()/migrate_disable() to replace that combination
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 9 Apr 2015 15:23:01 +0200
|
||||
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
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
|
||||
|
|
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>
|
||||
Date: Fri, 21 Feb 2014 17:24:04 +0100
|
||||
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
|
||||
| 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
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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().
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: dm: Make rt aware
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
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
|
||||
+++ 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) */
|
||||
tio->ti = ti;
|
||||
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
|
||||
Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex
|
||||
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.
|
||||
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
|
||||
+++ 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;
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
return meta;
|
||||
|
||||
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 int size;
|
||||
|
||||
|
@ -40,7 +40,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
clear_page(mem);
|
||||
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);
|
||||
}
|
||||
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. */
|
||||
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;
|
||||
page = bvec->bv_page;
|
||||
|
||||
|
@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
if (is_partial_io(bvec))
|
||||
/* 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)
|
||||
kunmap_atomic(user_mem);
|
||||
/* 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);
|
||||
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
|
||||
* before overwriting unused sectors.
|
||||
*/
|
||||
|
@ -95,7 +95,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
/* Update stats */
|
||||
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) {
|
||||
|
@ -107,7 +107,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
atomic64_inc(&zram->stats.notify_free);
|
||||
index++;
|
||||
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;
|
||||
meta = zram->meta;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:24 -0500
|
||||
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
|
||||
called in atomic context with netpoll.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Fri, 3 Jul 2009 08:30:00 -0500
|
||||
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...
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:30 -0500
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: tty/serial/omap: Make the locking RT aware
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
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
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
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
|
||||
Subject: [PATCH] drivers/zram: Don't disable preemption in
|
||||
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
|
||||
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 */
|
||||
--- a/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;
|
||||
unsigned long handle;
|
||||
unsigned int size;
|
||||
|
@ -71,7 +71,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
|
||||
zram_lock_table(&meta->table[index]);
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 25 Apr 2013 18:12:52 +0200
|
||||
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:
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end()
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: fs/epoll: Do not disable preemption on RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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.
|
||||
The light version is enough since ep_call_nested() doesn't mind beeing
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 16 Feb 2015 18:49:10 +0100
|
||||
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
|
||||
|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
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 14 Sep 2016 11:55:23 +0200
|
||||
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
|
||||
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>
|
||||
Date: Wed, 14 Sep 2016 17:57:03 +0200
|
||||
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
|
||||
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
|
||||
+++ 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)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: fs: dcache: Use cpu_chill() in trylock loops
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -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 (!spin_trylock(&inode->i_lock)) {
|
||||
spin_unlock(&dentry->d_lock);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 14 Sep 2016 14:35:49 +0200
|
||||
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()
|
||||
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
|
||||
+++ 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)
|
||||
{
|
||||
|
@ -70,7 +70,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|||
{
|
||||
unsigned int hash = name->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);
|
||||
dentry->d_flags &= ~DCACHE_PAR_LOOKUP;
|
||||
__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 *alias;
|
||||
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,
|
||||
umode_t mode, int *opened)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 17 Feb 2014 17:30:03 +0100
|
||||
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
|
||||
journal code is either waiting for locks or sleeping waiting for
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 19 Jul 2009 08:44:27 -0500
|
||||
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
|
||||
mnt_make_readonly() might have been preempted. We can safely enable
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 15 Sep 2016 10:51:27 +0200
|
||||
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
|
||||
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
|
||||
+++ 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);
|
||||
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);
|
||||
/* Ensure the VFS deletes this inode */
|
||||
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:
|
||||
nfs_dentry_handle_enoent(dentry);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Mike Galbraith <efault@gmx.de>
|
||||
Date: Fri, 3 Jul 2009 08:44:12 -0500
|
||||
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:
|
||||
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
||||
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
|
||||
replacements with a real spinlock.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sun, 16 Oct 2016 05:08:30 +0200
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
||||
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>
|
||||
---
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 1 Mar 2013 11:17:42 +0100
|
||||
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:
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Steven Rostedt <rostedt@goodmis.org>
|
||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||
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.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Ingo Molnar <mingo@elte.hu>
|
||||
Date: Fri, 3 Jul 2009 08:29:57 -0500
|
||||
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
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 21 Aug 2013 17:48:46 +0200
|
||||
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
|
||||
workqueue while holding a rawlock which results in a might_sleep()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Subject: genirq: Force interrupt thread on RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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
|
||||
to this.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Josh Cartwright <joshc@ni.com>
|
||||
Date: Thu, 11 Feb 2016 11:54:00 -0600
|
||||
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
|
||||
sufficient to guarantee a task isn't moved to another CPU. Update the
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 14 Jul 2015 14:26:34 +0200
|
||||
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>
|
||||
---
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Tue, 24 Mar 2015 08:14:49 +0100
|
||||
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.
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue