#ifndef LIST_I_H #define LIST_I_H #include #include #define list_head cds_list_head #define LIST_HEAD CDS_LIST_HEAD #define INIT_LIST_HEAD CDS_INIT_LIST_HEAD #define LIST_HEAD_INIT CDS_LIST_HEAD_INIT #define list_add cds_list_add #define list_add_tail cds_list_add_tail #define list_del cds_list_del #define list_del_init cds_list_del_init #define list_move cds_list_move #define list_replace cds_list_replace #define list_splice cds_list_splice #define list_entry cds_list_entry #define list_first_entry cds_list_first_entry #define list_for_each cds_list_for_each #define list_for_each_safe cds_list_for_each_safe #define list_for_each_prev cds_list_for_each_prev #define list_for_each_prev_safe cds_list_for_each_prev_safe #define list_for_each_entry cds_list_for_each_entry #define list_for_each_entry_safe cds_list_for_each_entry_safe #define list_for_each_entry_reverse cds_list_for_each_entry_reverse #define list_empty cds_list_empty #define list_replace_init cds_list_replace_init #define list_add_rcu cds_list_add_rcu #define list_add_tail_rcu cds_list_add_tail_rcu #define list_replace_rcu cds_list_replace_rcu #define list_del_rcu cds_list_del_rcu #define list_for_each_rcu cds_list_for_each_rcu #define list_for_each_entry_rcu cds_list_for_each_entry_rcu #endif /* LIST_I_H */ -rx-pump-back net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2017-02-01 17:45:02 +0000
committerIngo Molnar <mingo@kernel.org>2017-02-01 21:17:49 +0100
commitc8f325a59cfc718d13a50fbc746ed9b415c25e92 (patch)
treed53fbdac9d0781e39a13b2ac6b2bd258cf3b4140 /net/ipv4/tcp_rate.c
parentbf29bddf0417a4783da3b24e8c9e017ac649326f (diff)
efi/fdt: Avoid FDT manipulation after ExitBootServices()
Some AArch64 UEFI implementations disable the MMU in ExitBootServices(), after which unaligned accesses to RAM are no longer supported. Commit: abfb7b686a3e ("efi/libstub/arm*: Pass latest memory map to the kernel") fixed an issue in the memory map handling of the stub FDT code, but inadvertently created an issue with such firmware, by moving some of the FDT manipulation to after the invocation of ExitBootServices(). Given that the stub's libfdt implementation uses the ordinary, accelerated string functions, which rely on hardware handling of unaligned accesses, manipulating the FDT with the MMU off may result in alignment faults. So fix the situation by moving the update_fdt_memmap() call into the callback function invoked by efi_exit_boot_services() right before it calls the ExitBootServices() UEFI service (which is arguably a better place for it anyway) Note that disabling the MMU in ExitBootServices() is not compliant with the UEFI spec, and carries great risk due to the fact that switching from cached to uncached memory accesses halfway through compiler generated code (i.e., involving a stack) can never be done in a way that is architecturally safe. Fixes: abfb7b686a3e ("efi/libstub/arm*: Pass latest memory map to the kernel") Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Riku Voipio <riku.voipio@linaro.org> Cc: <stable@vger.kernel.org> Cc: mark.rutland@arm.com Cc: linux-efi@vger.kernel.org Cc: matt@codeblueprint.co.uk Cc: leif.lindholm@linaro.org Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1485971102-23330-2-git-send-email-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/ipv4/tcp_rate.c')