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

Commit cdc63a05 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull arm64 fixes from Catalin Marinas:

 - enable 48-bit VA space now that KVM has been fixed, together with a
   couple of fixes for pgd allocation alignment and initial memblock
   current_limit.  There is still a dependency on !ARM_SMMU which needs
   to be updated as it uses the page table manipulation macros of the
   host kernel
 - eBPF fixes following changes/conflicts during the merging window
 - Compat types affecting compat_elf_prpsinfo
 - Compilation error on UP builds
 - ASLR fix when /proc/sys/kernel/randomize_va_space == 0
 - DT definitions for CLCD support on ARMv8 model platform

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: Fix memblock current_limit with 64K pages and 48-bit VA
  arm64: ASLR: Don't randomise text when randomise_va_space == 0
  arm64: vexpress: Add CLCD support to the ARMv8 model platform
  arm64: Fix compilation error on UP builds
  Documentation/arm64/memory.txt: fix typo
  net: bpf: arm64: minor fix of type in jited
  arm64: bpf: add 'load 64-bit immediate' instruction
  arm64: bpf: add 'shift by register' instructions
  net: bpf: arm64: address randomize and write protect JIT code
  arm64: mm: Correct fixmap pagetable types
  arm64: compat: fix compat types affecting struct compat_elf_prpsinfo
  arm64: Align less than PAGE_SIZE pgds naturally
  arm64: Allow 48-bits VA space without ARM_SMMU
parents 83da00fb 3dec0fe4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -17,7 +17,7 @@ User addresses have bits 63:48 set to 0 while the kernel addresses have
the same bits set to 1. TTBRx selection is given by bit 63 of the
the same bits set to 1. TTBRx selection is given by bit 63 of the
virtual address. The swapper_pg_dir contains only kernel (global)
virtual address. The swapper_pg_dir contains only kernel (global)
mappings while the user pgd contains only user (non-global) mappings.
mappings while the user pgd contains only user (non-global) mappings.
The swapper_pgd_dir address is written to TTBR1 and never written to
The swapper_pg_dir address is written to TTBR1 and never written to
TTBR0.
TTBR0.




+2 −1
Original line number Original line Diff line number Diff line
config ARM64
config ARM64
	def_bool y
	def_bool y
	select ARCH_BINFMT_ELF_RANDOMIZE_PIE
	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
	select ARCH_HAS_SG_CHAIN
	select ARCH_HAS_SG_CHAIN
	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
@@ -232,7 +233,7 @@ config ARM64_VA_BITS_42


config ARM64_VA_BITS_48
config ARM64_VA_BITS_48
	bool "48-bit"
	bool "48-bit"
	depends on BROKEN
	depends on !ARM_SMMU


endchoice
endchoice


+34 −1
Original line number Original line Diff line number Diff line
@@ -22,7 +22,7 @@
			bank-width = <4>;
			bank-width = <4>;
		};
		};


		vram@2,00000000 {
		v2m_video_ram: vram@2,00000000 {
			compatible = "arm,vexpress-vram";
			compatible = "arm,vexpress-vram";
			reg = <2 0x00000000 0x00800000>;
			reg = <2 0x00000000 0x00800000>;
		};
		};
@@ -179,9 +179,42 @@
			clcd@1f0000 {
			clcd@1f0000 {
				compatible = "arm,pl111", "arm,primecell";
				compatible = "arm,pl111", "arm,primecell";
				reg = <0x1f0000 0x1000>;
				reg = <0x1f0000 0x1000>;
				interrupt-names = "combined";
				interrupts = <14>;
				interrupts = <14>;
				clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
				clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
				clock-names = "clcdclk", "apb_pclk";
				clock-names = "clcdclk", "apb_pclk";
				arm,pl11x,framebuffer = <0x18000000 0x00180000>;
				memory-region = <&v2m_video_ram>;
				max-memory-bandwidth = <130000000>; /* 16bpp @ 63.5MHz */

				port {
					v2m_clcd_pads: endpoint {
						remote-endpoint = <&v2m_clcd_panel>;
						arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
					};
				};

				panel {
					compatible = "panel-dpi";

					port {
						v2m_clcd_panel: endpoint {
							remote-endpoint = <&v2m_clcd_pads>;
						};
					};

					panel-timing {
						clock-frequency = <63500127>;
						hactive = <1024>;
						hback-porch = <152>;
						hfront-porch = <48>;
						hsync-len = <104>;
						vactive = <768>;
						vback-porch = <23>;
						vfront-porch = <3>;
						vsync-len = <4>;
					};
				};
			};
			};


			virtio_block@0130000 {
			virtio_block@0130000 {
+2 −0
Original line number Original line Diff line number Diff line
@@ -78,6 +78,7 @@ CONFIG_NET_XGENE=y
# CONFIG_WLAN is not set
# CONFIG_WLAN is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVDEV=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_SERPORT is not set
CONFIG_SERIO_AMBAKMI=y
CONFIG_LEGACY_PTY_COUNT=16
CONFIG_LEGACY_PTY_COUNT=16
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CONSOLE=y
@@ -90,6 +91,7 @@ CONFIG_VIRTIO_CONSOLE=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_FB=y
CONFIG_FB=y
CONFIG_FB_ARMCLCD=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_MONO is not set
+2 −2
Original line number Original line Diff line number Diff line
@@ -37,8 +37,8 @@ typedef s32 compat_ssize_t;
typedef s32		compat_time_t;
typedef s32		compat_time_t;
typedef s32		compat_clock_t;
typedef s32		compat_clock_t;
typedef s32		compat_pid_t;
typedef s32		compat_pid_t;
typedef u32		__compat_uid_t;
typedef u16		__compat_uid_t;
typedef u32		__compat_gid_t;
typedef u16		__compat_gid_t;
typedef u16		__compat_uid16_t;
typedef u16		__compat_uid16_t;
typedef u16		__compat_gid16_t;
typedef u16		__compat_gid16_t;
typedef u32		__compat_uid32_t;
typedef u32		__compat_uid32_t;
Loading