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

Commit 353fda02 authored by Kevin Hilman's avatar Kevin Hilman
Browse files

Merge branch 'linux-3.18.y' of...

Merge branch 'linux-3.18.y' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into linux-linaro-lsk-v3.18

* 'linux-3.18.y' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (172 commits)
  Linux 3.18.16
  arch/x86/kvm/mmu.c: work around gcc-4.4.4 bug
  md/raid0: fix restore to sector variable in raid0_make_request
  Linux 3.18.15
  ARM: OMAP3: Fix booting with thumb2 kernel
  xfrm: release dst_orig in case of error in xfrm_lookup()
  ARC: unbork !LLSC build
  power/reset: at91: fix return value check in at91_reset_platform_probe()
  vfs: read file_handle only once in handle_to_path
  drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling"
  drm/radeon: don't share plls if monitors differ in audio support
  drm/radeon: retry dcpd fetch
  drm/radeon: fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling
  drm/radeon: add new bonaire pci id
  iwlwifi: pcie: prevent using unmapped memory in fw monitor
  ACPI / init: Fix the ordering of acpi_reserve_resources()
  sd: Disable support for 256 byte/sector disks
  storvsc: Set the SRB flags correctly when no data transfer is needed
  rtlwifi: rtl8192cu: Fix kernel deadlock
  md/raid5: don't record new size if resize_stripes fails.
  ...
parents 93d9273e d048c068
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ dma_apbx: dma-apbx@80024000 {
		      80 81 68 69
		      70 71 72 73
		      74 75 76 77>;
	interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty",
	interrupt-names = "auart4-rx", "auart4-tx", "spdif-tx", "empty",
			  "saif0", "saif1", "i2c0", "i2c1",
			  "auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx",
			  "auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx";
+14 −4
Original line number Diff line number Diff line
@@ -169,6 +169,10 @@ Shadow pages contain the following information:
    Contains the value of cr4.smep && !cr0.wp for which the page is valid
    (pages for which this is true are different from other pages; see the
    treatment of cr0.wp=0 below).
  role.smap_andnot_wp:
    Contains the value of cr4.smap && !cr0.wp for which the page is valid
    (pages for which this is true are different from other pages; see the
    treatment of cr0.wp=0 below).
  gfn:
    Either the guest page table containing the translations shadowed by this
    page, or the base page frame for linear translations.  See role.direct.
@@ -344,10 +348,16 @@ on fault type:

(user write faults generate a #PF)

In the first case there is an additional complication if CR4.SMEP is
enabled: since we've turned the page into a kernel page, the kernel may now
execute it.  We handle this by also setting spte.nx.  If we get a user
fetch or read fault, we'll change spte.u=1 and spte.nx=gpte.nx back.
In the first case there are two additional complications:
- if CR4.SMEP is enabled: since we've turned the page into a kernel page,
  the kernel may now execute it.  We handle this by also setting spte.nx.
  If we get a user fetch or read fault, we'll change spte.u=1 and
  spte.nx=gpte.nx back.
- if CR4.SMAP is disabled: since the page has been changed to a kernel
  page, it can not be reused when CR4.SMAP is enabled. We set
  CR4.SMAP && !CR0.WP into shadow page's role to avoid this case. Note,
  here we do not care the case that CR4.SMAP is enabled since KVM will
  directly inject #PF to guest due to failed permission check.

To prevent an spte that was converted into a kernel page with cr0.wp=0
from being written by the kernel after cr0.wp has changed to 1, we make
+1 −1
Original line number Diff line number Diff line
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 14
SUBLEVEL = 16
EXTRAVERSION =
NAME = Diseased Newt

+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ static inline void atomic_##op(int i, atomic_t *v) \
	atomic_ops_unlock(flags);					\
}

#define ATOMIC_OP_RETURN(op, c_op)					\
#define ATOMIC_OP_RETURN(op, c_op, asm_op)				\
static inline int atomic_##op##_return(int i, atomic_t *v)		\
{									\
	unsigned long flags;						\
+4 −0
Original line number Diff line number Diff line
@@ -71,6 +71,10 @@
		};

		internal-regs {
			rtc@10300 {
				/* No crystal connected to the internal RTC */
				status = "disabled";
			};
			serial@12000 {
				status = "okay";
			};
Loading