[linux] 01/01: Update to 4.2.4

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Fri Oct 23 00:38:13 UTC 2015


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch sid
in repository linux.

commit 3bbce43ea7fdd73b13a3d79c5ea8bd071d2b9592
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Fri Oct 23 01:37:19 2015 +0100

    Update to 4.2.4
    
    Drop patches applied upstream.
    
    Fix two ABI changes.
---
 debian/changelog                                   | 260 ++++++++++++++++++++-
 ...msg-shm-IPC-objects-before-doing-ipc_addi.patch | 117 ----------
 ...ache-handle-escaped-paths-in-prepend_path.patch |  58 -----
 ...tight-loop-implementation-of-systime-read.patch |  61 -----
 ...onntrack-use-nf_ct_tmpl_free-in-ct-synpro.patch | 100 --------
 ...iteheat-fix-potential-null-deref-at-probe.patch |  79 -------
 ...r-and-handle-paths-that-are-unreachable-f.patch | 104 ---------
 ...f-avoid-unreachable-code-on-little-endian.patch |  49 ----
 ...pf-fix-build-on-pre-r2-little-endian-cpus.patch | 117 ----------
 ...hda-disable-power_save_node-for-thinkpads.patch |  80 -------
 .../debian/signal-fix-abi-change-in-4.2.4.patch    |  47 ++++
 .../debian/target-fix-abi-change-in-4.2.4.patch    |  17 ++
 debian/patches/series                              |  12 +-
 13 files changed, 326 insertions(+), 775 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 9205db3..1cb7c5a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,262 @@
-linux (4.2.3-3) UNRELEASED; urgency=medium
+linux (4.2.4-1) UNRELEASED; urgency=medium
+
+  * New upstream stable update:
+    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.4
+    - [armhf] KVM: Fix incorrect device to IPA mapping
+    - [x86] KVM: vmx: fix VPID is 0000H in non-root operation
+    - kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd
+    - kvm: fix zero length mmio searching
+    - kvm: factor out core eventfd assign/deassign logic
+    - kvm: fix double free for fast mmio eventfd
+    - [armhf] KVM: Disable virtual timer even if the guest is not using it
+    - kvm: svm: reset mmu on VCPU reset
+    - [x86] KVM: trap AMD MSRs for the TSeg base and mask
+    - [powerpc*] KVM: Book3S: Take the kvm->srcu lock in
+      kvmppc_h_logical_ci_load/store()
+    - [powerpc*] KVM: Book3S HV: Pass the correct trap argument to
+      kvmhv_commence_exit
+    - [x86] Revert "KVM: x86: apply guest MTRR virtualization on host reserved
+      pages"
+    - [x86] Revert "KVM: SVM: use NPT page attributes"
+    - [x86] Revert "KVM: SVM: Sync g_pat with guest-written PAT value"
+    - time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of
+      abs64()
+    - target/iscsi: Fix np_ip bracket issue by removing np_ip
+    - scsi: fix scsi_error_handler vs. scsi_host_dev_release race
+    - target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
+    - target: Fix PR registration + APTPL RCU conversion regression
+    - iser-target: remove command with state ISTATE_REMOVE
+    - iser-target: Put the reference on commands waiting for unsol data
+    - toshiba_acpi: Fix hotkeys registration on some toshiba models
+    - [x86] perf/intel: Fix constraint access
+    - [x86] locking/qspinlock: Fix performance regression under unaccelerated
+      VMs
+    - [x86] locking/qspinlock: Only emit the test-and-set fallback when
+      building guest support
+    - [armhf] 8401/1: perf: Set affinity for PPI based PMUs
+    - perf hists: Update the column width for the "srcline" sort key
+    - perf stat: Get correct cpu id for print_aggr
+    - perf tools: Add missing forward declaration of struct map to probe-event.h
+    - perf tools: Add empty Build files for architectures lacking them
+    - perf tools: Fix parse_events_add_pmu caller
+    - perf header: Fixup reading of HEADER_NRCPUS feature
+    - perf probe: Use existing routine to look for a kernel module by
+      dso->short_name
+    - watchdog: sunxi: fix activation of system reset
+    - watchdog: imgpdc: Unregister restart handler on remove
+    - sched: access local runqueue directly in single_task_running
+    - hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most
+      chips
+    - [armhf] fix Thumb2 signal handling when ARMv6 is enabled
+    - [armel,armhf] 8429/1: disable GCC SRA optimization
+    - [powerpc*] windfarm: decrement client count when unregistering
+    - [armhf] dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
+    - [armhf] dts: omap3-beagle: make i2c3, ddc and tfp410 gpio work again
+    - [armhf] EXYNOS: reset Little cores when cpu is up
+    - [armhf] dts: sunxi: Raise minimum CPU voltage for sun7i-a20 to meet SoC
+      specifications
+    - [armhf] dts: Fix wrong clock binding for sysmmu_fimd1_1 on exynos5420
+    - [armhf] dts: fix usb pin control for imx-rex dts
+    - dax: fix O_DIRECT I/O to the last block of a blockdev
+    - blockdev: don't set S_DAX for misaligned partitions
+    - block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg
+    - dmaengine: at_xdmac: change block increment addressing mode
+    - dmaengine: at_xdmac: clean used descriptor
+    - dmaengine: dw: properly read DWC_PARAMS register
+    - dmaengine: at_xdmac: fix bug in prep_dma_cyclic
+    - pmem: add proper fencing to pmem_rw_page()
+    - [x86] apic: Serialize LVTT and TSC_DEADLINE writes
+    - [x86] alternatives: Make optimize_nops() interrupt safe and synced
+    - [i386] platform: Fix Geode LX timekeeping in the generic x86 build
+    - [x86] ioapic: Force affinity setting in setup_ioapic_dest()
+    - [x86] pci/intel_mid_pci: Work around for IRQ0 assignment
+    - [x86] paravirt: Replace the paravirt nop with a bona fide empty function
+    - [amd64] nmi: Fix a paravirt stack-clobbering bug in the NMI code
+    - [x86] Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS
+    - [x86] efi: Fix boot crash by mapping EFI memmap entries bottom-up at
+      runtime, instead of top-down
+    - [x86] kexec: Fix kexec crash in syscall kexec_file_load()
+    - [x86] process: Add proper bound checks in 64bit get_wchan()
+    - [x86] mm: Set NX on gap between __ex_table and rodata
+    - [x86] xen: Support kexec/kdump in HVM guests by doing a soft reset
+    - leds:lp55xx: Correct Kconfig dependency for f/w user helper
+    - leds/led-class: Add missing put_device()
+    - sched/core: Fix TASK_DEAD race in finish_task_switch()
+    - [s390x] compat: correct uc_sigmask of the compat signal frame
+    - [s390x] boot/decompression: disable floating point in decompressor
+    - Revert "cgroup: simplify threadgroup locking"
+    - Revert "sched, cgroup: replace signal_struct->group_rwsem with a global
+      percpu_rwsem"
+    - memcg: make mem_cgroup_read_stat() unsigned
+    - spi: Fix documentation of spi_alloc_master()
+    - spi: bcm2835: BUG: fix wrong use of PAGE_MASK
+    - spi: spidev: fix possible NULL dereference
+    - mm: migrate: hugetlb: putback destination hugepage to active list
+    - lib/iommu-common.c: do not try to deref a null iommu->lazy_flush()
+      pointer when n < pool->hint
+    - ocfs2/dlm: fix deadlock when dispatch assert master
+    - mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a
+      fault
+    - memcg: fix dirty page migration
+    - [armhf] ALSA: hda/tegra - async probe for avoiding module loading deadlock
+    - ALSA: synth: Fix conflicting OSS device registration on AWE32
+    - ALSA: hda: Add dock support for ThinkPad T550
+    - ALSA: hda - Apply SPDIF pin ctl to MacBookPro 12,1
+    - ALSA: hda - Disable power_save_node for IDT 92HD73xx chips
+    - ASoC: pxa: pxa2xx-ac97: fix dma requestor lines
+    - ASoC: dwc: correct irq clear method
+    - ASoC: db1200: Fix DAI link format for db1300 and db1550
+    - ASoC: sgtl5000: fix wrong register MIC_BIAS_VOLTAGE setup on probe
+    - ASoC: tas2552: fix dBscale-min declaration
+    - btrfs: skip waiting on ordered range for special files
+    - Btrfs: fix read corruption of compressed and shared extents
+    - Btrfs: update fix for read corruption of compressed and shared extents
+    - PCI: Fix devfn for VPD access through function 0
+    - PCI: Use function 0 VPD for identical functions, regular VPD for others
+    - PCI: Clear IORESOURCE_UNSET when clipping a bridge window
+    - dm thin: disable discard support for thin devices if pool's is disabled
+    - dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE
+    - ath10k: fix dma_mapping_error() handling
+    - svcrdma: Fix send_reply() scatter/gather set-up
+    - md/raid0: update queue parameter in a safer location.
+    - md/raid0: apply base queue limits *before* disk_stack_limits
+    - dm raid: fix round up of default region size
+    - netfilter: nfnetlink: work around wrong endianess in res_id field
+    - netfilter: nf_tables: Use 32 bit addressing register from
+      nft_type_to_reg()
+    - netfilter: ipset: Out of bound access in hash:net* types fixed
+    - netfilter: ipset: Fixing unnamed union init
+    - netfilter: nf_log: wait for rcu grace after logger unregistration
+    - netfilter: nft_compat: skip family comparison in case of NFPROTO_UNSPEC
+    - netfilter: nf_log: don't zap all loggers on unregister
+    - regulator: core: Correct return value check in regulator_resolve_supply
+    - regulator: axp20x: Fix enable bit indexes for DCDC4 and DCDC5
+    - regulator: core: Handle probe deferral from DT when resolving supplies
+    - Bluetooth: Delay check for conn->smp in smp_conn_security()
+    - nfs: fix v4.2 SEEK on files over 2 gigs
+    - NFS: Do cleanup before resetting pageio read/write to mds
+    - NFSv4: Recovery of recalled read delegations is broken
+    - nfs: fix pg_test page count calculation
+    - NFS: Fix a write performance regression
+    - cifs: Fix sec=krb5 on smb3 mounts
+    - cifs: disabling oplocks/leases via module parm enable_oplocks broken for
+      SMB3
+    - cifs: Do not fall back to SMBWriteX in set_file_size error cases
+    - drm/qxl: only report first monitor as connected if we have no state
+    - drm/qxl: recreate the primary surface when the bo is not primary
+    - drm/amdgpu: fix overflow on 32bit systems
+    - drm/amdgpu: Disable UVD PG
+    - drm/amdgpu: fix the UVD suspend sequence order
+    - drm/amdgpu: make UVD handle checking more strict
+    - drm/amdgpu: Fix max_vblank_count value for current display engines
+    - drm/amdgpu: Restore LCD backlight level on resume
+    - [x86] drm/i915/bios: handle MIPI Sequence Block v3+ gracefully
+    - drm: Reject DRI1 hw lock ioctl functions for kms drivers
+    - drm/radeon: Restore LCD backlight level on resume (>= R5xx)
+    - drm/dp/mst: fixup handling hotplug on port removal.
+    - drm/dp/mst: drop cancel work sync in the mstb destroy path (v2)
+    - xhci: give command abortion one more chance before killing xhci
+    - xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM
+    - usb: xhci: lock mutex on xhci_stop
+    - usb: xhci: Clear XHCI_STATE_DYING on start
+    - usb: xhci: stop everything on the first call to xhci_stop
+    - usb: xhci: exit early in xhci_setup_device() if we're halted or dying
+    - xhci: change xhci 1.0 only restrictions to support xhci 1.1
+    - xhci: init command timeout timer earlier to avoid deleting it
+      uninitialized
+    - usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers
+    - batman-adv: Make DAT capability changes atomic
+    - thermal: cpu_cooling: don't call kcalloc() under rcu_read_lock
+    - thermal: cpu_cooling: free power table on error or when unregistering
+    - [x86] hv: util: checking the wrong variable
+    - mmc: dw_mmc: handle data blocks > than 4kB if IDMAC is used
+    - usb: chipidea: imx: fix a typo for imx6sx
+    - cifs: use server timestamp for ntlmv2 authentication
+    - [armhf] irqchip/gic-v3-its: Add missing cache flushes
+    - docs: update HOWTO for 3.x -> 4.x versioning
+    - extcon: Fix signedness bugs about break error handling
+    - extcon: Fix attached value returned by is_extcon_changed
+    - [armhf] mtd: pxa3xx_nand: add a default chunk size
+    - mtd: nand: sunxi: fix sunxi_nand_chips_cleanup()
+    - mtd: nand: sunxi: fix OOB handling in ->write_xxx() functions
+    - hpsa: fix an sprintf() overflow in the reset handler
+    - PM / AVS: rockchip-io: depend on CONFIG_POWER_AVS
+    - device property: fix potential NULL pointer dereference
+    - ath10k: fix per-vif queue locking
+    - ath10k: reject 11b tx fragmentation configuration
+    - ath10k: fix peer limit enforcement
+    - ath10k: wake up offchannel queue properly
+    - ath10k: wake up queue upon vif creation
+    - pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers
+    - ipr: Enable SIS pipe commands for SIS-32 devices.
+    - regmap: debugfs: Ensure we don't underflow when printing access masks
+    - regmap: debugfs: Don't bother actually printing when calculating max
+      length
+    - security: fix typo in security_task_prctl
+    - usb: musb: dsps: fix polling in device-only mode
+    - usb: chipidea: udc: using the correct stall implementation
+    - usb: Use the USB_SS_MULT() macro to get the burst multiplier.
+    - usb: phy: phy-generic: Fix reset behaviour on legacy boot
+    - usb: musb: cppi41: allow it to work again
+    - USB: chaoskey read offset bug
+    - usb: Add device quirk for Logitech PTZ cameras
+    - USB: Add reset-resume quirk for two Plantronics usb headphones.
+    - [armel,armhf] crypto: marvell - properly handle
+      CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests
+    - cpu/cacheinfo: Fix teardown path
+    - cpufreq: dt: Tolerance applies on both sides of target voltage
+    - [mips*] Fix console output for Fulong2e system
+    - [mips*] bootmem: Fix mapstart calculation for contiguous maps
+    - [mips*] dma-default: Fix 32-bit fall back to GFP_DMA
+    - [mips*] CPS: Stop dangling delay slot from has_mt.
+    - [mips*] CPS: Don't include MT code in non-MT kernels.
+    - [mips*] CPS: #ifdef on CONFIG_MIPS_MT_SMP rather than CONFIG_MIPS_MT
+    - batman-adv: Make NC capability changes atomic
+    - batman-adv: Make TT capability changes atomic
+    - batman-adv: Make MCAST capability changes atomic
+    - batman-adv: Fix potential synchronization issues in mcast tvlv handler
+    - batman-adv: Fix potentially broken skb network header access
+    - [powerpc*] MSI: Fix race condition in tearing down MSI interrupts
+    - rsi: Fix possible leak when loading firmware
+    - UBIFS: Kill unneeded locking in ubifs_init_security
+    - UBI: Validate data_size
+    - UBI: return ENOSPC if no enough space available
+    - net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected
+    - iscsi-target: Avoid OFMarker + IFMarker negotiation
+    - mmc: core: Don't return an error for CD/WP GPIOs when GPIOLIB is unset
+    - mmc: core: fix dead loop of mmc_retune
+    - [arm64] efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME
+      regions
+    - [arm64] ftrace: fix function_graph tracer panic
+    - [arm64] readahead: fault retry breaks mmap file read random detection
+    - [m68k] Define asmlinkage_protect
+    - xen/blkback: free requests on disconnection
+    - net/xen-netfront: only napi_synchronize() if running
+    - igb: do not re-init SR-IOV during probe
+    - genirq: Fix race in register_irq_proc()
+    - clocksource: Fix abs() usage w/ 64bit values
+    - md/bitmap: don't pass -1 to bitmap_storage_alloc.
+    - nfs/filelayout: Fix NULL reference caused by double freeing of fh_array
+    - cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus
+    - [armhf] clk: ti: fix dual-registration of uart4_ick
+    - [armhf] clk: ti: clk-7xx: Remove hardwired ABE clock configuration
+    - [armhf] clk: samsung: fix cpu clock's flags checking
+    - namei: results of d_is_negative() should be checked after dentry
+      revalidation
+    - dm: fix AB-BA deadlock in __dm_destroy()
+    - dm cache: fix NULL pointer when switching from cleaner policy
+    - staging: speakup: fix speakup-r regression
+    - tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c
+    - drivers/tty: require read access for controlling terminal
+    - serial: 8250: add uart_config entry for PORT_RT2880
+    - serial: atmel: fix error path of probe function
+    - mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1)
+    - blk-mq: avoid setting hctx->tags->cpumask before allocation
+    - sched/preempt: Fix cond_resched_lock() and cond_resched_softirq()
+    - 3w-9xxx: don't unmap bounce buffered commands
+    - sched/preempt, xen: Use need_resched() instead of should_resched()
+    - sched/preempt, powerpc, kvm: Use need_resched() instead of
+      should_resched()
 
   [ Salvatore Bonaccorso ]
   * KEYS: Fix race between key destruction and finding a keyring by name
diff --git a/debian/patches/bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch b/debian/patches/bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch
deleted file mode 100644
index b4964de..0000000
--- a/debian/patches/bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Wed, 30 Sep 2015 12:48:40 -0400
-Subject: Initialize msg/shm IPC objects before doing ipc_addid()
-Origin: https://git.kernel.org/linus/b9a532277938798b53178d5a66af6e2915cb27cf
-
-As reported by Dmitry Vyukov, we really shouldn't do ipc_addid() before
-having initialized the IPC object state.  Yes, we initialize the IPC
-object in a locked state, but with all the lockless RCU lookup work,
-that IPC object lock no longer means that the state cannot be seen.
-
-We already did this for the IPC semaphore code (see commit e8577d1f0329:
-"ipc/sem.c: fully initialize sem_array before making it visible") but we
-clearly forgot about msg and shm.
-
-Reported-by: Dmitry Vyukov <dvyukov at google.com>
-Cc: Manfred Spraul <manfred at colorfullife.com>
-Cc: Davidlohr Bueso <dbueso at suse.de>
-Cc: stable at vger.kernel.org
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
----
- ipc/msg.c  | 14 +++++++-------
- ipc/shm.c  | 13 +++++++------
- ipc/util.c |  8 ++++----
- 3 files changed, 18 insertions(+), 17 deletions(-)
-
-diff --git a/ipc/msg.c b/ipc/msg.c
-index 66c4f56..1471db9 100644
---- a/ipc/msg.c
-+++ b/ipc/msg.c
-@@ -137,13 +137,6 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params)
- 		return retval;
- 	}
- 
--	/* ipc_addid() locks msq upon success. */
--	id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni);
--	if (id < 0) {
--		ipc_rcu_putref(msq, msg_rcu_free);
--		return id;
--	}
--
- 	msq->q_stime = msq->q_rtime = 0;
- 	msq->q_ctime = get_seconds();
- 	msq->q_cbytes = msq->q_qnum = 0;
-@@ -153,6 +146,13 @@ static int newque(struct ipc_namespace *ns, struct ipc_params *params)
- 	INIT_LIST_HEAD(&msq->q_receivers);
- 	INIT_LIST_HEAD(&msq->q_senders);
- 
-+	/* ipc_addid() locks msq upon success. */
-+	id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni);
-+	if (id < 0) {
-+		ipc_rcu_putref(msq, msg_rcu_free);
-+		return id;
-+	}
-+
- 	ipc_unlock_object(&msq->q_perm);
- 	rcu_read_unlock();
- 
-diff --git a/ipc/shm.c b/ipc/shm.c
-index 222131e..4178727 100644
---- a/ipc/shm.c
-+++ b/ipc/shm.c
-@@ -551,12 +551,6 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
- 	if (IS_ERR(file))
- 		goto no_file;
- 
--	id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni);
--	if (id < 0) {
--		error = id;
--		goto no_id;
--	}
--
- 	shp->shm_cprid = task_tgid_vnr(current);
- 	shp->shm_lprid = 0;
- 	shp->shm_atim = shp->shm_dtim = 0;
-@@ -565,6 +559,13 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
- 	shp->shm_nattch = 0;
- 	shp->shm_file = file;
- 	shp->shm_creator = current;
-+
-+	id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni);
-+	if (id < 0) {
-+		error = id;
-+		goto no_id;
-+	}
-+
- 	list_add(&shp->shm_clist, &current->sysvshm.shm_clist);
- 
- 	/*
-diff --git a/ipc/util.c b/ipc/util.c
-index be42300..0f401d9 100644
---- a/ipc/util.c
-+++ b/ipc/util.c
-@@ -237,6 +237,10 @@ int ipc_addid(struct ipc_ids *ids, struct kern_ipc_perm *new, int size)
- 	rcu_read_lock();
- 	spin_lock(&new->lock);
- 
-+	current_euid_egid(&euid, &egid);
-+	new->cuid = new->uid = euid;
-+	new->gid = new->cgid = egid;
-+
- 	id = idr_alloc(&ids->ipcs_idr, new,
- 		       (next_id < 0) ? 0 : ipcid_to_idx(next_id), 0,
- 		       GFP_NOWAIT);
-@@ -249,10 +253,6 @@ int ipc_addid(struct ipc_ids *ids, struct kern_ipc_perm *new, int size)
- 
- 	ids->in_use++;
- 
--	current_euid_egid(&euid, &egid);
--	new->cuid = new->uid = euid;
--	new->gid = new->cgid = egid;
--
- 	if (next_id < 0) {
- 		new->seq = ids->seq++;
- 		if (ids->seq > IPCID_SEQ_MAX)
--- 
-2.6.0
-
diff --git a/debian/patches/bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch b/debian/patches/bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch
deleted file mode 100644
index 9b4e913..0000000
--- a/debian/patches/bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Sat, 15 Aug 2015 13:36:12 -0500
-Subject: dcache: Handle escaped paths in prepend_path
-Origin: https://git.kernel.org/linus/cde93be45a8a90d8c264c776fab63487b5038a65
-
-A rename can result in a dentry that by walking up d_parent
-will never reach it's mnt_root.  For lack of a better term
-I call this an escaped path.
-
-prepend_path is called by four different functions __d_path,
-d_absolute_path, d_path, and getcwd.
-
-__d_path only wants to see paths are connected to the root it passes
-in.  So __d_path needs prepend_path to return an error.
-
-d_absolute_path similarly wants to see paths that are connected to
-some root.  Escaped paths are not connected to any mnt_root so
-d_absolute_path needs prepend_path to return an error greater
-than 1.  So escaped paths will be treated like paths on lazily
-unmounted mounts.
-
-getcwd needs to prepend "(unreachable)" so getcwd also needs
-prepend_path to return an error.
-
-d_path is the interesting hold out.  d_path just wants to print
-something, and does not care about the weird cases.  Which raises
-the question what should be printed?
-
-Given that <escaped_path>/<anything> should result in -ENOENT I
-believe it is desirable for escaped paths to be printed as empty
-paths.  As there are not really any meaninful path components when
-considered from the perspective of a mount tree.
-
-So tweak prepend_path to return an empty path with an new error
-code of 3 when it encounters an escaped path.
-
-Signed-off-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
----
- fs/dcache.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -2927,6 +2927,13 @@ restart:
- 
- 		if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
- 			struct mount *parent = ACCESS_ONCE(mnt->mnt_parent);
-+			/* Escaped? */
-+			if (dentry != vfsmnt->mnt_root) {
-+				bptr = *buffer;
-+				blen = *buflen;
-+				error = 3;
-+				break;
-+			}
- 			/* Global root? */
- 			if (mnt != parent) {
- 				dentry = ACCESS_ONCE(mnt->mnt_mountpoint);
diff --git a/debian/patches/bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch b/debian/patches/bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch
deleted file mode 100644
index 12f6aa2..0000000
--- a/debian/patches/bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From: Raanan Avargil <raanan.avargil at intel.com>
-Date: Sun, 19 Jul 2015 16:33:20 +0300
-Subject: e1000e: Fix tight loop implementation of systime read algorithm
-Origin: https://git.kernel.org/linus/37b12910dd11d9ab969f2c310dc9160b7f3e3405
-
-Change the algorithm. Read systimel twice and check for overflow.
-If there was no overflow, use the first value.
-If there was an overflow, read systimeh again and use the second
-systimel value.
-
-Signed-off-by: Raanan Avargil <raanan.avargil at intel.com>
-Tested-by: Aaron Brown <aaron.f.brown at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
----
- drivers/net/ethernet/intel/e1000e/netdev.c | 31 ++++++++++++++++++++----------
- 1 file changed, 21 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
-index 24b7269..96a8166 100644
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -4280,18 +4280,29 @@ static cycle_t e1000e_cyclecounter_read(const struct cyclecounter *cc)
- 	struct e1000_adapter *adapter = container_of(cc, struct e1000_adapter,
- 						     cc);
- 	struct e1000_hw *hw = &adapter->hw;
-+	u32 systimel_1, systimel_2, systimeh;
- 	cycle_t systim, systim_next;
--	/* SYSTIMH latching upon SYSTIML read does not work well. To fix that
--	 * we don't want to allow overflow of SYSTIML and a change to SYSTIMH
--	 * to occur between reads, so if we read a vale close to overflow, we
--	 * wait for overflow to occur and read both registers when its safe.
-+	/* SYSTIMH latching upon SYSTIML read does not work well.
-+	 * This means that if SYSTIML overflows after we read it but before
-+	 * we read SYSTIMH, the value of SYSTIMH has been incremented and we
-+	 * will experience a huge non linear increment in the systime value
-+	 * to fix that we test for overflow and if true, we re-read systime.
- 	 */
--	u32 systim_overflow_latch_fix = 0x3FFFFFFF;
--
--	do {
--		systim = (cycle_t)er32(SYSTIML);
--	} while (systim > systim_overflow_latch_fix);
--	systim |= (cycle_t)er32(SYSTIMH) << 32;
-+	systimel_1 = er32(SYSTIML);
-+	systimeh = er32(SYSTIMH);
-+	systimel_2 = er32(SYSTIML);
-+	/* Check for overflow. If there was no overflow, use the values */
-+	if (systimel_1 < systimel_2) {
-+		systim = (cycle_t)systimel_1;
-+		systim |= (cycle_t)systimeh << 32;
-+	} else {
-+		/* There was an overflow, read again SYSTIMH, and use
-+		 * systimel_2
-+		 */
-+		systimeh = er32(SYSTIMH);
-+		systim = (cycle_t)systimel_2;
-+		systim |= (cycle_t)systimeh << 32;
-+	}
- 
- 	if ((hw->mac.type == e1000_82574) || (hw->mac.type == e1000_82583)) {
- 		u64 incvalue, time_delta, rem, temp;
diff --git a/debian/patches/bugfix/all/netfilter-conntrack-use-nf_ct_tmpl_free-in-ct-synpro.patch b/debian/patches/bugfix/all/netfilter-conntrack-use-nf_ct_tmpl_free-in-ct-synpro.patch
deleted file mode 100644
index 9434985..0000000
--- a/debian/patches/bugfix/all/netfilter-conntrack-use-nf_ct_tmpl_free-in-ct-synpro.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From: Daniel Borkmann <daniel at iogearbox.net>
-Date: Mon, 31 Aug 2015 19:11:02 +0200
-Subject: netfilter: conntrack: use nf_ct_tmpl_free in CT/synproxy error paths
-Origin: https://git.kernel.org/linus/9cf94eab8b309e8bcc78b41dd1561c75b537dd0b
-Bug-Debian: https://bugs.debian.org/800445
-
-Commit 0838aa7fcfcd ("netfilter: fix netns dependencies with conntrack
-templates") migrated templates to the new allocator api, but forgot to
-update error paths for them in CT and synproxy to use nf_ct_tmpl_free()
-instead of nf_conntrack_free().
-
-Due to that, memory is being freed into the wrong kmemcache, but also
-we drop the per net reference count of ct objects causing an imbalance.
-
-In Brad's case, this leads to a wrap-around of net->ct.count and thus
-lets __nf_conntrack_alloc() refuse to create a new ct object:
-
-  [   10.340913] xt_addrtype: ipv6 does not support BROADCAST matching
-  [   10.810168] nf_conntrack: table full, dropping packet
-  [   11.917416] r8169 0000:07:00.0 eth0: link up
-  [   11.917438] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
-  [   12.815902] nf_conntrack: table full, dropping packet
-  [   15.688561] nf_conntrack: table full, dropping packet
-  [   15.689365] nf_conntrack: table full, dropping packet
-  [   15.690169] nf_conntrack: table full, dropping packet
-  [   15.690967] nf_conntrack: table full, dropping packet
-  [...]
-
-With slab debugging, it also reports the wrong kmemcache (kmalloc-512 vs.
-nf_conntrack_ffffffff81ce75c0) and reports poison overwrites, etc. Thus,
-to fix the problem, export and use nf_ct_tmpl_free() instead.
-
-Fixes: 0838aa7fcfcd ("netfilter: fix netns dependencies with conntrack templates")
-Reported-by: Brad Jackson <bjackson0971 at gmail.com>
-Signed-off-by: Daniel Borkmann <daniel at iogearbox.net>
-Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
----
- include/net/netfilter/nf_conntrack.h | 1 +
- net/netfilter/nf_conntrack_core.c    | 3 ++-
- net/netfilter/nf_synproxy_core.c     | 2 +-
- net/netfilter/xt_CT.c                | 2 +-
- 4 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
-index 37cd391..4023c4c 100644
---- a/include/net/netfilter/nf_conntrack.h
-+++ b/include/net/netfilter/nf_conntrack.h
-@@ -292,6 +292,7 @@ extern unsigned int nf_conntrack_hash_rnd;
- void init_nf_conntrack_hash_rnd(void);
- 
- struct nf_conn *nf_ct_tmpl_alloc(struct net *net, u16 zone, gfp_t flags);
-+void nf_ct_tmpl_free(struct nf_conn *tmpl);
- 
- #define NF_CT_STAT_INC(net, count)	  __this_cpu_inc((net)->ct.stat->count)
- #define NF_CT_STAT_INC_ATOMIC(net, count) this_cpu_inc((net)->ct.stat->count)
-diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
-index 3c20d02..0625a42 100644
---- a/net/netfilter/nf_conntrack_core.c
-+++ b/net/netfilter/nf_conntrack_core.c
-@@ -320,12 +320,13 @@ out_free:
- }
- EXPORT_SYMBOL_GPL(nf_ct_tmpl_alloc);
- 
--static void nf_ct_tmpl_free(struct nf_conn *tmpl)
-+void nf_ct_tmpl_free(struct nf_conn *tmpl)
- {
- 	nf_ct_ext_destroy(tmpl);
- 	nf_ct_ext_free(tmpl);
- 	kfree(tmpl);
- }
-+EXPORT_SYMBOL_GPL(nf_ct_tmpl_free);
- 
- static void
- destroy_conntrack(struct nf_conntrack *nfct)
-diff --git a/net/netfilter/nf_synproxy_core.c b/net/netfilter/nf_synproxy_core.c
-index d7f1685..d6ee8f8 100644
---- a/net/netfilter/nf_synproxy_core.c
-+++ b/net/netfilter/nf_synproxy_core.c
-@@ -378,7 +378,7 @@ static int __net_init synproxy_net_init(struct net *net)
- err3:
- 	free_percpu(snet->stats);
- err2:
--	nf_conntrack_free(ct);
-+	nf_ct_tmpl_free(ct);
- err1:
- 	return err;
- }
-diff --git a/net/netfilter/xt_CT.c b/net/netfilter/xt_CT.c
-index 43ddeee..f3377ce 100644
---- a/net/netfilter/xt_CT.c
-+++ b/net/netfilter/xt_CT.c
-@@ -233,7 +233,7 @@ out:
- 	return 0;
- 
- err3:
--	nf_conntrack_free(ct);
-+	nf_ct_tmpl_free(ct);
- err2:
- 	nf_ct_l3proto_module_put(par->family);
- err1:
diff --git a/debian/patches/bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch b/debian/patches/bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
deleted file mode 100644
index 4380958..0000000
--- a/debian/patches/bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From: Johan Hovold <johan at kernel.org>
-Date: Wed, 23 Sep 2015 11:41:42 -0700
-Subject: USB: whiteheat: fix potential null-deref at probe
-Origin: https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git/commit?id=cbb4be652d374f64661137756b8f357a1827d6a4
-
-Fix potential null-pointer dereference at probe by making sure that the
-required endpoints are present.
-
-The whiteheat driver assumes there are at least five pairs of bulk
-endpoints, of which the final pair is used for the "command port". An
-attempt to bind to an interface with fewer bulk endpoints would
-currently lead to an oops.
-
-Fixes CVE-2015-5257.
-
-Reported-by: Moein Ghasemzadeh <moein at istuary.com>
-Cc: stable <stable at vger.kernel.org>
-Signed-off-by: Johan Hovold <johan at kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/whiteheat.c | 31 +++++++++++++++++++++++++++++++
- 1 file changed, 31 insertions(+)
-
-diff --git a/drivers/usb/serial/whiteheat.c b/drivers/usb/serial/whiteheat.c
-index 6c3734d..d3ea90b 100644
---- a/drivers/usb/serial/whiteheat.c
-+++ b/drivers/usb/serial/whiteheat.c
-@@ -80,6 +80,8 @@ static int  whiteheat_firmware_download(struct usb_serial *serial,
- static int  whiteheat_firmware_attach(struct usb_serial *serial);
- 
- /* function prototypes for the Connect Tech WhiteHEAT serial converter */
-+static int whiteheat_probe(struct usb_serial *serial,
-+				const struct usb_device_id *id);
- static int  whiteheat_attach(struct usb_serial *serial);
- static void whiteheat_release(struct usb_serial *serial);
- static int  whiteheat_port_probe(struct usb_serial_port *port);
-@@ -116,6 +118,7 @@ static struct usb_serial_driver whiteheat_device = {
- 	.description =		"Connect Tech - WhiteHEAT",
- 	.id_table =		id_table_std,
- 	.num_ports =		4,
-+	.probe =		whiteheat_probe,
- 	.attach =		whiteheat_attach,
- 	.release =		whiteheat_release,
- 	.port_probe =		whiteheat_port_probe,
-@@ -217,6 +220,34 @@ static int whiteheat_firmware_attach(struct usb_serial *serial)
- /*****************************************************************************
-  * Connect Tech's White Heat serial driver functions
-  *****************************************************************************/
-+
-+static int whiteheat_probe(struct usb_serial *serial,
-+				const struct usb_device_id *id)
-+{
-+	struct usb_host_interface *iface_desc;
-+	struct usb_endpoint_descriptor *endpoint;
-+	size_t num_bulk_in = 0;
-+	size_t num_bulk_out = 0;
-+	size_t min_num_bulk;
-+	unsigned int i;
-+
-+	iface_desc = serial->interface->cur_altsetting;
-+
-+	for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) {
-+		endpoint = &iface_desc->endpoint[i].desc;
-+		if (usb_endpoint_is_bulk_in(endpoint))
-+			++num_bulk_in;
-+		if (usb_endpoint_is_bulk_out(endpoint))
-+			++num_bulk_out;
-+	}
-+
-+	min_num_bulk = COMMAND_PORT + 1;
-+	if (num_bulk_in < min_num_bulk || num_bulk_out < min_num_bulk)
-+		return -ENODEV;
-+
-+	return 0;
-+}
-+
- static int whiteheat_attach(struct usb_serial *serial)
- {
- 	struct usb_serial_port *command_port;
diff --git a/debian/patches/bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch b/debian/patches/bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch
deleted file mode 100644
index 7d38eac..0000000
--- a/debian/patches/bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Sat, 15 Aug 2015 20:27:13 -0500
-Subject: vfs: Test for and handle paths that are unreachable from their mnt_root
-Origin: https://git.kernel.org/linus/397d425dc26da728396e66d392d5dcb8dac30c37
-
-In rare cases a directory can be renamed out from under a bind mount.
-In those cases without special handling it becomes possible to walk up
-the directory tree to the root dentry of the filesystem and down
-from the root dentry to every other file or directory on the filesystem.
-
-Like division by zero .. from an unconnected path can not be given
-a useful semantic as there is no predicting at which path component
-the code will realize it is unconnected.  We certainly can not match
-the current behavior as the current behavior is a security hole.
-
-Therefore when encounting .. when following an unconnected path
-return -ENOENT.
-
-- Add a function path_connected to verify path->dentry is reachable
-  from path->mnt.mnt_root.  AKA to validate that rename did not do
-  something nasty to the bind mount.
-
-  To avoid races path_connected must be called after following a path
-  component to it's next path component.
-
-Signed-off-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
----
- fs/namei.c | 27 +++++++++++++++++++++++++--
- 1 file changed, 25 insertions(+), 2 deletions(-)
-
-diff --git a/fs/namei.c b/fs/namei.c
-index 1c2105e..29b9279 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -560,6 +560,24 @@ static int __nd_alloc_stack(struct nameidata *nd)
- 	return 0;
- }
- 
-+/**
-+ * path_connected - Verify that a path->dentry is below path->mnt.mnt_root
-+ * @path: nameidate to verify
-+ *
-+ * Rename can sometimes move a file or directory outside of a bind
-+ * mount, path_connected allows those cases to be detected.
-+ */
-+static bool path_connected(const struct path *path)
-+{
-+	struct vfsmount *mnt = path->mnt;
-+
-+	/* Only bind mounts can have disconnected paths */
-+	if (mnt->mnt_root == mnt->mnt_sb->s_root)
-+		return true;
-+
-+	return is_subdir(path->dentry, mnt->mnt_root);
-+}
-+
- static inline int nd_alloc_stack(struct nameidata *nd)
- {
- 	if (likely(nd->depth != EMBEDDED_LEVELS))
-@@ -1296,6 +1314,8 @@ static int follow_dotdot_rcu(struct nameidata *nd)
- 				return -ECHILD;
- 			nd->path.dentry = parent;
- 			nd->seq = seq;
-+			if (unlikely(!path_connected(&nd->path)))
-+				return -ENOENT;
- 			break;
- 		} else {
- 			struct mount *mnt = real_mount(nd->path.mnt);
-@@ -1396,7 +1416,7 @@ static void follow_mount(struct path *path)
- 	}
- }
- 
--static void follow_dotdot(struct nameidata *nd)
-+static int follow_dotdot(struct nameidata *nd)
- {
- 	if (!nd->root.mnt)
- 		set_root(nd);
-@@ -1412,6 +1432,8 @@ static void follow_dotdot(struct nameidata *nd)
- 			/* rare case of legitimate dget_parent()... */
- 			nd->path.dentry = dget_parent(nd->path.dentry);
- 			dput(old);
-+			if (unlikely(!path_connected(&nd->path)))
-+				return -ENOENT;
- 			break;
- 		}
- 		if (!follow_up(&nd->path))
-@@ -1419,6 +1441,7 @@ static void follow_dotdot(struct nameidata *nd)
- 	}
- 	follow_mount(&nd->path);
- 	nd->inode = nd->path.dentry->d_inode;
-+	return 0;
- }
- 
- /*
-@@ -1634,7 +1657,7 @@ static inline int handle_dots(struct nameidata *nd, int type)
- 		if (nd->flags & LOOKUP_RCU) {
- 			return follow_dotdot_rcu(nd);
- 		} else
--			follow_dotdot(nd);
-+			return follow_dotdot(nd);
- 	}
- 	return 0;
- }
diff --git a/debian/patches/bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch b/debian/patches/bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch
deleted file mode 100644
index cb57993..0000000
--- a/debian/patches/bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Aurelien Jarno <aurelien at aurel32.net>
-Date: Fri, 4 Sep 2015 16:32:17 +0200
-Subject: [1/2] MIPS: BPF: Avoid unreachable code on little endian
-Origin: https://git.kernel.org/linus/faa9724a674e5e52316bb0d173aed16bd17d536c
-
-On little endian, avoid generating the big endian version of the code
-by using #else in addition to #ifdef #endif. Also fix one alignment
-issue wrt delay slot.
-
-Cc: Ralf Baechle <ralf at linux-mips.org>
-Cc: Markos Chandras <markos.chandras at imgtec.com>
-Cc: stable at vger.kernel.org # v4.2+
-Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
----
- arch/mips/net/bpf_jit_asm.S | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/arch/mips/net/bpf_jit_asm.S b/arch/mips/net/bpf_jit_asm.S
-index e927260..4f54cb1 100644
---- a/arch/mips/net/bpf_jit_asm.S
-+++ b/arch/mips/net/bpf_jit_asm.S
-@@ -151,9 +151,10 @@ NESTED(bpf_slow_path_word, (6 * SZREG), $r_sp)
- 	wsbh	t0, $r_s0
- 	jr	$r_ra
- 	 rotr	$r_A, t0, 16
--#endif
-+#else
- 	jr	$r_ra
--	move	$r_A, $r_s0
-+	 move	$r_A, $r_s0
-+#endif
- 
- 	END(bpf_slow_path_word)
- 
-@@ -162,9 +163,10 @@ NESTED(bpf_slow_path_half, (6 * SZREG), $r_sp)
- #ifdef CONFIG_CPU_LITTLE_ENDIAN
- 	jr	$r_ra
- 	 wsbh	$r_A, $r_s0
--#endif
-+#else
- 	jr	$r_ra
- 	 move	$r_A, $r_s0
-+#endif
- 
- 	END(bpf_slow_path_half)
- 
--- 
-2.1.4
-
diff --git a/debian/patches/bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch b/debian/patches/bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch
deleted file mode 100644
index 548136e..0000000
--- a/debian/patches/bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From: Aurelien Jarno <aurelien at aurel32.net>
-Date: Sat, 5 Sep 2015 17:02:59 +0200
-Subject: [2/2] MIPS: BPF: Fix build on pre-R2 little endian CPUs
-Origin: https://git.kernel.org/linus/b259e51f2e29390518021f9b8df55a3de42f371b
-
-The rotr, seh and wsbh instructions have been introduced with the R2
-ISA. Thus the current BPF code fails to build on pre-R2 little endian
-CPUs:
-
-    CC      arch/mips/net/bpf_jit.o
-    AS      arch/mips/net/bpf_jit_asm.o
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S: Assembler messages:
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:67: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $8,$19'
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:68: Error: opcode not supported on this processor: mips32 (mips32) `rotr $19,$8,16'
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:83: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $8,$19'
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:84: Error: opcode not supported on this processor: mips32 (mips32) `seh $19,$8'
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:151: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $8,$12'
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:153: Error: opcode not supported on this processor: mips32 (mips32) `rotr $19,$8,16'
-  /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:164: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $19,$12'
-  /home/aurel32/linux-4.2/scripts/Makefile.build:294: recipe for target 'arch/mips/net/bpf_jit_asm.o' failed
-
-Fix that by providing equivalent code for these CPUs.
-
-Cc: Ralf Baechle <ralf at linux-mips.org>
-Cc: Markos Chandras <markos.chandras at imgtec.com>
-Cc: stable at vger.kernel.org # v4.2+
-Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
----
- arch/mips/net/bpf_jit_asm.S | 42 ++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 42 insertions(+)
-
-diff --git a/arch/mips/net/bpf_jit_asm.S b/arch/mips/net/bpf_jit_asm.S
-index 4f54cb1..dabf417 100644
---- a/arch/mips/net/bpf_jit_asm.S
-+++ b/arch/mips/net/bpf_jit_asm.S
-@@ -64,8 +64,20 @@ sk_load_word_positive:
- 	PTR_ADDU t1, $r_skb_data, offset
- 	lw	$r_A, 0(t1)
- #ifdef CONFIG_CPU_LITTLE_ENDIAN
-+# if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
- 	wsbh	t0, $r_A
- 	rotr	$r_A, t0, 16
-+# else
-+	sll	t0, $r_A, 24
-+	srl	t1, $r_A, 24
-+	srl	t2, $r_A, 8
-+	or	t0, t0, t1
-+	andi	t2, t2, 0xff00
-+	andi	t1, $r_A, 0xff00
-+	or	t0, t0, t2
-+	sll	t1, t1, 8
-+	or	$r_A, t0, t1
-+# endif
- #endif
- 	jr	$r_ra
- 	 move	$r_ret, zero
-@@ -80,8 +92,16 @@ sk_load_half_positive:
- 	PTR_ADDU t1, $r_skb_data, offset
- 	lh	$r_A, 0(t1)
- #ifdef CONFIG_CPU_LITTLE_ENDIAN
-+# if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
- 	wsbh	t0, $r_A
- 	seh	$r_A, t0
-+# else
-+	sll	t0, $r_A, 24
-+	andi	t1, $r_A, 0xff00
-+	sra	t0, t0, 16
-+	srl	t1, t1, 8
-+	or	$r_A, t0, t1
-+# endif
- #endif
- 	jr	$r_ra
- 	 move	$r_ret, zero
-@@ -148,9 +168,22 @@ sk_load_byte_positive:
- NESTED(bpf_slow_path_word, (6 * SZREG), $r_sp)
- 	bpf_slow_path_common(4)
- #ifdef CONFIG_CPU_LITTLE_ENDIAN
-+# if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
- 	wsbh	t0, $r_s0
- 	jr	$r_ra
- 	 rotr	$r_A, t0, 16
-+# else
-+	sll	t0, $r_s0, 24
-+	srl	t1, $r_s0, 24
-+	srl	t2, $r_s0, 8
-+	or	t0, t0, t1
-+	andi	t2, t2, 0xff00
-+	andi	t1, $r_s0, 0xff00
-+	or	t0, t0, t2
-+	sll	t1, t1, 8
-+	jr	$r_ra
-+	 or	$r_A, t0, t1
-+# endif
- #else
- 	jr	$r_ra
- 	 move	$r_A, $r_s0
-@@ -161,8 +194,17 @@ NESTED(bpf_slow_path_word, (6 * SZREG), $r_sp)
- NESTED(bpf_slow_path_half, (6 * SZREG), $r_sp)
- 	bpf_slow_path_common(2)
- #ifdef CONFIG_CPU_LITTLE_ENDIAN
-+# if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
- 	jr	$r_ra
- 	 wsbh	$r_A, $r_s0
-+# else
-+	sll	t0, $r_s0, 8
-+	andi	t1, $r_s0, 0xff00
-+	andi	t0, t0, 0xff00
-+	srl	t1, t1, 8
-+	jr	$r_ra
-+	 or	$r_A, t0, t1
-+# endif
- #else
- 	jr	$r_ra
- 	 move	$r_A, $r_s0
--- 
-2.1.4
-
diff --git a/debian/patches/bugfix/x86/alsa-hda-disable-power_save_node-for-thinkpads.patch b/debian/patches/bugfix/x86/alsa-hda-disable-power_save_node-for-thinkpads.patch
deleted file mode 100644
index 9438cba..0000000
--- a/debian/patches/bugfix/x86/alsa-hda-disable-power_save_node-for-thinkpads.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 24 Sep 2015 17:36:51 +0200
-Subject: ALSA: hda - Disable power_save_node for Thinkpads
-Origin: https://git.kernel.org/linus/7f57d803ee03730d570dc59a9e3e4842b58dd5cc
-
-Lenovo Thinkpads with recent Realtek codecs seem suffering from click
-noises at power transition since the introduction of widget power
-saving in 4.1 kernel.  Although this might be solved by some delays in
-appropriate points, as a quick workaround, just disable the
-power_save_node feature for now.  The gain it gives is relatively
-small, and this makes the situation back to pre 4.1 time.
-
-This patch ended up with a bit more code changes than usual because
-the existing fixup for Thinkpads is highly chained.  Instead of adding
-yet another chain, combine a few of them into a single fixup entry, as
-a gratis cleanup.
-
-Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=943982
-Cc: <stable at vger.kernel.org> # v4.1+
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
----
- sound/pci/hda/patch_realtek.c | 31 +++++++++++++++++++------------
- 1 file changed, 19 insertions(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index a75b561..afec6dc 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4188,6 +4188,24 @@ static void alc_fixup_disable_aamix(struct hda_codec *codec,
- 	}
- }
- 
-+/* fixup for Thinkpad docks: add dock pins, avoid HP parser fixup */
-+static void alc_fixup_tpt440_dock(struct hda_codec *codec,
-+				  const struct hda_fixup *fix, int action)
-+{
-+	static const struct hda_pintbl pincfgs[] = {
-+		{ 0x16, 0x21211010 }, /* dock headphone */
-+		{ 0x19, 0x21a11010 }, /* dock mic */
-+		{ }
-+	};
-+	struct alc_spec *spec = codec->spec;
-+
-+	if (action == HDA_FIXUP_ACT_PRE_PROBE) {
-+		spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
-+		codec->power_save_node = 0; /* avoid click noises */
-+		snd_hda_apply_pincfgs(codec, pincfgs);
-+	}
-+}
-+
- static void alc_shutup_dell_xps13(struct hda_codec *codec)
- {
- 	struct alc_spec *spec = codec->spec;
-@@ -4562,7 +4580,6 @@ enum {
- 	ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC,
- 	ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
- 	ALC292_FIXUP_TPT440_DOCK,
--	ALC292_FIXUP_TPT440_DOCK2,
- 	ALC283_FIXUP_BXBT2807_MIC,
- 	ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED,
- 	ALC282_FIXUP_ASPIRE_V5_PINS,
-@@ -5029,17 +5046,7 @@ static const struct hda_fixup alc269_fixups[] = {
- 	},
- 	[ALC292_FIXUP_TPT440_DOCK] = {
- 		.type = HDA_FIXUP_FUNC,
--		.v.func = alc269_fixup_pincfg_no_hp_to_lineout,
--		.chained = true,
--		.chain_id = ALC292_FIXUP_TPT440_DOCK2
--	},
--	[ALC292_FIXUP_TPT440_DOCK2] = {
--		.type = HDA_FIXUP_PINS,
--		.v.pins = (const struct hda_pintbl[]) {
--			{ 0x16, 0x21211010 }, /* dock headphone */
--			{ 0x19, 0x21a11010 }, /* dock mic */
--			{ }
--		},
-+		.v.func = alc_fixup_tpt440_dock,
- 		.chained = true,
- 		.chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
- 	},
diff --git a/debian/patches/debian/signal-fix-abi-change-in-4.2.4.patch b/debian/patches/debian/signal-fix-abi-change-in-4.2.4.patch
new file mode 100644
index 0000000..0a4e3fd
--- /dev/null
+++ b/debian/patches/debian/signal-fix-abi-change-in-4.2.4.patch
@@ -0,0 +1,47 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Fri, 23 Oct 2015 00:55:53 +0100
+Subject: signal: Fix ABI change in 4.2.4
+Forwarded: not-needed
+
+The field signal_struct::group_rwsem was re-added.  This structure is
+always allocated by copy_signal() and only used by built-in code, so
+it's safe to add fields at the end but not in the middle.  Move it to
+the end and hide it from genksyms.
+
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -754,6 +754,17 @@ struct signal_struct {
+ 	unsigned audit_tty_log_passwd;
+ 	struct tty_audit_buf *tty_audit_buf;
+ #endif
++
++	oom_flags_t oom_flags;
++	short oom_score_adj;		/* OOM kill score adjustment */
++	short oom_score_adj_min;	/* OOM kill score adjustment min value.
++					 * Only settable by CAP_SYS_RESOURCE. */
++
++	struct mutex cred_guard_mutex;	/* guard against foreign influences on
++					 * credential calculations
++					 * (notably. ptrace) */
++
++#ifndef __GENKSYMS__
+ #ifdef CONFIG_CGROUPS
+ 	/*
+ 	 * group_rwsem prevents new tasks from entering the threadgroup and
+@@ -766,15 +777,7 @@ struct signal_struct {
+ 	 */
+ 	struct rw_semaphore group_rwsem;
+ #endif
+-
+-	oom_flags_t oom_flags;
+-	short oom_score_adj;		/* OOM kill score adjustment */
+-	short oom_score_adj_min;	/* OOM kill score adjustment min value.
+-					 * Only settable by CAP_SYS_RESOURCE. */
+-
+-	struct mutex cred_guard_mutex;	/* guard against foreign influences on
+-					 * credential calculations
+-					 * (notably. ptrace) */
++#endif
+ };
+ 
+ /*
diff --git a/debian/patches/debian/target-fix-abi-change-in-4.2.4.patch b/debian/patches/debian/target-fix-abi-change-in-4.2.4.patch
new file mode 100644
index 0000000..2037020
--- /dev/null
+++ b/debian/patches/debian/target-fix-abi-change-in-4.2.4.patch
@@ -0,0 +1,17 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Fri, 23 Oct 2015 00:51:44 +0100
+Subject: target: Fix ABI change in 4.2.4
+Forwarded: not-needed
+
+Restore the now-redundant iscsi_np::np_ip field to avoid an ABI change.
+
+--- a/include/target/iscsi/iscsi_target_core.h
++++ b/include/target/iscsi/iscsi_target_core.h
+@@ -776,6 +776,7 @@ struct iscsi_np {
+ 	enum iscsi_timer_flags_table np_login_timer_flags;
+ 	u32			np_exports;
+ 	enum np_flags_table	np_flags;
++	unsigned char		np_ip[IPV6_ADDRESS_SPACE]; /* now unused */
+ 	u16			np_port;
+ 	spinlock_t		np_thread_lock;
+ 	struct completion	np_restart_comp;
diff --git a/debian/patches/series b/debian/patches/series
index 2ce2e4b..6181901 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -46,8 +46,6 @@ debian/qxl-disable-modeset-by-default.patch
 
 # Arch bug fixes
 bugfix/mips/disable-advansys.patch
-bugfix/mips/bpf-avoid-unreachable-code-on-little-endian.patch
-bugfix/mips/bpf-fix-build-on-pre-r2-little-endian-cpus.patch
 bugfix/arm64/arm64-add-missing-dts-entry-for-X-Gene-platform.patch
 bugfix/arm64/arm64-removed-using-of-the-mask-attribute-in-the-dts.patch
 
@@ -89,18 +87,11 @@ features/all/grsecurity/grsecurity-kconfig.patch
 features/all/grsecurity/grkernsec_perf_harden.patch
 
 bugfix/all/gfs2-make-statistics-unsigned-suitable-for-use-with-.patch
-bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch
 bugfix/all/dcache-reduce-the-scope-of-i_lock-in-d_splice_alias.patch
-bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch
 bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch
-bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch
-bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
 bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
 bugfix/mips/mips-pgtable-bits.h-correct-_page_global_shift-build.patch
 bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch
-bugfix/x86/alsa-hda-disable-power_save_node-for-thinkpads.patch
-bugfix/all/netfilter-conntrack-use-nf_ct_tmpl_free-in-ct-synpro.patch
-bugfix/all/Initialize-msg-shm-IPC-objects-before-doing-ipc_addi.patch
 features/all/ath10k-add-qca6164-support.patch
 debian/block-fix-abi-change-in-4.2.2.patch
 bugfix/x86/crypto-x86-camellia_aesni_avx-fix-cpu-feature-checks.patch
@@ -111,3 +102,6 @@ bugfix/all/nbd-add-locking-for-tasks.patch
 bugfix/all/KEYS-Fix-race-between-key-destruction-and-finding-a-.patch
 bugfix/all/KEYS-Fix-crash-when-attempt-to-garbage-collect-an-un.patch
 bugfix/all/KEYS-Don-t-permit-request_key-to-construct-a-new-key.patch
+
+debian/target-fix-abi-change-in-4.2.4.patch
+debian/signal-fix-abi-change-in-4.2.4.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list