Commit 5b7e456f authored by Lorenzo "Palinuro" Faletra's avatar Lorenzo "Palinuro" Faletra
Browse files

Import Debian changes 4.12.13-1parrot13

linux (4.12.13-1parrot13) testing; urgency=medium

  * Import new upstream release.

linux (4.12.13-1) unstable; urgency=medium

  * New upstream stable update:
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.13
    - mtd: nand: make Samsung SLC NAND usable again
    - mtd: nand: hynix: add support for 20nm NAND chips
    - [armhf] mtd: nand: mxc: Fix mxc_v1 ooblayout
    - nvme-fabrics: generate spec-compliant UUID NQNs
    - btrfs: resume qgroup rescan on rw remount
    - rtlwifi: btcoexist: Fix breakage of ant_sel for rtl8723be
    - radix-tree: must check __radix_tree_preload() return value
    - mm: kvfree the swap cluster info if the swap file is unsatisfactory
    - mm/swapfile.c: fix swapon frontswap_map memory leak on error
    - mm/memory.c: fix mem_cgroup_oom_disable() call missing
    - [i386] ALSA: msnd: Optimize / harden DSP and MIDI loops
    - [x86] KVM: SVM: Limit PFERR_NESTED_GUEST_PAGE error_code check to L1 guest
    - rt2800: fix TX_PIN_CFG setting for non MT7620 chips
    - Bluetooth: Properly check L2CAP config option output buffer length
      (CVE-2017-1000251) (Closes: #875881)
    - [arm64] dts: marvell: armada-37xx: Fix GIC maintenance interrupt
    - [armel,armhf] 8692/1: mm: abort uaccess retries upon fatal signal
    - NFS: Fix 2 use after free issues in the I/O code
    - NFS: Sync the correct byte range during synchronous writes
    - NFSv4: Fix up mirror allocation
    - xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present
      (CVE-2017-14340)

  [ Salvatore Bonaccorso ]
  * sctp: Avoid out-of-bounds reads from address storage (CVE-2017-7558)
  * scsi: qla2xxx: Fix an integer overflow in sysfs code (CVE-2017-14051)
  * Add ABI reference for 4.12.0-2

  [ Ben Hutchings ]
  * nl80211: check for the required netlink attributes presence (CVE-2017-12153)
  * [x86] kvm: nVMX: Don't allow L2 to access the hardware CR8 (CVE-2017-12154)
  * video: fbdev: aty: do not leak uninitialized padding in clk to userspace
    (CVE-2017-14156)
  * scsi: fix the issue that iscsi_if_rx doesn't parse nlmsg properly
    (CVE-2017-14489)
  * packet: Don't write vnet header beyond end of buffer (CVE-2017-14497)
  * [x86] KVM: VMX: Do not BUG() on out-of-bounds guest IRQ (CVE-2017-1000252)
  * nfs: Ignore ABI change

linux (4.12.12-2parrot12) testing; urgency=medium

  * Import new Debian version.

linux (4.12.12-2) unstable; urgency=medium



linux (4.12.12-2parrot12) testing; urgency=medium

  * Import new Debian version.

linux (4.12.12-2) unstable; urgency=medium

  * debian/source/lintian-overrides: Override license-problem-gfdl-invariants
    error triggered by a ReSTified copy of the GFDL

linux (4.12.12-1) unstable; urgency=medium

  * New upstream stable update:
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.7
    - ppp: Fix false xmit recursion detect with two ppp devices
    - ppp: fix xmit recursion detection on ppp channels
    - tcp: avoid setting cwnd to invalid ssthresh after cwnd reduction states
    - net: fix keepalive code vs TCP_FASTOPEN_CONNECT
    - ipv6: set rt6i_protocol properly in the route when it is installed
    - [s390x] bpf: fix jit branch offset related to ldimm64
    - net/mlx4_en: don't set CHECKSUM_COMPLETE on SCTP packets
    - net: sched: set xt_tgchk_param par.net properly in ipt_init_target
    - net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target
    - tcp: fastopen: tcp_connect() must refresh the route
    - qmi_wwan: fix NULL deref on disconnect
    - net: avoid skb_warn_bad_offload false positives on UFO
    - igmp: Fix regression caused by igmp sysctl namespace code.
    - scsi: sg: only check for dxfer_len greater than 256M
    - btrfs: Remove false alert when fiemap range is smaller than on-disk
      extent
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.8
    - mm: ratelimit PFNs busy info message
    - mm: fix list corruptions on shmem shrinklist
    - futex: Remove unnecessary warning from get_futex_key
    - xfs: Fix leak of discard bio
    - [armhf] pinctrl: armada-37xx: Fix number of pin in south bridge
    - mtd: nand: Fix timing setup for NANDs that do not support SET FEATURES
    - mtd: nand: Declare tBERS, tR and tPROG as u64 to avoid integer overflow
    - iscsi-target: fix memory leak in iscsit_setup_text_cmd()
    - iscsi-target: Fix iscsi_np reset hung task during parallel delete
    - usb-storage: fix deadlock involving host lock and scsi_done
    - target: Fix node_acl demo-mode + uncached dynamic shutdown regression
    - fuse: initialize the flock flag in fuse_file on allocation
    - i2c: designware: Some broken DSTDs use 1MiHz instead of 1MHz
    - nand: fix wrong default oob layout for small pages using soft ecc
    - mmc: mmc: correct the logic for setting HS400ES signal voltage
    - nfs/flexfiles: fix leak of nfs4_ff_ds_version arrays
    - [armhf] drm/etnaviv: Fix off-by-one error in reloc checking
    - [x86] drm/i915: Fix out-of-bounds array access in bdw_load_gamma_lut
    - [armhf] usb: musb: fix tx fifo flush handling again
    - USB: hcd: Mark secondary HCD as dead if the primary one died
    - [armhf] iio: accel: st_accel: add SPI-3wire support
    - [x86] iio: accel: bmc150: Always restore device to normal mode after
      suspend-resume
    - iio: light: tsl2563: use correct event code
    - staging: comedi: comedi_fops: do not call blocking ops when !TASK_RUNNING
    - uas: Add US_FL_IGNORE_RESIDUE for Initio Corporation INIC-3069
    - firmware: fix batched requests - wake all waiters
    - firmware: fix batched requests - send wake up on failure on direct lookups
    - firmware: avoid invalid fallback aborts by using killable wait
    - block: Make blk_mq_delay_kick_requeue_list() rerun the queue at a quiet
      time
    - USB: Check for dropped connection before switching to full speed
    - usb: core: unlink urbs from the tail of the endpoint's urb_list
    - usb: quirks: Add no-lpm quirk for Moshi USB to Ethernet Adapter
    - usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume
    - PCI: Protect pci_error_handlers->reset_notify() usage with device_lock()
    - xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue
    - pnfs/blocklayout: require 64-bit sector_t
    - [x86] pinctrl: cherryview: Add Setzer models to the Chromebook DMI quirk
    - [armhf] pinctrl: sunxi: add a missing function of A10/A20 pinctrl driver
    - [x86] pinctrl: intel: merrifield: Correct UART pin lists
    - [armhf] pinctrl: samsung: Remove bogus irq_[un]mask from resource
      management
    - [arm64] pinctrl: meson-gxbb: Add missing GPIODV_18 pin entry
    - [arm64] pinctrl: meson-gxl: Add missing GPIODV_18 pin entry
    - [mips*] Revert "MIPS: Don't unnecessarily include kmalloc.h into
      <asm/cache.h>."
    - [mips*/octeon] Fix broken EDAC driver.
    - [ppc64el] Fix /proc/cpuinfo revision for POWER9 DD2
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.9
    - audit: Fix use after free in audit_remove_watch_rule()
    - [hppa] pci memory bar assignment fails with 64bit kernels on dino/cujo
    - [x86] crypto: sha1 - Fix reads beyond the number of blocks passed
    - [x86] drm/i915: Perform an invalidate prior to executing golden
      renderstate
    - drm/amdgpu: save list length when fence is signaled
    - md: fix test in md_write_start()
    - md: always clear ->safemode when md_check_recovery gets the mddev lock.
    - MD: not clear ->safemode for external metadata array
    - ALSA: seq: 2nd attempt at fixing race creating a queue
    - ALSA: usb-audio: Apply sample rate quirk to Sennheiser headset
    - ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices
    - ALSA: usb-audio: add DSD support for new Amanero PID
    - mm: discard memblock data later
    - slub: fix per memcg cache leak on css offline
    - mm: fix double mmap_sem unlock on MMF_UNSTABLE enforced SIGBUS
    - mm/cma_debug.c: fix stack corruption due to sprintf usage
    - mm/mempolicy: fix use after free when calling get_mempolicy
    - mm/vmalloc.c: don't unconditonally use __GFP_HIGHMEM
    - [amd64,arm64] mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes
    - xen: fix bio vec merging (CVE-2017-12134) (Closes: #866511)
    - [armhf] ARM: dts: imx6qdl-nitrogen6_som2: fix PCIe reset
    - blk-mq-pci: add a fallback when pci_irq_get_affinity returns NULL
    - [powerpc*] Fix VSX enabling/flushing to also test MSR_FP and MSR_VEC
    - xen-blkfront: use a right index when checking requests
    - [x86] perf: Fix RDPMC vs. mm_struct tracking
    - [amd64] asm: Clear AC on NMI entries
    - [x86] Fix norandmaps/ADDR_NO_RANDOMIZE
    - [x86] elf: Remove the unnecessary ADDR_NO_RANDOMIZE checks
    - genirq: Restore trigger settings in irq_modify_status()
    - genirq/ipi: Fixup checks against nr_cpu_ids
    - kernel/watchdog: Prevent false positives with turbo modes
    - Sanitize 'move_pages()' permission checks (CVE-2017-14140)
    - pids: make task_tgid_nr_ns() safe
    - debug: Fix WARN_ON_ONCE() for modules
    - usb: optimize acpi companion search for usb port devices
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.10
    - [sparc64] remove unnecessary log message
    - bonding: require speed/duplex only for 802.3ad, alb and tlb
    - bonding: ratelimit failed speed/duplex update warning
    - af_key: do not use GFP_KERNEL in atomic contexts
    - dccp: purge write queue in dccp_destroy_sock()
    - dccp: defer ccid_hc_tx_delete() at dismantle time
    - ipv4: fix NULL dereference in free_fib_info_rcu()
    - net_sched/sfq: update hierarchical backlog when drop packet
    - net_sched: remove warning from qdisc_hash_add
    - bpf: fix bpf_trace_printk on 32 bit archs
    - net: igmp: Use ingress interface rather than vrf device
    - openvswitch: fix skb_panic due to the incorrect actions attrlen
    - ptr_ring: use kmalloc_array()
    - ipv4: better IP_MAX_MTU enforcement
    - nfp: fix infinite loop on umapping cleanup
    - tun: handle register_netdevice() failures properly
    - sctp: fully initialize the IPv6 address in sctp_v6_to_addr()
    - tipc: fix use-after-free
    - ipv6: reset fn->rr_ptr when replacing route
    - ipv6: repair fib6 tree in failure case
    - tcp: when rearming RTO, if RTO time is in past then fire RTO ASAP
    - net/mlx4_core: Enable 4K UAR if SRIOV module parameter is not enabled
    - irda: do not leak initialized list.dev to userspace
    - net: sched: fix NULL pointer dereference when action calls some targets
    - net_sched: fix order of queue length updates in qdisc_replace()
    - bpf, verifier: add additional patterns to evaluate_reg_imm_alu
    - bpf: fix mixed signed/unsigned derived min/max value bounds
    - bpf/verifier: fix min/max handling in BPF_SUB
    - Input: ALPS - fix two-finger scroll breakage in right side on ALPS
      touchpad
    - [s390x] KVM: sthyi: fix sthyi inline assembly
    - [s390x] KVM: sthyi: fix specification exception detection
    - [x86] KVM: simplify handling of PKRU
    - [x86] KVM, pkeys: do not use PKRU value in vcpu->arch.guest_fpu.state
    - [x86] KVM: block guest protection keys unless the host has them enabled
    - ALSA: core: Fix unexpected error at replacing user TLV
    - ALSA: firewire: fix NULL pointer dereference when releasing
      uninitialized data of iso-resource
    - ALSA: firewire-motu: destroy stream data surely at failure of card
      initialization
    - PM/hibernate: touch NMI watchdog when creating snapshot
    - mm, shmem: fix handling /sys/kernel/mm/transparent_hugepage/shmem_enabled
    - dax: fix deadlock due to misaligned PMD faults
    - i2c: designware: Fix system suspend
    - mm/madvise.c: fix freeing of locked page with MADV_FREE
    - fork: fix incorrect fput of ->exe_file causing use-after-free
    - mm/memblock.c: reversed logic in memblock_discard()
    - [arm64] fpsimd: Prevent registers leaking across exec
    - drm: Fix framebuffer leak
    - drm: Release driver tracking before making the object available again
    - [armhf] drm/sun4i: Implement drm_driver lastclose to restore fbdev
      console
    - drm/atomic: Handle -EDEADLK with out-fences correctly
    - drm/atomic: If the atomic check fails, return its value first
    - [x86] drm/i915/vbt: ignore extraneous child devices for a port
    - [x86] drm/i915/gvt: Fix the kernel null pointer error
    - Revert "drm/amdgpu: fix vblank_time when displays are off"
    - ACPI: device property: Fix node lookup in
      acpi_graph_get_child_prop_value()
    - tracing: Call clear_boot_tracer() at lateinit_sync
    - tracing: Missing error code in tracer_alloc_buffers()
    - tracing: Fix kmemleak in tracing_map_array_free()
    - tracing: Fix freeing of filter in create_filter() when set_str is false
    - RDMA/uverbs: Initialize cq_context appropriately
    - cifs: Fix df output for users with quota limits
    - cifs: return ENAMETOOLONG for overlong names in
      cifs_open()/cifs_lookup()
    - nfsd: Limit end of page list when decoding NFSv4 WRITE
    - ring-buffer: Have ring_buffer_alloc_read_page() return error on offline
      CPU
    - virtio_pci: fix cpu affinity support
    - ftrace: Check for null ret_stack on profile function graph entry
      function
    - perf/core: Fix group {cpu,task} validation
    - timers: Fix excessive granularity of new timers after a nohz idle
    - [x86] mm: Fix use-after-free of ldt_struct
    - net: sunrpc: svcsock: fix NULL-pointer exception
    - netfilter: expect: fix crash when putting uninited expectation
    - netfilter: nat: fix src map lookup
    - netfilter: nfnetlink: Improve input length sanitization in nfnetlink_rcv
    - Bluetooth: hidp: fix possible might sleep error in hidp_session_thread
    - Bluetooth: cmtp: fix possible might sleep error in cmtp_session
    - Bluetooth: bnep: fix possible might sleep error in bnep_session
    - iio: hid-sensor-trigger: Fix the race with user space powering up
      sensors
    - iommu: Fix wrong freeing of iommu_device->dev
    - Clarify (and fix) MAX_LFS_FILESIZE macros
    - ACPI: EC: Fix regression related to wrong ECDT initialization order
    - [powerpc*] mm: Ensure cpumask update is ordered
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.11
    - [arm64] mm: abort uaccess retries upon fatal signal
    - [x86] io: Add "memory" clobber to insb/insw/insl/outsb/outsw/outsl
    - [mips*] irqchip: mips-gic: SYNC after enabling GIC region
    - Input: synaptics - fix device info appearing different on reconnect
    - Input: xpad - fix PowerA init quirk for some gamepad models
    - crypto: chacha20 - fix handling of chunked input
    - [x86] i2c: ismt: Don't duplicate the receive length for block reads
    - [x86] i2c: ismt: Return EMSGSIZE for block reads with bogus length
    - crypto: algif_skcipher - only call put_page on referenced and used pages
    - mm, uprobes: fix multiple free of ->uprobes_state.xol_area
    - mm, madvise: ensure poisoned pages are removed from per-cpu lists
    - ceph: fix readpage from fscache
    - cpumask: fix spurious cpumask_of_node() on non-NUMA multi-node configs
    - cpuset: Fix incorrect memory_pressure control file mapping
    - CIFS: Fix maximum SMB2 header size
    - CIFS: remove endian related sparse warning
    - dm mpath: do not lock up a CPU with requeuing activity
    - [x86] drm/vmwgfx: Fix F26 Wayland screen update issue
    - [arm64, armhf] wl1251: add a missing spin_lock_init()
    - [arm64] mmc: sdhci-xenon: add set_power callback
    - lib/mpi: kunmap after finishing accessing buffer
    - xfrm: policy: check policy direction value
    - drm/ttm: Fix accounting error when fail to get pages for pool
    - nvme: fix the definition of the doorbell buffer config support bit
    - drm/nouveau/i2c/gf119-: add support for address-only transactions
    - epoll: fix race between ep_poll_callback(POLLFREE) and
      ep_free()/ep_remove()
    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.12
    - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
    - USB: serial: option: add support for D-Link DWM-157 C1
    - usb: Add device quirk for Logitech HD Pro Webcam C920-C
    - usb:xhci:Fix regression when ATI chipsets detected
    - [armhf] USB: musb: fix external abort on suspend
    - USB: core: Avoid race of async_completed() w/ usbdev_release()
    - [x86] staging/rts5208: fix incorrect shift to extract upper nybble
    - iio: adc: ti-ads1015: fix incorrect data rate setting update
    - iio: adc: ti-ads1015: fix scale information for ADS1115
    - iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set
    - iio: adc: ti-ads1015: avoid getting stale result after runtime resume
    - iio: adc: ti-ads1015: don't return invalid value from buffer setup
      callbacks
    - iio: adc: ti-ads1015: add adequate wait time to get correct conversion
    - driver core: bus: Fix a potential double free
    - HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
    - [x86] intel_th: pci: Add Cannon Lake PCH-H support
    - [x86] intel_th: pci: Add Cannon Lake PCH-LP support
    - ath10k: fix memory leak in rx ring buffer allocation
    - Input: trackpoint - assume 3 buttons when buttons detection fails
    - rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter
    - Bluetooth: Add support of 13d3:3494 RTL8723BE device
    - iwlwifi: pci: add new PCI ID for 7265D
    - dlm: avoid double-free on error path in dlm_device_{register,unregister}
    - mwifiex: correct channel stat buffer overflows
    - [s390x] mm: avoid empty zero pages for KVM guests to avoid postcopy
      hangs
    - [s390x] mm: fix BUG_ON in crst_table_upgrade
    - drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
    - drm/nouveau: Fix error handling in nv50_disp_atomic_commit
    - workqueue: Fix flag collision
    - ahci: don't use MSI for devices with the silly Intel NVMe remapping
      scheme
    - cs5536: add support for IDE controller variant
    - scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE
    - scsi: sg: recheck MMAP_IO request length with lock held
    - of/device: Prevent buffer overflow in of_device_modalias()
    - rtlwifi: Fix memory leak when firmware request fails
    - rtlwifi: Fix fallback firmware loading

  [ Ben Hutchings ]
  * [alpha] udeb: Add i2c-modules (fixes FTBFS)
  * cpupower: Add/update definition of MSRHEADER macro for turbostat and
    x86_energy_perf_policy (Closes: #872414)
  * Bump ABI to 2

  [ Roger Shimizu ]
  * [armel] Disable CONFIG_STRICT_KERNEL_RWX, which will save about 3MB
    on linux Image (before compression). (Closes: #870185)

  [ Uwe Kleine-König ]
  * mtd: nandsim: remove debugfs entries in error path
parents d3d40ed6 dbbccdab
VERSION = 4
PATCHLEVEL = 12
SUBLEVEL = 6
SUBLEVEL = 13
EXTRAVERSION =
NAME = Fearless Coyote
......
#ifndef _ALPHA_TYPES_H
#define _ALPHA_TYPES_H
#include <asm-generic/int-ll64.h>
#include <uapi/asm/types.h>
#endif /* _ALPHA_TYPES_H */
......@@ -9,8 +9,18 @@
* need to be careful to avoid a name clashes.
*/
#ifndef __KERNEL__
/*
* This is here because we used to use l64 for alpha
* and we don't want to impact user mode with our change to ll64
* in the kernel.
*
* However, some user programs are fine with this. They can
* flag __SANE_USERSPACE_TYPES__ to get int-ll64.h here.
*/
#if !defined(__SANE_USERSPACE_TYPES__) && !defined(__KERNEL__)
#include <asm-generic/int-l64.h>
#else
#include <asm-generic/int-ll64.h>
#endif
#endif /* _UAPI_ALPHA_TYPES_H */
......@@ -96,7 +96,9 @@ extern unsigned long perip_base, perip_end;
#define ARC_REG_SLC_FLUSH 0x904
#define ARC_REG_SLC_INVALIDATE 0x905
#define ARC_REG_SLC_RGN_START 0x914
#define ARC_REG_SLC_RGN_START1 0x915
#define ARC_REG_SLC_RGN_END 0x916
#define ARC_REG_SLC_RGN_END1 0x917
/* Bit val in SLC_CONTROL */
#define SLC_CTRL_DIS 0x001
......
......@@ -94,6 +94,8 @@ static inline int is_pae40_enabled(void)
return IS_ENABLED(CONFIG_ARC_HAS_PAE40);
}
extern int pae40_exist_but_not_enab(void);
#endif /* !__ASSEMBLY__ */
#endif
......@@ -665,6 +665,7 @@ noinline void slc_op(phys_addr_t paddr, unsigned long sz, const int op)
static DEFINE_SPINLOCK(lock);
unsigned long flags;
unsigned int ctrl;
phys_addr_t end;
spin_lock_irqsave(&lock, flags);
......@@ -694,8 +695,19 @@ noinline void slc_op(phys_addr_t paddr, unsigned long sz, const int op)
* END needs to be setup before START (latter triggers the operation)
* END can't be same as START, so add (l2_line_sz - 1) to sz
*/
write_aux_reg(ARC_REG_SLC_RGN_END, (paddr + sz + l2_line_sz - 1));
write_aux_reg(ARC_REG_SLC_RGN_START, paddr);
end = paddr + sz + l2_line_sz - 1;
if (is_pae40_enabled())
write_aux_reg(ARC_REG_SLC_RGN_END1, upper_32_bits(end));
write_aux_reg(ARC_REG_SLC_RGN_END, lower_32_bits(end));
if (is_pae40_enabled())
write_aux_reg(ARC_REG_SLC_RGN_START1, upper_32_bits(paddr));
write_aux_reg(ARC_REG_SLC_RGN_START, lower_32_bits(paddr));
/* Make sure "busy" bit reports correct stataus, see STAR 9001165532 */
read_aux_reg(ARC_REG_SLC_CTRL);
while (read_aux_reg(ARC_REG_SLC_CTRL) & SLC_CTRL_BUSY);
......@@ -1111,6 +1123,13 @@ noinline void __init arc_ioc_setup(void)
__dc_enable();
}
/*
* Cache related boot time checks/setups only needed on master CPU:
* - Geometry checks (kernel build and hardware agree: e.g. L1_CACHE_BYTES)
* Assume SMP only, so all cores will have same cache config. A check on
* one core suffices for all
* - IOC setup / dma callbacks only need to be done once
*/
void __init arc_cache_init_master(void)
{
unsigned int __maybe_unused cpu = smp_processor_id();
......@@ -1190,12 +1209,27 @@ void __ref arc_cache_init(void)
printk(arc_cache_mumbojumbo(0, str, sizeof(str)));
/*
* Only master CPU needs to execute rest of function:
* - Assume SMP so all cores will have same cache config so
* any geomtry checks will be same for all
* - IOC setup / dma callbacks only need to be setup once
*/
if (!cpu)
arc_cache_init_master();
/*
* In PAE regime, TLB and cache maintenance ops take wider addresses
* And even if PAE is not enabled in kernel, the upper 32-bits still need
* to be zeroed to keep the ops sane.
* As an optimization for more common !PAE enabled case, zero them out
* once at init, rather than checking/setting to 0 for every runtime op
*/
if (is_isa_arcv2() && pae40_exist_but_not_enab()) {
if (IS_ENABLED(CONFIG_ARC_HAS_ICACHE))
write_aux_reg(ARC_REG_IC_PTAG_HI, 0);
if (IS_ENABLED(CONFIG_ARC_HAS_DCACHE))
write_aux_reg(ARC_REG_DC_PTAG_HI, 0);
if (l2_line_sz) {
write_aux_reg(ARC_REG_SLC_RGN_END1, 0);
write_aux_reg(ARC_REG_SLC_RGN_START1, 0);
}
}
}
......@@ -104,6 +104,8 @@
/* A copy of the ASID from the PID reg is kept in asid_cache */
DEFINE_PER_CPU(unsigned int, asid_cache) = MM_CTXT_FIRST_CYCLE;
static int __read_mostly pae_exists;
/*
* Utility Routine to erase a J-TLB entry
* Caller needs to setup Index Reg (manually or via getIndex)
......@@ -784,7 +786,7 @@ void read_decode_mmu_bcr(void)
mmu->u_dtlb = mmu4->u_dtlb * 4;
mmu->u_itlb = mmu4->u_itlb * 4;
mmu->sasid = mmu4->sasid;
mmu->pae = mmu4->pae;
pae_exists = mmu->pae = mmu4->pae;
}
}
......@@ -809,6 +811,11 @@ char *arc_mmu_mumbojumbo(int cpu_id, char *buf, int len)
return buf;
}
int pae40_exist_but_not_enab(void)
{
return pae_exists && !is_pae40_enabled();
}
void arc_mmu_init(void)
{
char str[256];
......@@ -859,6 +866,9 @@ void arc_mmu_init(void)
/* swapper_pg_dir is the pgd for the kernel, used by vmalloc */
write_aux_reg(ARC_REG_SCRATCH_DATA0, swapper_pg_dir);
#endif
if (pae40_exist_but_not_enab())
write_aux_reg(ARC_REG_TLBPD1HI, 0);
}
/*
......
......@@ -507,7 +507,7 @@ MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10
pinctrl_pcie: pciegrp {
fsl,pins = <
/* PCIe reset */
MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x030b0
MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x030b0
MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x030b0
>;
};
......@@ -668,7 +668,7 @@ lvds1_out: endpoint {
&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcie>;
reset-gpio = <&gpio6 31 GPIO_ACTIVE_LOW>;
reset-gpio = <&gpio3 0 GPIO_ACTIVE_LOW>;
status = "okay";
};
......
......@@ -37,7 +37,7 @@ do { \
".pushsection .rodata.str, \"aMS\", %progbits, 1\n" \
"2:\t.asciz " #__file "\n" \
".popsection\n" \
".pushsection __bug_table,\"a\"\n" \
".pushsection __bug_table,\"aw\"\n" \
".align 2\n" \
"3:\t.word 1b, 2b\n" \
"\t.hword " #__line ", 0\n" \
......
......@@ -315,8 +315,11 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
* signal first. We do not need to release the mmap_sem because
* it would already be released in __lock_page_or_retry in
* mm/filemap.c. */
if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) {
if (!user_mode(regs))
goto no_context;
return 0;
}
/*
* Major/minor page fault accounting is only done on the
......
......@@ -312,6 +312,7 @@ gic: interrupt-controller@1d00000 {
interrupt-controller;
reg = <0x1d00000 0x10000>, /* GICD */
<0x1d40000 0x40000>; /* GICR */
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
};
};
......
......@@ -36,7 +36,7 @@
#ifdef CONFIG_GENERIC_BUG
#define __BUG_ENTRY(flags) \
".pushsection __bug_table,\"a\"\n\t" \
".pushsection __bug_table,\"aw\"\n\t" \
".align 2\n\t" \
"0: .long 1f - 0b\n\t" \
_BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
......
......@@ -114,10 +114,10 @@
/*
* This is the base location for PIE (ET_DYN with INTERP) loads. On
* 64-bit, this is raised to 4GB to leave the entire 32-bit address
* 64-bit, this is above 4GB to leave the entire 32-bit address
* space open for things that want to use the area for 32-bit pointers.
*/
#define ELF_ET_DYN_BASE 0x100000000UL
#define ELF_ET_DYN_BASE (2 * TASK_SIZE_64 / 3)
#ifndef __ASSEMBLY__
......
......@@ -161,9 +161,11 @@ void fpsimd_flush_thread(void)
{
if (!system_supports_fpsimd())
return;
preempt_disable();
memset(&current->thread.fpsimd_state, 0, sizeof(struct fpsimd_state));
fpsimd_flush_task_state(current);
set_thread_flag(TIF_FOREIGN_FPSTATE);
preempt_enable();
}
/*
......
......@@ -397,8 +397,11 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
* signal first. We do not need to release the mmap_sem because it
* would already be released in __lock_page_or_retry in mm/filemap.c.
*/
if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) {
if (!user_mode(regs))
goto no_context;
return 0;
}
/*
* Major/minor page fault accounting is only done on the initial
......
......@@ -21,7 +21,7 @@
#define _BUG_OR_WARN(flags) \
asm volatile( \
"1: .hword %0\n" \
" .section __bug_table,\"a\",@progbits\n" \
" .section __bug_table,\"aw\",@progbits\n" \
"2: .long 1b\n" \
" .long %1\n" \
" .short %2\n" \
......@@ -38,7 +38,7 @@
#define _BUG_OR_WARN(flags) \
asm volatile( \
"1: .hword %0\n" \
" .section __bug_table,\"a\",@progbits\n" \
" .section __bug_table,\"aw\",@progbits\n" \
"2: .long 1b\n" \
" .short %1\n" \
" .org 2b + %2\n" \
......
......@@ -147,23 +147,12 @@
* Find irq with highest priority
*/
# open coded PTR_LA t1, cpu_mask_nr_tbl
#if (_MIPS_SZPTR == 32)
#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
# open coded la t1, cpu_mask_nr_tbl
lui t1, %hi(cpu_mask_nr_tbl)
addiu t1, %lo(cpu_mask_nr_tbl)
#endif
#if (_MIPS_SZPTR == 64)
# open coded dla t1, cpu_mask_nr_tbl
.set push
.set noat
lui t1, %highest(cpu_mask_nr_tbl)
lui AT, %hi(cpu_mask_nr_tbl)
daddiu t1, t1, %higher(cpu_mask_nr_tbl)
daddiu AT, AT, %lo(cpu_mask_nr_tbl)
dsll t1, 32
daddu t1, t1, AT
.set pop
#else
#error GCC `-msym32' option required for 64-bit DECstation builds
#endif
1: lw t2,(t1)
nop
......@@ -214,23 +203,12 @@
* Find irq with highest priority
*/
# open coded PTR_LA t1,asic_mask_nr_tbl
#if (_MIPS_SZPTR == 32)
#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
# open coded la t1, asic_mask_nr_tbl
lui t1, %hi(asic_mask_nr_tbl)
addiu t1, %lo(asic_mask_nr_tbl)
#endif
#if (_MIPS_SZPTR == 64)
# open coded dla t1, asic_mask_nr_tbl
.set push
.set noat
lui t1, %highest(asic_mask_nr_tbl)
lui AT, %hi(asic_mask_nr_tbl)
daddiu t1, t1, %higher(asic_mask_nr_tbl)
daddiu AT, AT, %lo(asic_mask_nr_tbl)
dsll t1, 32
daddu t1, t1, AT
.set pop
#else
#error GCC `-msym32' option required for 64-bit DECstation builds
#endif
2: lw t2,(t1)
nop
......
......@@ -9,6 +9,8 @@
#ifndef _ASM_CACHE_H
#define _ASM_CACHE_H
#include <kmalloc.h>
#define L1_CACHE_SHIFT CONFIG_MIPS_L1_CACHE_SHIFT
#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
......
......@@ -33,6 +33,10 @@
#define CVMX_L2C_DBG (CVMX_ADD_IO_SEG(0x0001180080000030ull))
#define CVMX_L2C_CFG (CVMX_ADD_IO_SEG(0x0001180080000000ull))
#define CVMX_L2C_CTL (CVMX_ADD_IO_SEG(0x0001180080800000ull))
#define CVMX_L2C_ERR_TDTX(block_id) \
(CVMX_ADD_IO_SEG(0x0001180080A007E0ull) + ((block_id) & 3) * 0x40000ull)
#define CVMX_L2C_ERR_TTGX(block_id) \
(CVMX_ADD_IO_SEG(0x0001180080A007E8ull) + ((block_id) & 3) * 0x40000ull)
#define CVMX_L2C_LCKBASE (CVMX_ADD_IO_SEG(0x0001180080000058ull))
#define CVMX_L2C_LCKOFF (CVMX_ADD_IO_SEG(0x0001180080000060ull))
#define CVMX_L2C_PFCTL (CVMX_ADD_IO_SEG(0x0001180080000090ull))
......@@ -66,9 +70,40 @@
((offset) & 1) * 8)
#define CVMX_L2C_WPAR_PPX(offset) (CVMX_ADD_IO_SEG(0x0001180080840000ull) + \
((offset) & 31) * 8)
#define CVMX_L2D_FUS3 (CVMX_ADD_IO_SEG(0x00011800800007B8ull))
union cvmx_l2c_err_tdtx {
uint64_t u64;
struct cvmx_l2c_err_tdtx_s {
__BITFIELD_FIELD(uint64_t dbe:1,
__BITFIELD_FIELD(uint64_t sbe:1,
__BITFIELD_FIELD(uint64_t vdbe:1,
__BITFIELD_FIELD(uint64_t vsbe:1,
__BITFIELD_FIELD(uint64_t syn:10,
__BITFIELD_FIELD(uint64_t reserved_22_49:28,
__BITFIELD_FIELD(uint64_t wayidx:18,
__BITFIELD_FIELD(uint64_t reserved_2_3:2,
__BITFIELD_FIELD(uint64_t type:2,
;)))))))))
} s;
};
union cvmx_l2c_err_ttgx {
uint64_t u64;
struct cvmx_l2c_err_ttgx_s {
__BITFIELD_FIELD(uint64_t dbe:1,
__BITFIELD_FIELD(uint64_t sbe:1,
__BITFIELD_FIELD(uint64_t noway:1,
__BITFIELD_FIELD(uint64_t reserved_56_60:5,
__BITFIELD_FIELD(uint64_t syn:6,
__BITFIELD_FIELD(uint64_t reserved_22_49:28,
__BITFIELD_FIELD(uint64_t wayidx:15,
__BITFIELD_FIELD(uint64_t reserved_2_6:5,
__BITFIELD_FIELD(uint64_t type:2,
;)))))))))
} s;
};
union cvmx_l2c_cfg {
uint64_t u64;
struct cvmx_l2c_cfg_s {
......
/***********************license start***************
* Author: Cavium Networks
*
* Contact: support@caviumnetworks.com
* This file is part of the OCTEON SDK
*
* Copyright (c) 2003-2017 Cavium, Inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, Version 2, as
* published by the Free Software Foundation.
*
* This file is distributed in the hope that it will be useful, but
* AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
* NONINFRINGEMENT. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with this file; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* or visit http://www.gnu.org/licenses/.
*
* This file may also be available under a different license from Cavium.
* Contact Cavium Networks for more information
***********************license end**************************************/
#ifndef __CVMX_L2D_DEFS_H__
#define __CVMX_L2D_DEFS_H__
#define CVMX_L2D_ERR (CVMX_ADD_IO_SEG(0x0001180080000010ull))
#define CVMX_L2D_FUS3 (CVMX_ADD_IO_SEG(0x00011800800007B8ull))
union cvmx_l2d_err {
uint64_t u64;
struct cvmx_l2d_err_s {
__BITFIELD_FIELD(uint64_t reserved_6_63:58,
__BITFIELD_FIELD(uint64_t bmhclsel:1,
__BITFIELD_FIELD(uint64_t ded_err:1,
__BITFIELD_FIELD(uint64_t sec_err:1,
__BITFIELD_FIELD(uint64_t ded_intena:1,
__BITFIELD_FIELD(uint64_t sec_intena:1,
__BITFIELD_FIELD(uint64_t ecc_ena:1,
;)))))))
} s;
};
union cvmx_l2d_fus3 {
uint64_t u64;
struct cvmx_l2d_fus3_s {
__BITFIELD_FIELD(uint64_t reserved_40_63:24,
__BITFIELD_FIELD(uint64_t ema_ctl:3,
__BITFIELD_FIELD(uint64_t reserved_34_36:3,
__BITFIELD_FIELD(uint64_t q3fus:34,
;))))
} s;
};
#endif
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment