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

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

Merge 3.18.2 into android-3.18



Changes in 3.18.2:
	isofs: Fix infinite looping over CE entries
	x86/tls: Validate TLS entries to protect espfix
	x86/tls: Disallow unusual TLS segments
	x86_64, switch_to(): Load TLS descriptors before switching DS and ES
	x86, kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit
	brcmfmac: Fix bitmap malloc bug in msgbuf.
	clocksource: arch_timer: Fix code to use physical timers when requested
	mfd: twl4030-power: Fix regression with missing compatible flag
	mfd: tc6393xb: Fail ohci suspend if full state restore is required
	mmc: dw_mmc: avoid write to CDTHRCTL on older versions
	mmc: omap_hsmmc: Fix UHS card with DDR50 support
	mmc: block: add newline to sysfs display of force_ro
	mmc: sdhci-pci-o2micro: Fix Dell E5440 issue
	megaraid_sas: corrected return of wait_event from abort frame path
	megaraid_sas: dndinaness related bug fixes
	regulator: anatop: Set default voltage selector for vddpu
	scsi: correct return values for .eh_abort_handler implementations
	f2fs: avoid returning uninitialized value to userspace from f2fs_trim_fs()
	f2fs: fix possible data corruption in f2fs_write_begin()
	nfs41: fix nfs4_proc_layoutget error handling
	dcache: fix kmemcheck warning in switch_names
	dm bufio: fix memleak when using a dm_buffer's inline bio
	dm crypt: use memzero_explicit for on-stack buffer
	dm cache: only use overwrite optimisation for promotion when in writeback mode
	dm cache: dirty flag was mistakenly being cleared when promoting via overwrite
	dm cache: fix spurious cell_defer when dealing with partial block at end of device
	dm space map metadata: fix sm_bootstrap_get_nr_blocks()
	dm thin: fix inability to discard blocks when in out-of-data-space mode
	dm thin: fix missing out-of-data-space to write mode transition if blocks are released
	dm thin: fix a race in thin_dtr
	arm64: Add COMPAT_HWCAP_LPAE
	arm64: bpf: lift restriction on last instruction
	drm/tegra: gem: dumb: pitch and size are outputs
	ARM: tegra: Re-add removed SoC id macro to tegra_resume()
	ARM: mvebu: make the coherency_ll.S functions work with no coherency fabric
	ARM: mvebu: disable I/O coherency on non-SMP situations on Armada 370/375/38x/XP
	ARM: mvebu: remove conflicting muxing on Armada 370 DB
	ARM: mvebu: fix ordering in Armada 370 .dtsi
	x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs
	x86/tls: Don't validate lm in set_thread_area() after all
	isofs: Fix unchecked printing of ER records
	x86, microcode, AMD: Do not use smp_processor_id() in preemtible context
	x86, microcode, intel: Drop unused parameter
	x86, microcode: Don't initialize microcode code on paravirt
	x86, microcode: Reload microcode on resume
	x86/microcode/intel: Fish out the stashed microcode for the BSP
	KEYS: Fix stale key registration at error path
	mac80211: copy chandef from AP vif to VLANs
	mac80211: avoid using uninitialized stack data
	mac80211: fix multicast LED blinking and counter
	mac80211: free management frame keys when removing station
	mnt: Fix a memory stomp in umount
	thermal: Fix error path in thermal_init()
	mnt: Implicitly add MNT_NODEV on remount when it was implicitly added by mount
	mnt: Update unprivileged remount test
	umount: Disallow unprivileged mount force
	groups: Consolidate the setgroups permission checks
	userns: Document what the invariant required for safe unprivileged mappings.
	userns: Don't allow setgroups until a gid mapping has been setablished
	userns: Don't allow unprivileged creation of gid mappings
	userns: Check euid no fsuid when establishing an unprivileged uid mapping
	userns: Only allow the creator of the userns unprivileged mappings
	userns: Rename id_map_mutex to userns_state_mutex
	userns: Add a knob to disable setgroups on a per user namespace basis
	userns: Allow setting gid_maps without privilege when setgroups is disabled
	userns: Unbreak the unprivileged remount tests
	audit: use supplied gfp_mask from audit_buffer in kauditd_send_multicast_skb
	audit: don't attempt to lookup PIDs when changing PID filtering audit rules
	audit: restore AUDIT_LOGINUID unset ABI
	crypto: af_alg - fix backlog handling
	ncpfs: return proper error from NCP_IOC_SETROOT ioctl
	mm/CMA: fix boot regression due to physical address of high_memory
	exit: pidns: alloc_pid() leaks pid_namespace if child_reaper is exiting
	udf: Check path length when reading symlink
	udf: Verify i_size when loading inode
	udf: Verify symlink size before loading it
	udf: Check component length before reading it
	eCryptfs: Force RO mount when encrypted view is enabled
	eCryptfs: Remove buggy and unnecessary write in file name decode routine
	Btrfs: make sure we wait on logged extents when fsycning two subvols
	btrfs: fix wrong accounting of raid1 data profile in statfs
	Btrfs: do not move em to modified list when unpinning
	Btrfs: make sure logged extents complete in the current transaction V3
	Btrfs: fix fs corruption on transaction abort if device supports discard
	Linux 3.18.2

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

+0 −24
Original line number Diff line number Diff line
@@ -102,30 +102,6 @@
				broken-cd;
			};

			pinctrl {
				/*
				 * These pins might be muxed as I2S by
				 * the bootloader, but it conflicts
				 * with the real I2S pins that are
				 * muxed using i2s_pins. We must mux
				 * those pins to a function other than
				 * I2S.
				 */
				pinctrl-0 = <&hog_pins1 &hog_pins2>;
				pinctrl-names = "default";

				hog_pins1: hog-pins1 {
					marvell,pins = "mpp6",  "mpp8", "mpp10",
						       "mpp12", "mpp13";
					marvell,function = "gpio";
				};

				hog_pins2: hog-pins2 {
					marvell,pins = "mpp5", "mpp7", "mpp9";
					marvell,function = "gpo";
				};
			};

			usb@50000 {
				status = "okay";
			};
+5 −5
Original line number Diff line number Diff line
@@ -106,11 +106,6 @@
				reg = <0x11100 0x20>;
			};

			system-controller@18200 {
				compatible = "marvell,armada-370-xp-system-controller";
				reg = <0x18200 0x100>;
			};

			pinctrl {
				compatible = "marvell,mv88f6710-pinctrl";
				reg = <0x18000 0x38>;
@@ -205,6 +200,11 @@
				interrupts = <91>;
			};

			system-controller@18200 {
				compatible = "marvell,armada-370-xp-system-controller";
				reg = <0x18200 0x100>;
			};

			gateclk: clock-gating-control@18220 {
				compatible = "marvell,armada-370-gating-clock";
				reg = <0x18220 0x4>;
+9 −0
Original line number Diff line number Diff line
@@ -78,6 +78,15 @@ static inline u32 arch_timer_get_cntfrq(void)
	return val;
}

static inline u64 arch_counter_get_cntpct(void)
{
	u64 cval;

	isb();
	asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (cval));
	return cval;
}

static inline u64 arch_counter_get_cntvct(void)
{
	u64 cval;
+30 −14
Original line number Diff line number Diff line
@@ -361,27 +361,43 @@ static int coherency_type(void)
{
	struct device_node *np;
	const struct of_device_id *match;
	int type;

	/*
	 * The coherency fabric is needed:
	 * - For coherency between processors on Armada XP, so only
	 *   when SMP is enabled.
	 * - For coherency between the processor and I/O devices, but
	 *   this coherency requires many pre-requisites (write
	 *   allocate cache policy, shareable pages, SMP bit set) that
	 *   are only meant in SMP situations.
	 *
	 * Note that this means that on Armada 370, there is currently
	 * no way to use hardware I/O coherency, because even when
	 * CONFIG_SMP is enabled, is_smp() returns false due to the
	 * Armada 370 being a single-core processor. To lift this
	 * limitation, we would have to find a way to make the cache
	 * policy set to write-allocate (on all Armada SoCs), and to
	 * set the shareable attribute in page tables (on all Armada
	 * SoCs except the Armada 370). Unfortunately, such decisions
	 * are taken very early in the kernel boot process, at a point
	 * where we don't know yet on which SoC we are running.

	 */
	if (!is_smp())
		return COHERENCY_FABRIC_TYPE_NONE;

	np = of_find_matching_node_and_match(NULL, of_coherency_table, &match);
	if (np) {
		int type = (int) match->data;
	if (!np)
		return COHERENCY_FABRIC_TYPE_NONE;

		/* Armada 370/XP coherency works in both UP and SMP */
		if (type == COHERENCY_FABRIC_TYPE_ARMADA_370_XP)
			return type;
	type = (int) match->data;

		/* Armada 375 coherency works only on SMP */
		else if (type == COHERENCY_FABRIC_TYPE_ARMADA_375 && is_smp())
			return type;
	of_node_put(np);

		/* Armada 380 coherency works only on SMP */
		else if (type == COHERENCY_FABRIC_TYPE_ARMADA_380 && is_smp())
	return type;
}

	return COHERENCY_FABRIC_TYPE_NONE;
}

int coherency_available(void)
{
	return coherency_type() != COHERENCY_FABRIC_TYPE_NONE;
Loading