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

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

Merge 3.18.45 into android-3.18



Changes in 3.18.45:
	udp: properly support MSG_PEEK with truncated buffers
	mmc: core: Annotate cmd_hdr as __le32
	scsi: Fix use-after-free
	jbd2: fix incorrect unlock on j_list_lock
	drm/radeon: change vblank_time's calculation method to reduce computational error.
	irqchip/gicv3: Handle loop timeout proper
	usb: gadget: function: u_ether: don't starve tx request queue
	mmc: sdhci: cast unsigned int to unsigned long long to avoid unexpeted error
	mmc: rtsx_usb_sdmmc: Avoid keeping the device runtime resumed when unused
	mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led
	memstick: rtsx_usb_ms: Runtime resume the device when polling for cards
	memstick: rtsx_usb_ms: Manage runtime PM when accessing the device
	USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7
	isofs: Do not return EACCES for unknown filesystems
	powerpc/mm: Prevent unlikely crash in copro_calculate_slb()
	ubifs: Fix xattr_names length in exit paths
	target: Don't override EXTENDED_COPY xcopy_pt_cmd SCSI status code
	libxfs: clean up _calc_dquots_per_chunk
	xhci: add restart quirk for Intel Wildcatpoint PCH
	USB: serial: fix potential NULL-dereference at probe
	usb: increase ohci watchdog delay to 275 msec
	dm table: fix missing dm_put_target_type() in dm_table_add_target()
	mei: txe: don't clean an unprocessed interrupt cause.
	hv: do not lose pending heartbeat vmbus packets
	KEYS: Fix short sprintf buffer in /proc/keys show function
	ALSA: usb-audio: Add quirk for Syntek STK1160
	tty: limit terminal size to 4M chars
	vt: clear selection before resizing
	btrfs: fix races on root_log_ctx lists
	GenWQE: Fix bad page access during abort of resource allocation
	mac80211: discard multicast and 4-addr A-MSDUs
	Input: i8042 - add XMG C504 to keyboard reset table
	USB: serial: cp210x: fix tiocmget error handling
	drm/radeon/si/dpm: add workaround for for Jet parts
	drm/radeon/si_dpm: Limit clocks on HD86xx part
	powerpc: Convert cmp to cmpd in idle enter sequence
	scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices
	drm/radeon: drop register readback in cayman_cp_int_cntl_setup
	KVM: MIPS: Make ERET handle ERL before EXL
	drm/radeon/si_dpm: workaround for SI kickers
	scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded
	scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware
	md: sync sync_completed has correct value as recovery finishes.
	md: be careful not lot leak internal curr_resync value into metadata. -- (all)
	virtio: console: Unlock vqs while freeing buffers
	ovl: fsync after copy-up
	parisc: Ensure consistent state when switching to kernel stack at syscall entry
	firewire: net: guard against rx buffer overflows
	firewire: net: fix fragmented datagram_size off-by-one
	kbuild: add -fno-PIE
	Linux 3.18.45

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents c7547e75 ac3d826b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 44
SUBLEVEL = 45
EXTRAVERSION =
NAME = Diseased Newt

@@ -611,6 +611,8 @@ all: vmlinux
include $(srctree)/arch/$(SRCARCH)/Makefile

KBUILD_CFLAGS	+= $(call cc-option,-fno-delete-null-pointer-checks,)
KBUILD_CFLAGS	+= $(call cc-option,-fno-PIE)
KBUILD_AFLAGS	+= $(call cc-option,-fno-PIE)

ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS	+= -Os $(call cc-disable-warning,maybe-uninitialized,)
+4 −4
Original line number Diff line number Diff line
@@ -752,15 +752,15 @@ enum emulation_result kvm_mips_emul_eret(struct kvm_vcpu *vcpu)
	struct mips_coproc *cop0 = vcpu->arch.cop0;
	enum emulation_result er = EMULATE_DONE;

	if (kvm_read_c0_guest_status(cop0) & ST0_EXL) {
	if (kvm_read_c0_guest_status(cop0) & ST0_ERL) {
		kvm_clear_c0_guest_status(cop0, ST0_ERL);
		vcpu->arch.pc = kvm_read_c0_guest_errorepc(cop0);
	} else if (kvm_read_c0_guest_status(cop0) & ST0_EXL) {
		kvm_debug("[%#lx] ERET to %#lx\n", vcpu->arch.pc,
			  kvm_read_c0_guest_epc(cop0));
		kvm_clear_c0_guest_status(cop0, ST0_EXL);
		vcpu->arch.pc = kvm_read_c0_guest_epc(cop0);

	} else if (kvm_read_c0_guest_status(cop0) & ST0_ERL) {
		kvm_clear_c0_guest_status(cop0, ST0_ERL);
		vcpu->arch.pc = kvm_read_c0_guest_errorepc(cop0);
	} else {
		kvm_err("[%#lx] ERET when MIPS_SR_EXL|MIPS_SR_ERL == 0\n",
			vcpu->arch.pc);
+9 −2
Original line number Diff line number Diff line
@@ -106,8 +106,6 @@ linux_gateway_entry:
	mtsp	%r0,%sr4			/* get kernel space into sr4 */
	mtsp	%r0,%sr5			/* get kernel space into sr5 */
	mtsp	%r0,%sr6			/* get kernel space into sr6 */
	mfsp    %sr7,%r1                        /* save user sr7 */
	mtsp    %r1,%sr3                        /* and store it in sr3 */

#ifdef CONFIG_64BIT
	/* for now we can *always* set the W bit on entry to the syscall
@@ -133,6 +131,14 @@ linux_gateway_entry:
	depdi	0, 31, 32, %r21
1:	
#endif

	/* We use a rsm/ssm pair to prevent sr3 from being clobbered
	 * by external interrupts.
	 */
	mfsp    %sr7,%r1                        /* save user sr7 */
	rsm	PSW_SM_I, %r0			/* disable interrupts */
	mtsp    %r1,%sr3                        /* and store it in sr3 */

	mfctl   %cr30,%r1
	xor     %r1,%r30,%r30                   /* ye olde xor trick */
	xor     %r1,%r30,%r1
@@ -147,6 +153,7 @@ linux_gateway_entry:
	 */

	mtsp	%r0,%sr7			/* get kernel space into sr7 */
	ssm	PSW_SM_I, %r0			/* enable interrupts */
	STREGM	%r1,FRAME_SIZE(%r30)		/* save r1 (usp) here for now */
	mfctl	%cr30,%r1			/* get task ptr in %r1 */
	LDREG	TI_TASK(%r1),%r1
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@
	std	r0,0(r1);					\
	ptesync;						\
	ld	r0,0(r1);					\
1:	cmp	cr0,r0,r0;					\
1:	cmpd	cr0,r0,r0;					\
	bne	1b;						\
	IDLE_INST;						\
	b	.
+2 −0
Original line number Diff line number Diff line
@@ -102,6 +102,8 @@ int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb)
	switch (REGION_ID(ea)) {
	case USER_REGION_ID:
		pr_devel("%s: 0x%llx -- USER_REGION_ID\n", __func__, ea);
		if (mm == NULL)
			return 1;
		psize = get_slice_psize(mm, ea);
		ssize = user_segment_size(ea);
		vsid = get_vsid(mm->context.id, ea, ssize);
Loading