~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/sparc/kernel/dtlb_prot.S

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/sparc/kernel/dtlb_prot.S (Architecture alpha) and /arch/sparc/kernel/dtlb_prot.S (Architecture sparc)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*                                                  2 /*
  3  * dtlb_prot.S: DTLB protection trap strategy.      3  * dtlb_prot.S: DTLB protection trap strategy.
  4  *              This is included directly into      4  *              This is included directly into the trap table.
  5  *                                                  5  *
  6  * Copyright (C) 1996,1998 David S. Miller (da      6  * Copyright (C) 1996,1998 David S. Miller (davem@redhat.com)
  7  * Copyright (C) 1997,1998 Jakub Jelinek   (jj      7  * Copyright (C) 1997,1998 Jakub Jelinek   (jj@ultra.linux.cz)
  8  */                                                 8  */
  9                                                     9 
 10 /* Ways we can get here:                           10 /* Ways we can get here:
 11  *                                                 11  *
 12  * [TL == 0] 1) User stores to readonly pages.     12  * [TL == 0] 1) User stores to readonly pages.
 13  * [TL == 0] 2) Nucleus stores to user readonl     13  * [TL == 0] 2) Nucleus stores to user readonly pages.
 14  * [TL >  0] 3) Nucleus stores to user readonl     14  * [TL >  0] 3) Nucleus stores to user readonly stack frame.
 15  */                                                15  */
 16                                                    16 
 17 /* PROT ** ICACHE line 1: User DTLB protection     17 /* PROT ** ICACHE line 1: User DTLB protection trap     */
 18         mov             TLB_SFSR, %g1              18         mov             TLB_SFSR, %g1
 19         stxa            %g0, [%g1] ASI_DMMU        19         stxa            %g0, [%g1] ASI_DMMU             ! Clear FaultValid bit
 20         membar          #Sync                      20         membar          #Sync                           ! Synchronize stores
 21         rdpr            %pstate, %g5               21         rdpr            %pstate, %g5                    ! Move into alt-globals
 22         wrpr            %g5, PSTATE_AG|PSTATE_     22         wrpr            %g5, PSTATE_AG|PSTATE_MG, %pstate
 23         rdpr            %tl, %g1                   23         rdpr            %tl, %g1                        ! Need a winfixup?
 24         cmp             %g1, 1                     24         cmp             %g1, 1                          ! Trap level >1?
 25         mov             TLB_TAG_ACCESS, %g4        25         mov             TLB_TAG_ACCESS, %g4             ! For reload of vaddr
 26                                                    26 
 27 /* PROT ** ICACHE line 2: More real fault proc     27 /* PROT ** ICACHE line 2: More real fault processing */
 28         ldxa            [%g4] ASI_DMMU, %g5        28         ldxa            [%g4] ASI_DMMU, %g5             ! Put tagaccess in %g5
 29         srlx            %g5, PAGE_SHIFT, %g5       29         srlx            %g5, PAGE_SHIFT, %g5
 30         sllx            %g5, PAGE_SHIFT, %g5       30         sllx            %g5, PAGE_SHIFT, %g5            ! Clear context ID bits
 31         bgu,pn          %xcc, winfix_trampolin     31         bgu,pn          %xcc, winfix_trampoline         ! Yes, perform winfixup
 32          mov            FAULT_CODE_DTLB | FAUL     32          mov            FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4
 33         ba,pt           %xcc, sparc64_realfaul     33         ba,pt           %xcc, sparc64_realfault_common  ! Nope, normal fault
 34          nop                                       34          nop
 35         nop                                        35         nop
 36                                                    36 
 37 /* PROT ** ICACHE line 3: Unused...     */         37 /* PROT ** ICACHE line 3: Unused...     */
 38         nop                                        38         nop
 39         nop                                        39         nop
 40         nop                                        40         nop
 41         nop                                        41         nop
 42         nop                                        42         nop
 43         nop                                        43         nop
 44         nop                                        44         nop
 45         nop                                        45         nop
 46                                                    46 
 47 /* PROT ** ICACHE line 4: Unused...     */         47 /* PROT ** ICACHE line 4: Unused...     */
 48         nop                                        48         nop
 49         nop                                        49         nop
 50         nop                                        50         nop
 51         nop                                        51         nop
 52         nop                                        52         nop
 53         nop                                        53         nop
 54         nop                                        54         nop
 55         nop                                        55         nop
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php