freebsd-skq/sys/powerpc
jhibbits 9a201b070a powerpc/booke: Fix TLB1 entry accounting
It's possible, with per-CPU mappings, for TLB1 indices to get out of sync.
This presents a problem when trying to insert an entry into TLB1 of all
CPUs.  Currently that's done by assuming (hoping) that the TLBs are
perfectly synced, and inserting to the same index for all CPUs.  However,
with aforementioned private mappings, this can result in overwriting
mappings on the other CPUs.

An example:

    CPU0                    CPU1
    <setup all mappings>    <idle>
        3 private mappings
      kick off CPU 1
                            initialize shared mappings (3 indices low)
                            Load kernel module, triggers 20 new mappings
      Sync mappings at N-3
                            initialize 3 private mappings.

At this point, CPU 1 has all the correct mappings, while CPU 0 is missing 3
mappings that were shared across to CPU 1.  When CPU 0 tries to access
memory in one of the overwritten mappings, it hangs while tripping through
the TLB miss handler.  Device mappings are not stored in any page table.

This fixes by introducing a '-1' index for tlb1_write_entry_int(), so each
CPU searches for an available index private to itself.

MFC after:	3 weeks
2019-11-01 02:55:58 +00:00
..
aim [PPC64] Fix trapstk overflow 2019-10-31 11:59:00 +00:00
amigaone powerpc: Add AmigaOne platform, a subclass of MPC85xx 2019-10-16 00:38:50 +00:00
booke powerpc/booke: Fix TLB1 entry accounting 2019-11-01 02:55:58 +00:00
conf Split out a more generic debugnet(4) from netdump(4) 2019-10-17 16:23:03 +00:00
cpufreq powerpc: Fix cpufreq statement scoping 2019-03-08 03:59:53 +00:00
fpu powerpc: Apply r178139 from sparc64 to powerpc's fpu_sqrt 2019-04-03 03:54:30 +00:00
include Fix GDB machdep code for PPC/PPC64 2019-10-31 12:03:47 +00:00
mambo sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
mikrotik - Allow different slicers for different flash types to be registered 2017-02-22 10:21:39 +00:00
mpc85xx powerpc/booke: Simplify the MPC85XX PCIe root complex driver 2019-10-24 03:51:33 +00:00
ofw [PPC] Avoid underflows in NUMA domains 2019-10-22 18:28:58 +00:00
powermac Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
powernv powerpc64/powernv: Add opal NVRAM driver for PowerNV systems 2019-09-14 03:30:34 +00:00
powerpc Fix GDB machdep code for PPC/PPC64 2019-10-31 12:03:47 +00:00
ps3 Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:13:33 +00:00
pseries Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:13:37 +00:00
psim add snps IP uart support / genaralize UART 2018-08-19 21:10:21 +00:00