• Linus Torvalds's avatar
    Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 3bb61aa6
    Linus Torvalds authored
    Pull arm64 fixes from Will Deacon:
     "I'm sad to say that we've got an unusually large arm64 fixes pull for
      rc7 which addresses numerous significant instrumentation issues with
      our entry code.
    
      Without these patches, lockdep is hopelessly unreliable in some
      configurations [1,2] and syzkaller is therefore not a lot of use
      because it's so noisy.
    
      Although much of this has always been broken, it appears to have been
      exposed more readily by other changes such as 044d0d6d ("lockdep:
      Only trace IRQ edges") and general lockdep improvements around IRQ
      tracing and NMIs.
    
      Fixing this properly required moving much of the instrumentation hooks
      from our entry assembly into C, which Mark has been working on for the
      last few weeks. We're not quite ready to move to the recently added
      generic functions yet, but the code here has been deliberately written
      to mimic that closely so we can look at cleaning things up once we
      have a bit more breathing room.
    
      Having said all that, the second version of these patches was posted
      last week and I pushed it into our CI (kernelci and cki) along with a
      commit which forced on PROVE_LOCKING, NOHZ_FULL and
      CONTEXT_TRACKING_FORCE. The result? We found a real bug in the
      md/raid10 code [3].
    
      Oh, and there's also a really silly typo patch that's unrelated.
    
      Summary:
    
       - Fix numerous issues with instrumentation and exception entry
    
       - Fix hideous typo in unused register field definition"
    
    [1] https://lore.kernel.org/r/CACT4Y+aAzoJ48Mh1wNYD17pJqyEcDnrxGfApir=-j171TnQXhw@mail.gmail.com
    [2] https://lore.kernel.org/r/20201119193819.GA2601289@elver.google.com
    [3] https://lore.kernel.org/r/94c76d5e-466a-bc5f-e6c2-a11b65c39f83@redhat.com
    
    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
      arm64: mte: Fix typo in macro definition
      arm64: entry: fix EL1 debug transitions
      arm64: entry: fix NMI {user, kernel}->kernel transitions
      arm64: entry: fix non-NMI kernel<->kernel transitions
      arm64: ptrace: prepare for EL1 irq/rcu tracking
      arm64: entry: fix non-NMI user<->kernel transitions
      arm64: entry: move el1 irq/nmi logic to C
      arm64: entry: prepare ret_to_user for function call
      arm64: entry: move enter_from_user_mode to entry-common.c
      arm64: entry: mark entry code as noinstr
      arm64: mark idle code as noinstr
      arm64: syscall: exit userspace before unmasking exceptions
    3bb61aa6
sysreg.h 36.9 KB