Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91b5f5ea authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 3.18.13 into android-3.18



Changes in 3.18.13:
	n_tty: Fix read buffer overwrite when no newline
	ALSA: hda - Add dock support for Thinkpad T450s (17aa:5036)
	ALSA: hda - Add one more node in the EAPD supporting candidate list
	ALSA: usb - Creative USB X-Fi Pro SB1095 volume knob support
	ALSA: bebob: fix to processing in big-endian machine for sending cue
	ALSA: hda/realtek - Make more stable to get pin sense for ALC283
	ALSA: hda - Fix headphone pin config for Lifebook T731
	PCI/AER: Avoid info leak in __print_tlp_header()
	PCI: cpcihp: Add missing curly braces in cpci_configure_slot()
	PCI: Don't look for ACPI hotplug parameters if ACPI is disabled
	PCI: spear: Drop __initdata from spear13xx_pcie_driver
	ARC: SA_SIGINFO ucontext regs off-by-one
	ARC: signal handling robustify
	ARM: sunxi: Have ARCH_SUNXI select RESET_CONTROLLER for clock driver usage
	selinux: fix sel_write_enforce broken return value
	blk-mq: fix use of incorrect goto label in blk_mq_init_queue error path
	Fix bug in blk_rq_merge_ok
	drm: Fixup racy refcounting in plane_force_disable
	drm/edid: set ELD for firmware and debugfs override EDIDs
	drm/i915: Reject the colorkey ioctls for primary and cursor planes
	drm/radeon/dpm: fix 120hz handling harder
	drm/radeon: add extra check in radeon_ttm_tt_unpin_userptr
	drm/radeon: fix wait in radeon_mn_invalidate_range_start
	drm/i915/vlv: remove wait for previous GFX clk disable request
	drm/i915/vlv: save/restore the power context base reg
	drm/i915/vlv: remove wait for previous GFX clk disable request
	drm/i915: Align initial plane backing objects correctly
	btrfs: simplify insert_orphan_item
	IB/uverbs: Prevent integer overflow in ib_umem_get address arithmetic
	iwlwifi: dvm: run INIT firmware again upon .start()
	xen/balloon: before adding hotplugged memory, set frames to invalid
	nfsd: return correct openowner when there is a race to put one in the hash
	nfsd: return correct lockowner when there is a race on hash insert
	powerpc: fix memory corruption by pnv_alloc_idle_core_states
	powerpc: Re-enable dynticks
	nbd: fix possible memory leak
	mac80211: fix RX A-MPDU session reorder timer deletion
	mm: prevent endless growth of anon_vma hierarchy
	mm: fix corner case in anon_vma endless growing prevention
	mm: fix anon_vma->degree underflow in anon_vma endless growing prevention
	mm/memory hotplug: postpone the reset of obsolete pgdat
	mm/page_alloc.c: call kernel_map_pages in unset_migrateype_isolate
	sched: Fix RLIMIT_RTTIME when PI-boosting to RT
	cpufreq: Schedule work for the first-online CPU on resume
	writeback: add missing INITIAL_JIFFIES init in global_update_bandwidth()
	writeback: fix possible underflow in write bandwidth calculation
	radeon: Do not directly dereference pointers to BIOS area.
	USB: keyspan_pda: add new device id
	USB: ftdi_sio: Added custom PID for Synapse Wireless product
	USB: ftdi_sio: Use jtag quirk for SNAP Connect E10
	Defer processing of REQ_PREEMPT requests for blocked devices
	iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
	iio: core: Fix double free.
	iio: bmc150: change sampling frequency
	iio: adc: vf610: use ADC clock within specification
	iio: imu: Use iio_trigger_get for indio_dev->trig assignment
	dmaengine: edma: fix memory leak when terminating running transfers
	dmaengine: omap-dma: Fix memory leak when terminating running transfer
	ath9k: fix tracking of enabled AP beacons
	x86/reboot: Add ASRock Q1900DC-ITX mainboard reboot quirk
	can: flexcan: Deferred on Regulator return EPROBE_DEFER
	cpuidle: remove state_count field from struct cpuidle_device
	cpuidle: ACPI: do not overwrite name and description of C0
	usb: xhci: handle Config Error Change (CEC) in xhci driver
	usb: xhci: apply XHCI_AVOID_BEI quirk to all Intel xHCI controllers
	tty: serial: fsl_lpuart: specify transmit FIFO size
	tty: serial: fsl_lpuart: clear receive flag on FIFO flush
	cifs: smb2_clone_range() - exit on unhandled error
	cifs: fix use-after-free bug in find_writable_file
	iommu/vt-d: Detach domain *only* from attached iommus
	rtlwifi: Fix IOMMU mapping leak in AP mode
	drivers/of: Add empty ranges quirk for PA-Semi
	Revert "PM / hibernate: avoid unsafe pages in e820 reserved regions"
	be2iscsi: Fix kernel panic when device initialization fails
	ocfs2: _really_ sync the right range
	ioctx_alloc(): fix vma (and file) leak on failure
	iscsi target: fix oops when adding reject pdu
	[media] sh_veu: v4l2_dev wasn't set
	[media] media: s5p-mfc: fix mmap support for 64bit arch
	[media] soc-camera: Fix devm_kfree() in soc_of_bind()
	[media] vb2: fix 'UNBALANCED' warnings when calling vb2_thread_stop()
	clk: divider: fix selection of divider when rounding to closest
	clk: divider: fix calculation of maximal parent rate for a given divider
	IB/mlx4: Saturate RoCE port PMA counters in case of overflow
	timers/tick/broadcast-hrtimer: Fix suspicious RCU usage in idle loop
	ext4: fix indirect punch hole corruption
	xfs: ensure truncate forces zeroed blocks to disk
	kvm: avoid page allocation failure in kvm_set_memory_region()
	kernel: Provide READ_ONCE and ASSIGN_ONCE
	kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val)
	tcp: prevent fetching dst twice in early demux code
	net/mlx4_en: Call register_netdevice in the proper location
	ipv6: Don't reduce hop limit for an interface
	net: tcp6: fix double call of tcp_v6_fill_cb()
	bonding: Bonding Overriding Configuration logic restored.
	xen-netfront: transmit fully GSO-sized packets
	tcp: fix FRTO undo on cumulative ACK of SACKed range
	ipv6: protect skb->sk accesses from recursive dereference inside the stack
	net/mlx4_core: Fix error message deprecation for ConnectX-2 cards
	tcp: tcp_make_synack() should clear skb->tstamp
	bnx2x: Fix busy_poll vs netpoll
	bpf: fix verifier memory corruption
	Revert "net: Reset secmark when scrubbing packet"
	skbuff: Do not scrub skb mark within the same name space
	vlan: kill vlan_put_tag helper
	vlan: rename __vlan_put_tag to vlan_insert_tag_set_proto
	vlan: introduce *vlan_hwaccel_push_inside helpers
	vxlan: Fix double free of skb.
	udptunnels: Call handle_offloads after inserting vlan tag.
	usbnet: Fix tx_packets stat for FLAG_MULTI_FRAME drivers
	usbnet: Fix tx_bytes statistic running backward in cdc_ncm
	tg3: Hold tp->lock before calling tg3_halt() from tg3_init_one()
	arm64: add cpu_capabilities bitmap
	arm64: add alternative runtime patching
	arm64: detect silicon revisions and set cap bits accordingly
	arm64: add Cortex-A53 cache errata workaround
	arm64: add Cortex-A57 erratum 832075 workaround
	arm64: protect alternatives workarounds with Kconfig options
	arm64: errata: add workaround for cortex-a53 erratum #845719
	arm64: fix midr range for Cortex-A57 erratum 832075
	usb: serial: silence all non-critical read errors
	Bluetooth: Add support for Broadcom device of Asus Z97-DELUXE motherboard
	Bluetooth: Add support for Acer [0489:e078]
	Bluetooth: Add USB device 04ca:3010 as Atheros AR3012
	mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()
	Linux 3.18.13

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents 0df4fed0 72d391fe
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 12
SUBLEVEL = 13
EXTRAVERSION =
NAME = Shuffling Zombie Juror

+18 −6
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs,
	       sigset_t *set)
{
	int err;
	err = __copy_to_user(&(sf->uc.uc_mcontext.regs), regs,
	err = __copy_to_user(&(sf->uc.uc_mcontext.regs.scratch), regs,
			     sizeof(sf->uc.uc_mcontext.regs.scratch));
	err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t));

@@ -83,7 +83,7 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
	if (!err)
		set_current_blocked(&set);

	err |= __copy_from_user(regs, &(sf->uc.uc_mcontext.regs),
	err |= __copy_from_user(regs, &(sf->uc.uc_mcontext.regs.scratch),
				sizeof(sf->uc.uc_mcontext.regs.scratch));

	return err;
@@ -131,6 +131,15 @@ SYSCALL_DEFINE0(rt_sigreturn)
	/* Don't restart from sigreturn */
	syscall_wont_restart(regs);

	/*
	 * Ensure that sigreturn always returns to user mode (in case the
	 * regs saved on user stack got fudged between save and sigreturn)
	 * Otherwise it is easy to panic the kernel with a custom
	 * signal handler and/or restorer which clobberes the status32/ret
	 * to return to a bogus location in kernel mode.
	 */
	regs->status32 |= STATUS_U_MASK;

	return regs->r0;

badframe:
@@ -229,8 +238,11 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs)

	/*
	 * handler returns using sigreturn stub provided already by userpsace
	 * If not, nuke the process right away
	 */
	BUG_ON(!(ksig->ka.sa.sa_flags & SA_RESTORER));
	if(!(ksig->ka.sa.sa_flags & SA_RESTORER))
		return 1;

	regs->blink = (unsigned long)ksig->ka.sa.sa_restorer;

	/* User Stack for signal handler will be above the frame just carved */
@@ -296,12 +308,12 @@ static void
handle_signal(struct ksignal *ksig, struct pt_regs *regs)
{
	sigset_t *oldset = sigmask_to_save();
	int ret;
	int failed;

	/* Set up the stack frame */
	ret = setup_rt_frame(ksig, oldset, regs);
	failed = setup_rt_frame(ksig, oldset, regs);

	signal_setup_done(ret, ksig, 0);
	signal_setup_done(failed, ksig, 0);
}

void do_signal(struct pt_regs *regs)
+2 −4
Original line number Diff line number Diff line
menuconfig ARCH_SUNXI
	bool "Allwinner SoCs" if ARCH_MULTI_V7
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_HAS_RESET_CONTROLLER
	select CLKSRC_MMIO
	select GENERIC_IRQ_CHIP
	select PINCTRL
	select SUN4I_TIMER
	select RESET_CONTROLLER

if ARCH_SUNXI

@@ -20,10 +22,8 @@ config MACH_SUN5I
config MACH_SUN6I
	bool "Allwinner A31 (sun6i) SoCs support"
	default ARCH_SUNXI
	select ARCH_HAS_RESET_CONTROLLER
	select ARM_GIC
	select MFD_SUN6I_PRCM
	select RESET_CONTROLLER
	select SUN5I_HSTIMER

config MACH_SUN7I
@@ -37,9 +37,7 @@ config MACH_SUN7I
config MACH_SUN8I
	bool "Allwinner A23 (sun8i) SoCs support"
	default ARCH_SUNXI
	select ARCH_HAS_RESET_CONTROLLER
	select ARM_GIC
	select MFD_SUN6I_PRCM
	select RESET_CONTROLLER

endif
+29 −0
Original line number Diff line number Diff line
#ifndef __ASM_ALTERNATIVE_ASM_H
#define __ASM_ALTERNATIVE_ASM_H

#ifdef __ASSEMBLY__

.macro altinstruction_entry orig_offset alt_offset feature orig_len alt_len
	.word \orig_offset - .
	.word \alt_offset - .
	.hword \feature
	.byte \orig_len
	.byte \alt_len
.endm

.macro alternative_insn insn1 insn2 cap
661:	\insn1
662:	.pushsection .altinstructions, "a"
	altinstruction_entry 661b, 663f, \cap, 662b-661b, 664f-663f
	.popsection
	.pushsection .altinstr_replacement, "ax"
663:	\insn2
664:	.popsection
	.if ((664b-663b) != (662b-661b))
		.error "Alternatives instruction length mismatch"
	.endif
.endm

#endif  /*  __ASSEMBLY__  */

#endif /* __ASM_ALTERNATIVE_ASM_H */
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ static inline cpumask_t cpu_thread_mask_to_cores(const struct cpumask *threads)

static inline int cpu_nr_cores(void)
{
	return NR_CPUS >> threads_shift;
	return nr_cpu_ids >> threads_shift;
}

static inline cpumask_t cpu_online_cores_map(void)
Loading