Permalink
Browse files

Merge branch 'linux-4.14.y' of http://git.kernel.org/pub/scm/linux/ke…

…rnel/git/stable/linux-stable into ti-linux-4.14.y

* 'linux-4.14.y' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (243 commits)
  Linux 4.14.71
  mm: get rid of vmacache_flush_all() entirely
  autofs: fix autofs_sbi() does not check super block type
  tuntap: fix use after free during release
  tun: fix use after free for ptr_ring
  mtd: ubi: wl: Fix error return code in ubi_wl_init()
  ip: frags: fix crash in ip_do_fragment()
  ip: process in-order fragments efficiently
  ip: add helpers to process in-order fragments faster.
  ipv4: frags: precedence bug in ip_expire()
  net: sk_buff rbnode reorg
  net: add rb_to_skb() and other rb tree helpers
  net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends
  ipv6: defrag: drop non-last frags smaller than min mtu
  net: modify skb_rbtree_purge to return the truesize of all purged skbs.
  net: speed up skb_rbtree_purge()
  ip: discard IPv4 datagrams with overlapping segments.
  inet: frags: fix ip6frag_low_thresh boundary
  inet: frags: get rid of ipfrag_skb_cb/FRAG_CB
  inet: frags: reorganize struct netns_frags
  ...

Signed-off-by: LCPD Auto Merger <lcpd_integration@list.ti.com>
  • Loading branch information...
LCPD Auto Merger
LCPD Auto Merger committed Sep 22, 2018
2 parents 9b12b1d + 1244bbb commit e3a49f236cc5ed0cfe3d413616d7cbf8c8b3583b
Showing with 2,239 additions and 1,666 deletions.
  1. +5 −8 Documentation/networking/ip-sysctl.txt
  2. +1 −1 Makefile
  3. +0 −1 arch/arc/configs/axs101_defconfig
  4. +0 −1 arch/arc/configs/axs103_defconfig
  5. +0 −1 arch/arc/configs/axs103_smp_defconfig
  6. +0 −2 arch/arm/configs/imx_v6_v7_defconfig
  7. +1 −0 arch/arm/mach-rockchip/Kconfig
  8. +1 −0 arch/arm64/Kconfig.platforms
  9. +5 −0 arch/arm64/include/asm/cache.h
  10. +2 −1 arch/arm64/include/asm/cpucaps.h
  11. +20 −5 arch/arm64/kernel/cpu_errata.c
  12. +2 −2 arch/arm64/kernel/cpufeature.c
  13. +2 −0 arch/mips/cavium-octeon/octeon-platform.c
  14. +1 −0 arch/mips/generic/init.c
  15. +4 −4 arch/mips/include/asm/io.h
  16. +20 −0 arch/mips/kernel/vdso.c
  17. +4 −2 arch/mips/mm/c-r4k.c
  18. +10 −3 arch/powerpc/include/asm/uaccess.h
  19. +6 −0 arch/powerpc/kernel/exceptions-64s.S
  20. +4 −0 arch/powerpc/platforms/85xx/t1042rdb_diu.c
  21. +3 −2 arch/powerpc/platforms/powernv/npu-dma.c
  22. +1 −1 arch/powerpc/platforms/pseries/ras.c
  23. +1 −1 arch/powerpc/sysdev/mpic_msgr.c
  24. +12 −5 arch/s390/kernel/crash_dump.c
  25. +2 −1 arch/s390/kvm/vsie.c
  26. +8 −4 arch/s390/lib/mem.S
  27. +1 −0 arch/x86/include/asm/mce.h
  28. +3 −4 arch/x86/include/asm/pgtable-3level.h
  29. +16 −8 arch/x86/kernel/cpu/microcode/amd.c
  30. +12 −5 arch/x86/kernel/cpu/microcode/intel.c
  31. +38 −5 arch/x86/kvm/mmu.c
  32. +19 −11 arch/x86/kvm/vmx.c
  33. +7 −5 arch/x86/kvm/x86.c
  34. +0 −2 arch/x86/mm/fault.c
  35. +3 −4 arch/x86/xen/mmu_pv.c
  36. +2 −2 block/bfq-cgroup.c
  37. +1 −1 block/bio.c
  38. +4 −4 block/blk-mq-tag.c
  39. +12 −10 block/cfq-iosched.c
  40. +9 −4 block/partitions/aix.c
  41. +1 −1 crypto/Makefile
  42. +3 −2 drivers/acpi/scan.c
  43. +34 −8 drivers/android/binder_alloc.c
  44. +12 −8 drivers/ata/libahci.c
  45. +3 −0 drivers/block/nbd.c
  46. +3 −1 drivers/block/pktcdvd.c
  47. +1 −0 drivers/bluetooth/Kconfig
  48. +41 −9 drivers/char/tpm/tpm-interface.c
  49. +10 −2 drivers/char/tpm/tpm.h
  50. +10 −6 drivers/char/tpm/tpm2-space.c
  51. +27 −74 drivers/char/tpm/tpm_crb.c
  52. +4 −4 drivers/char/tpm/tpm_i2c_infineon.c
  53. +8 −1 drivers/char/tpm/tpm_tis_spi.c
  54. +1 −0 drivers/clk/rockchip/clk-rk3399.c
  55. +4 −1 drivers/firmware/google/vpd.c
  56. +2 −1 drivers/gpio/gpio-ml-ioh.c
  57. +1 −1 drivers/gpio/gpio-tegra.c
  58. +5 −0 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
  59. +4 −0 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
  60. +10 −7 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
  61. +1 −1 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
  62. +3 −0 drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
  63. +31 −9 drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
  64. +43 −0 drivers/gpu/drm/amd/powerplay/hwmgr/smu7_powertune.c
  65. +3 −0 drivers/gpu/drm/drm_edid.c
  66. +1 −0 drivers/gpu/drm/i915/i915_reg.h
  67. +4 −0 drivers/gpu/drm/i915/intel_ddi.c
  68. +1 −3 drivers/gpu/drm/i915/intel_lpe_audio.c
  69. +1 −1 drivers/gpu/drm/i915/intel_lspcon.c
  70. +2 −0 drivers/gpu/ipu-v3/ipu-common.c
  71. +1 −0 drivers/hid/hid-ids.h
  72. +1 −0 drivers/hid/usbhid/hid-quirks.c
  73. +8 −6 drivers/hv/hv.c
  74. +1 −1 drivers/i2c/busses/i2c-aspeed.c
  75. +6 −1 drivers/i2c/busses/i2c-i801.c
  76. +4 −0 drivers/i2c/busses/i2c-xiic.c
  77. +10 −3 drivers/infiniband/core/cma.c
  78. +21 −3 drivers/infiniband/hw/hfi1/affinity.c
  79. +1 −1 drivers/infiniband/hw/hns/hns_roce_pd.c
  80. +4 −1 drivers/infiniband/hw/hns/hns_roce_qp.c
  81. +12 −4 drivers/input/input.c
  82. +4 −3 drivers/input/touchscreen/atmel_mxt_ts.c
  83. +4 −5 drivers/iommu/ipmmu-vmsa.c
  84. +4 −0 drivers/irqchip/irq-bcm7038-l1.c
  85. +0 −1 drivers/lightnvm/pblk-core.c
  86. +6 −1 drivers/lightnvm/pblk-write.c
  87. +5 −4 drivers/macintosh/via-pmu.c
  88. +15 −4 drivers/md/dm-cache-target.c
  89. +2 −0 drivers/md/dm-kcopyd.c
  90. +6 −0 drivers/md/raid5.c
  91. +4 −1 drivers/media/dvb-frontends/helene.c
  92. +16 −8 drivers/media/platform/davinci/vpif_display.c
  93. +11 −5 drivers/media/platform/qcom/camss-8x16/camss-csid.c
  94. +12 −11 drivers/media/platform/s5p-mfc/s5p_mfc.c
  95. +14 −5 drivers/media/usb/dvb-usb/dw2102.c
  96. +1 −0 drivers/mfd/sm501.c
  97. +1 −2 drivers/mfd/ti_am335x_tscadc.c
  98. +9 −11 drivers/misc/mic/scif/scif_api.c
  99. +2 −2 drivers/misc/ti-st/st_kim.c
  100. +6 −2 drivers/mtd/ubi/wl.c
  101. +3 −0 drivers/net/ethernet/broadcom/genet/bcmgenet.h
  102. +8 −2 drivers/net/ethernet/broadcom/genet/bcmmii.c
  103. +6 −3 drivers/net/ethernet/cadence/macb_main.c
  104. +1 −1 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
  105. +2 −0 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
  106. +0 −1 drivers/net/ethernet/marvell/mvneta.c
  107. +2 −0 drivers/net/ethernet/mellanox/mlxsw/spectrum.h
  108. +11 −0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
  109. +20 −0 drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
  110. +33 −15 drivers/net/ethernet/netronome/nfp/nfp_net_common.c
  111. +8 −15 drivers/net/ethernet/qlogic/qlge/qlge_main.c
  112. +1 −0 drivers/net/ethernet/realtek/r8169.c
  113. +15 −1 drivers/net/hyperv/netvsc_drv.c
  114. +15 −5 drivers/net/phy/mdio-mux-bcm-iproc.c
  115. +7 −14 drivers/net/tun.c
  116. +7 −0 drivers/net/wireless/ath/ath10k/mac.c
  117. +5 −0 drivers/net/wireless/ath/ath10k/wmi-tlv.c
  118. +5 −0 drivers/net/wireless/ath/ath10k/wmi-tlv.h
  119. +5 −2 drivers/net/wireless/ath/ath9k/hw.c
  120. +2 −1 drivers/net/wireless/ath/ath9k/xmit.c
  121. +6 −2 drivers/net/wireless/ti/wlcore/rx.c
  122. +1 −1 drivers/pci/host/pci-mvebu.c
  123. +4 −0 drivers/pci/switch/switchtec.c
  124. +1 −1 drivers/pinctrl/freescale/pinctrl-imx.c
  125. +2 −1 drivers/pinctrl/pinctrl-amd.c
  126. +1 −0 drivers/platform/x86/asus-nb-wmi.c
  127. +1 −0 drivers/platform/x86/intel_punit_ipc.c
  128. +1 −2 drivers/pwm/pwm-meson.c
  129. +7 −0 drivers/rpmsg/rpmsg_core.c
  130. +8 −2 drivers/s390/block/dasd_eckd.c
  131. +5 −1 drivers/scsi/3w-9xxx.c
  132. +3 −0 drivers/scsi/3w-sas.c
  133. +2 −0 drivers/scsi/3w-xxxx.c
  134. +3 −1 drivers/scsi/aic94xx/aic94xx_init.c
  135. +1 −1 drivers/scsi/lpfc/lpfc.h
  136. +2 −1 drivers/staging/comedi/drivers/ni_mio_common.c
  137. +12 −1 drivers/staging/irda/net/af_irda.c
  138. +3 −2 drivers/target/target_core_transport.c
  139. +1 −1 drivers/tty/rocket.c
  140. +1 −2 drivers/uio/uio.c
  141. +1 −1 drivers/vhost/vhost.c
  142. +12 −2 drivers/virtio/virtio_pci_legacy.c
  143. +1 −1 drivers/xen/xen-balloon.c
  144. +3 −1 fs/autofs4/autofs_i.h
  145. +0 −1 fs/autofs4/inode.c
  146. +6 −0 fs/btrfs/dev-replace.c
  147. +1 −1 fs/btrfs/extent-tree.c
  148. +19 −0 fs/btrfs/ioctl.c
  149. +12 −11 fs/btrfs/relocation.c
  150. +6 −2 fs/btrfs/volumes.c
  151. +8 −0 fs/cifs/cifs_debug.c
  152. +2 −0 fs/cifs/inode.c
  153. +7 −0 fs/cifs/smb2misc.c
  154. +25 −10 fs/cifs/smb2ops.c
  155. +4 −1 fs/cifs/smb2pdu.c
  156. +2 −1 fs/dcache.c
  157. +4 −0 fs/f2fs/data.c
  158. +6 −1 fs/f2fs/f2fs.h
  159. +1 −1 fs/f2fs/file.c
  160. +7 −1 fs/f2fs/gc.c
  161. +22 −0 fs/f2fs/inline.c
  162. +3 −1 fs/f2fs/node.c
  163. +3 −0 fs/f2fs/segment.h
  164. +19 −2 fs/f2fs/super.c
  165. +7 −3 fs/f2fs/sysfs.c
  166. +12 −7 fs/fat/cache.c
  167. +5 −0 fs/fat/fat.h
  168. +3 −3 fs/fat/fatent.c
  169. +4 −3 fs/hfs/brec.c
  170. +2 −2 fs/hfsplus/dir.c
  171. +3 −1 fs/hfsplus/super.c
  172. +2 −2 fs/nfs/callback_proc.c
  173. +8 −3 fs/nfs/callback_xdr.c
  174. +1 −1 fs/nfs/nfs4proc.c
  175. +3 −1 fs/proc/kcore.c
  176. +1 −1 fs/reiserfs/reiserfs.h
  177. +1 −1 include/linux/mm_types.h
  178. +1 −1 include/linux/mm_types_task.h
  179. +2 −0 include/linux/pci_ids.h
  180. +4 −4 include/linux/rhashtable.h
  181. +36 −14 include/linux/skbuff.h
  182. +2 −0 include/linux/tpm.h
  183. +0 −1 include/linux/vm_event_item.h
  184. +0 −5 include/linux/vmacache.h
  185. +63 −72 include/net/inet_frag.h
  186. +0 −1 include/net/ip.h
  187. +2 −24 include/net/ipv6.h
  188. +4 −0 include/net/tcp.h
  189. +2 −2 include/uapi/linux/ethtool.h
  190. +1 −1 include/uapi/linux/keyctl.h
  191. +1 −0 include/uapi/linux/snmp.h
  192. +6 −5 kernel/cpu.c
  193. +2 −0 kernel/fork.c
  194. +7 −4 kernel/memremap.c
  195. +4 −7 kernel/sched/deadline.c
  196. +16 −13 kernel/time/timer.c
  197. +5 −2 lib/debugobjects.c
  198. +2 −0 lib/rhashtable.c
  199. +2 −2 mm/debug.c
  200. +6 −2 mm/fadvise.c
  201. +0 −38 mm/vmacache.c
  202. +5 −5 net/9p/trans_fd.c
  203. +2 −1 net/9p/trans_virtio.c
  204. +1 −1 net/bluetooth/hidp/core.c
  205. +26 −5 net/core/skbuff.c
  206. +7 −4 net/dcb/dcbnl.c
  207. +4 −22 net/ieee802154/6lowpan/6lowpan_i.h
  208. +76 −77 net/ieee802154/6lowpan/reassembly.c
  209. +81 −297 net/ipv4/inet_fragment.c
  210. +319 −259 net/ipv4/ip_fragment.c
  211. +4 −3 net/ipv4/proc.c
  212. +3 −5 net/ipv4/tcp_fastopen.c
  213. +12 −21 net/ipv4/tcp_input.c
  214. +6 −0 net/ipv4/tcp_ipv4.c
  215. +2 −1 net/ipv4/tcp_minisocks.c
  216. +1 −1 net/ipv4/tcp_ulp.c
  217. +1 −1 net/ipv6/ip6_vti.c
  218. +11 −1 net/ipv6/netfilter/ip6t_rpfilter.c
  219. +46 −59 net/ipv6/netfilter/nf_conntrack_reasm.c
  220. +3 −2 net/ipv6/proc.c
  221. +111 −106 net/ipv6/reassembly.c
  222. +11 −4 net/netfilter/ipvs/ip_vs_core.c
  223. +17 −9 net/netfilter/nf_conntrack_netlink.c
  224. +13 −16 net/netfilter/nfnetlink_acct.c
  225. +1 −0 net/rds/ib_frmr.c
  226. +45 −34 net/sched/act_ife.c
  227. +13 −5 net/sched/act_pedit.c
  228. +6 −2 net/sched/cls_u32.c
  229. +4 −10 net/sched/sch_netem.c
  230. +0 −4 net/sctp/proc.c
  231. +15 −7 net/sctp/socket.c
  232. +9 −3 net/sunrpc/auth_gss/gss_krb5_crypto.c
  233. +2 −0 net/tipc/socket.c
  234. +1 −0 net/tls/tls_main.c
  235. +2 −2 scripts/depmod.sh
  236. +4 −4 scripts/mod/modpost.c
  237. +1 −1 security/keys/dh.c
  238. +2 −1 sound/pci/hda/hda_codec.c
  239. +1 −1 sound/soc/codecs/rt5677.c
  240. +1 −0 sound/soc/codecs/wm8994.c
  241. +3 −1 tools/perf/arch/powerpc/util/sym-handling.c
  242. +3 −0 tools/perf/builtin-c2c.c
  243. +2 −0 tools/perf/perf.h
  244. +14 −0 tools/perf/util/evsel.c
  245. +3 −0 tools/perf/util/namespaces.c
  246. +8 −4 tools/testing/nvdimm/pmem-dax.c
  247. +3 −3 tools/testing/selftests/bpf/test_verifier.c
  248. +12 −6 tools/testing/selftests/powerpc/harness.c
@@ -133,14 +133,11 @@ min_adv_mss - INTEGER
IP Fragmentation:
ipfrag_high_thresh - INTEGER
Maximum memory used to reassemble IP fragments. When
ipfrag_high_thresh bytes of memory is allocated for this purpose,
the fragment handler will toss packets until ipfrag_low_thresh
is reached. This also serves as a maximum limit to namespaces
different from the initial one.
ipfrag_low_thresh - INTEGER
ipfrag_high_thresh - LONG INTEGER
Maximum memory used to reassemble IP fragments.
ipfrag_low_thresh - LONG INTEGER
(Obsolete since linux-4.17)
Maximum memory used to reassemble IP fragments before the kernel
begins to remove incomplete fragment queues to free up resources.
The kernel still accepts new fragments for defragmentation.
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 14
SUBLEVEL = 69
SUBLEVEL = 71
EXTRAVERSION =
NAME = Petit Gorille
@@ -1,5 +1,4 @@
CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
@@ -1,5 +1,4 @@
CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
@@ -1,5 +1,4 @@
CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
@@ -289,7 +289,6 @@ CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA_ULPI=y
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_FTDI_SIO=m
@@ -326,7 +325,6 @@ CONFIG_USB_GADGETFS=m
CONFIG_USB_FUNCTIONFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_SERIAL=m
CONFIG_USB_ULPI_BUS=y
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
@@ -18,6 +18,7 @@ config ARCH_ROCKCHIP
select ARM_GLOBAL_TIMER
select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
select ZONE_DMA if ARM_LPAE
select PM
help
Support for Rockchip's Cortex-A9 Single-to-Quad-Core-SoCs
containing the RK2928, RK30xx and RK31xx series.
@@ -155,6 +155,7 @@ config ARCH_ROCKCHIP
select GPIOLIB
select PINCTRL
select PINCTRL_ROCKCHIP
select PM
select ROCKCHIP_TIMER
help
This enables support for the ARMv8 based Rockchip chipsets,
@@ -20,9 +20,14 @@
#define CTR_L1IP_SHIFT 14
#define CTR_L1IP_MASK 3
#define CTR_DMINLINE_SHIFT 16
#define CTR_IMINLINE_SHIFT 0
#define CTR_CWG_SHIFT 24
#define CTR_CWG_MASK 15
#define CTR_CACHE_MINLINE_MASK \
(0xf << CTR_DMINLINE_SHIFT | 0xf << CTR_IMINLINE_SHIFT)
#define CTR_L1IP(ctr) (((ctr) >> CTR_L1IP_SHIFT) & CTR_L1IP_MASK)
#define ICACHE_POLICY_VPIPT 0
@@ -44,7 +44,8 @@
#define ARM64_HARDEN_BRANCH_PREDICTOR 24
#define ARM64_HARDEN_BP_POST_GUEST_EXIT 25
#define ARM64_SSBD 26
#define ARM64_MISMATCHED_CACHE_TYPE 27
#define ARM64_NCAPS 27
#define ARM64_NCAPS 28
#endif /* __ASM_CPUCAPS_H */
@@ -16,6 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <linux/arm-smccc.h>
#include <linux/psci.h>
#include <linux/types.h>
#include <asm/cpu.h>
#include <asm/cputype.h>
@@ -45,12 +47,18 @@ is_kryo_midr(const struct arm64_cpu_capabilities *entry, int scope)
}
static bool
has_mismatched_cache_line_size(const struct arm64_cpu_capabilities *entry,
int scope)
has_mismatched_cache_type(const struct arm64_cpu_capabilities *entry,
int scope)
{
u64 mask = CTR_CACHE_MINLINE_MASK;
/* Skip matching the min line sizes for cache type check */
if (entry->capability == ARM64_MISMATCHED_CACHE_TYPE)
mask ^= arm64_ftr_reg_ctrel0.strict_mask;
WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
return (read_cpuid_cachetype() & arm64_ftr_reg_ctrel0.strict_mask) !=
(arm64_ftr_reg_ctrel0.sys_val & arm64_ftr_reg_ctrel0.strict_mask);
return (read_cpuid_cachetype() & mask) !=
(arm64_ftr_reg_ctrel0.sys_val & mask);
}
static int cpu_enable_trap_ctr_access(void *__unused)
@@ -511,7 +519,14 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
{
.desc = "Mismatched cache line size",
.capability = ARM64_MISMATCHED_CACHE_LINE_SIZE,
.matches = has_mismatched_cache_line_size,
.matches = has_mismatched_cache_type,
.def_scope = SCOPE_LOCAL_CPU,
.enable = cpu_enable_trap_ctr_access,
},
{
.desc = "Mismatched cache type",
.capability = ARM64_MISMATCHED_CACHE_TYPE,
.matches = has_mismatched_cache_type,
.def_scope = SCOPE_LOCAL_CPU,
.enable = cpu_enable_trap_ctr_access,
},
@@ -180,14 +180,14 @@ static const struct arm64_ftr_bits ftr_ctr[] = {
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, 28, 1, 1), /* IDC */
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_HIGHER_SAFE, 24, 4, 0), /* CWG */
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_HIGHER_SAFE, 20, 4, 0), /* ERG */
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, 16, 4, 1), /* DminLine */
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, CTR_DMINLINE_SHIFT, 4, 1),
/*
* Linux can handle differing I-cache policies. Userspace JITs will
* make use of *minLine.
* If we have differing I-cache policies, report it as the weakest - VIPT.
*/
ARM64_FTR_BITS(FTR_VISIBLE, FTR_NONSTRICT, FTR_EXACT, 14, 2, ICACHE_POLICY_VIPT), /* L1Ip */
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, 0, 4, 0), /* IminLine */
ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, CTR_IMINLINE_SHIFT, 4, 0),
ARM64_FTR_END,
};
@@ -322,6 +322,7 @@ static int __init octeon_ehci_device_init(void)
return 0;
pd = of_find_device_by_node(ehci_node);
of_node_put(ehci_node);
if (!pd)
return 0;
@@ -384,6 +385,7 @@ static int __init octeon_ohci_device_init(void)
return 0;
pd = of_find_device_by_node(ohci_node);
of_node_put(ohci_node);
if (!pd)
return 0;
@@ -204,6 +204,7 @@ void __init arch_init_irq(void)
"mti,cpu-interrupt-controller");
if (!cpu_has_veic && !intc_node)
mips_cpu_irq_init();
of_node_put(intc_node);
irqchip_init();
}
@@ -141,14 +141,14 @@ static inline void * phys_to_virt(unsigned long address)
/*
* ISA I/O bus memory addresses are 1:1 with the physical address.
*/
static inline unsigned long isa_virt_to_bus(volatile void * address)
static inline unsigned long isa_virt_to_bus(volatile void *address)
{
return (unsigned long)address - PAGE_OFFSET;
return virt_to_phys(address);
}
static inline void * isa_bus_to_virt(unsigned long address)
static inline void *isa_bus_to_virt(unsigned long address)
{
return (void *)(address + PAGE_OFFSET);
return phys_to_virt(address);
}
#define isa_page_to_bus page_to_phys
@@ -13,13 +13,15 @@
#include <linux/err.h>
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/timekeeper_internal.h>
#include <asm/abi.h>
#include <asm/mips-cps.h>
#include <asm/page.h>
#include <asm/vdso.h>
/* Kernel-provided data used by the VDSO. */
@@ -128,12 +130,30 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
vvar_size = gic_size + PAGE_SIZE;
size = vvar_size + image->size;
/*
* Find a region that's large enough for us to perform the
* colour-matching alignment below.
*/
if (cpu_has_dc_aliases)
size += shm_align_mask + 1;
base = get_unmapped_area(NULL, 0, size, 0, 0);
if (IS_ERR_VALUE(base)) {
ret = base;
goto out;
}
/*
* If we suffer from dcache aliasing, ensure that the VDSO data page
* mapping is coloured the same as the kernel's mapping of that memory.
* This ensures that when the kernel updates the VDSO data userland
* will observe it without requiring cache invalidations.
*/
if (cpu_has_dc_aliases) {
base = __ALIGN_MASK(base, shm_align_mask);
base += ((unsigned long)&vdso_data - gic_size) & shm_align_mask;
}
data_addr = base + gic_size;
vdso_addr = data_addr + PAGE_SIZE;
@@ -835,7 +835,8 @@ static void r4k_flush_icache_user_range(unsigned long start, unsigned long end)
static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
{
/* Catch bad driver code */
BUG_ON(size == 0);
if (WARN_ON(size == 0))
return;
preempt_disable();
if (cpu_has_inclusive_pcaches) {
@@ -871,7 +872,8 @@ static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
static void r4k_dma_cache_inv(unsigned long addr, unsigned long size)
{
/* Catch bad driver code */
BUG_ON(size == 0);
if (WARN_ON(size == 0))
return;
preempt_disable();
if (cpu_has_inclusive_pcaches) {
@@ -223,10 +223,17 @@ do { \
} \
} while (0)
/*
* This is a type: either unsigned long, if the argument fits into
* that type, or otherwise unsigned long long.
*/
#define __long_type(x) \
__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
#define __get_user_nocheck(x, ptr, size) \
({ \
long __gu_err; \
unsigned long __gu_val; \
__long_type(*(ptr)) __gu_val; \
const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
__chk_user_ptr(ptr); \
if (!is_kernel_addr((unsigned long)__gu_addr)) \
@@ -239,7 +246,7 @@ do { \
#define __get_user_check(x, ptr, size) \
({ \
long __gu_err = -EFAULT; \
unsigned long __gu_val = 0; \
__long_type(*(ptr)) __gu_val = 0; \
const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
might_fault(); \
if (access_ok(VERIFY_READ, __gu_addr, (size))) \
@@ -251,7 +258,7 @@ do { \
#define __get_user_nosleep(x, ptr, size) \
({ \
long __gu_err; \
unsigned long __gu_val; \
__long_type(*(ptr)) __gu_val; \
const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
__chk_user_ptr(ptr); \
__get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
@@ -1452,6 +1452,8 @@ TRAMP_REAL_BEGIN(stf_barrier_fallback)
TRAMP_REAL_BEGIN(rfi_flush_fallback)
SET_SCRATCH0(r13);
GET_PACA(r13);
std r1,PACA_EXRFI+EX_R12(r13)
ld r1,PACAKSAVE(r13)
std r9,PACA_EXRFI+EX_R9(r13)
std r10,PACA_EXRFI+EX_R10(r13)
std r11,PACA_EXRFI+EX_R11(r13)
@@ -1486,12 +1488,15 @@ TRAMP_REAL_BEGIN(rfi_flush_fallback)
ld r9,PACA_EXRFI+EX_R9(r13)
ld r10,PACA_EXRFI+EX_R10(r13)
ld r11,PACA_EXRFI+EX_R11(r13)
ld r1,PACA_EXRFI+EX_R12(r13)
GET_SCRATCH0(r13);
rfid
TRAMP_REAL_BEGIN(hrfi_flush_fallback)
SET_SCRATCH0(r13);
GET_PACA(r13);
std r1,PACA_EXRFI+EX_R12(r13)
ld r1,PACAKSAVE(r13)
std r9,PACA_EXRFI+EX_R9(r13)
std r10,PACA_EXRFI+EX_R10(r13)
std r11,PACA_EXRFI+EX_R11(r13)
@@ -1526,6 +1531,7 @@ TRAMP_REAL_BEGIN(hrfi_flush_fallback)
ld r9,PACA_EXRFI+EX_R9(r13)
ld r10,PACA_EXRFI+EX_R10(r13)
ld r11,PACA_EXRFI+EX_R11(r13)
ld r1,PACA_EXRFI+EX_R12(r13)
GET_SCRATCH0(r13);
hrfid
@@ -9,8 +9,10 @@
* option) any later version.
*/
#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
@@ -150,3 +152,5 @@ static int __init t1042rdb_diu_init(void)
}
early_initcall(t1042rdb_diu_init);
MODULE_LICENSE("GPL");
@@ -427,8 +427,9 @@ static int get_mmio_atsd_reg(struct npu *npu)
int i;
for (i = 0; i < npu->mmio_atsd_count; i++) {
if (!test_and_set_bit_lock(i, &npu->mmio_atsd_usage))
return i;
if (!test_bit(i, &npu->mmio_atsd_usage))
if (!test_and_set_bit_lock(i, &npu->mmio_atsd_usage))
return i;
}
return -ENOSPC;
@@ -371,7 +371,7 @@ static struct rtas_error_log *fwnmi_get_errinfo(struct pt_regs *regs)
int len, error_log_length;
error_log_length = 8 + rtas_error_extended_log_length(h);
len = max_t(int, error_log_length, RTAS_ERROR_LOG_MAX);
len = min_t(int, error_log_length, RTAS_ERROR_LOG_MAX);
memset(global_mce_data_buf, 0, RTAS_ERROR_LOG_MAX);
memcpy(global_mce_data_buf, h, len);
errhdr = (struct rtas_error_log *)global_mce_data_buf;
@@ -196,7 +196,7 @@ static int mpic_msgr_probe(struct platform_device *dev)
/* IO map the message register block. */
of_address_to_resource(np, 0, &rsrc);
msgr_block_addr = ioremap(rsrc.start, rsrc.end - rsrc.start);
msgr_block_addr = ioremap(rsrc.start, resource_size(&rsrc));
if (!msgr_block_addr) {
dev_err(&dev->dev, "Failed to iomap MPIC message registers");
return -EFAULT;
Oops, something went wrong.

0 comments on commit e3a49f2

Please sign in to comment.