tree 4ee286497a51d3575d74d2e6fff9c341897530af
parent ff3d0a12fb2dc123e2b46e9524ebf4e08de5c59c
parent 50a0cb565246f20d59cdb161778531e4b19d35ac
author Thomas Gleixner <tglx@linutronix.de> 1450556692 +0100
committer Thomas Gleixner <tglx@linutronix.de> 1450556692 +0100
mergetag object 50a0cb565246f20d59cdb161778531e4b19d35ac
 type commit
 tag efi-next
 tagger Matt Fleming <matt@codeblueprint.co.uk> 1450106891 +0000
 
  * We don't need to carry our own formatting code in the esrt driver
    because the kobject API can do that for us - Rasmus Villemoes
 
  * Update the arm64 file paths in Documentation/efi-stub.txt to match
    the current tree - Alan Ott
 
  * Consistently preface all print statements with "efi" arch/x86 so
    that it's more obvious to users reporting problems which statements
    in the kernel log are relevant for EFI - Matt Fleming
 
  * Fix a boot crash in the ACPI BGRT driver and delete
    efi_lookup_mapped_addr() since it's useless now that the EFI
    mappings *only* exist in the 'efi_pgd' page table. Instead we
    always early_memremap() the BGRT memory - Sai Praneeth Prakhya
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJWbuWUAAoJEC84WcCNIz1VJpcQAKqs09lCyZ3scgusZwk0MM4x
 fnDiJ9BW6GjWskY9AJzgcQLmb/pJJtbenQNIioVeeLEy93Vsn5+JCiJWs3BVC4o6
 T3caYbObL5gJiKoqxIsKemXIPJpzVzjlGrz1JWB9M6dQFj89y9pMa2Vx2/oNT40x
 sEp8MlNrgGm0Zy6wSZBBj/qk6tVYNQfaUoIYiCtyvTRFsyw1MA+mX47qLj/W9KSp
 9XYN6Cfy8EfKl0ioNxhD+JtH3MPqk6ao7TRfJQoL5RLMa5/hAnI6dUJnfoeWyGgI
 NpXmPCHcRQiLEbrpYXu2Rm5E5u244VuJaczmMKNvBHAdhAlpVD9airM7u8tedrzr
 DWe1uKSDr5sfyNHJHevFDuVOD2Uarut0YOZe69/hQN39aFSe8VoFtquGrBJpACwQ
 6zWB97t2u0ZlxNFUN/6wy+g3HxPItJZglGlAuzACqmtjtZ6jYyGu7d/QIPZ73CCK
 gyQFoedr6Gnm8wEgCTkEyVLssdSz9t1rchUR2s710hp9V/wptgzG+dorwJzDAzLb
 Q1xrH1wPZPqmfNL9Yn7RoEiSlz/Tk4y4i1jGsNuzEYxn0g4ElwYCJ/n8v1SEhIEk
 c4mUZLRJ4RssjQ5LqarVJE7bWvhhQLiiORNXiUeWFi8zoO0KU8lBXUiedfAunYwo
 /yzndz6k6sahdDTuhfa+
 =VYPl
 -----END PGP SIGNATURE-----

Merge tag 'efi-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/efi

Pull efi changes from Matt Fleming:

 * We don't need to carry our own formatting code in the esrt driver
   because the kobject API can do that for us - Rasmus Villemoes

 * Update the arm64 file paths in Documentation/efi-stub.txt to match
   the current tree - Alan Ott

 * Consistently preface all print statements with "efi" arch/x86 so
   that it's more obvious to users reporting problems which statements
   in the kernel log are relevant for EFI - Matt Fleming

 * Fix a boot crash in the ACPI BGRT driver and delete
   efi_lookup_mapped_addr() since it's useless now that the EFI
   mappings *only* exist in the 'efi_pgd' page table. Instead we
   always early_memremap() the BGRT memory - Sai Praneeth Prakhya
