From 14fb2177844d4273084180e366a07da86072ced1 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 20 Aug 2014 08:02:38 +0000 Subject: [PATCH] Add arch-specific macro SFBUF_PHYS_DMAP(), which should translate the physical address of the page to direct map address, in case SFBUF_OPTIONAL_DIRECT_MAP returns true. The case of PowerPC AIM 64bit, where the page physical address is identical to the direct map address, is accidental. Reviewed by: alc Sponsored by: The FreeBSD Foundation --- sys/powerpc/include/vmparam.h | 1 + sys/sys/sf_buf.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/powerpc/include/vmparam.h b/sys/powerpc/include/vmparam.h index c46f3954bb5..965f8e4d99e 100644 --- a/sys/powerpc/include/vmparam.h +++ b/sys/powerpc/include/vmparam.h @@ -210,5 +210,6 @@ struct pmap_physseg { #define SFBUF #define SFBUF_NOMD #define SFBUF_OPTIONAL_DIRECT_MAP hw_direct_map +#define SFBUF_PHYS_DMAP(x) (x) #endif /* _MACHINE_VMPARAM_H_ */ diff --git a/sys/sys/sf_buf.h b/sys/sys/sf_buf.h index 7ab944328e9..d3bb037c244 100644 --- a/sys/sys/sf_buf.h +++ b/sys/sys/sf_buf.h @@ -113,7 +113,7 @@ sf_buf_kva(struct sf_buf *sf) { #ifdef SFBUF_OPTIONAL_DIRECT_MAP if (SFBUF_OPTIONAL_DIRECT_MAP) - return (VM_PAGE_TO_PHYS((vm_page_t)sf)); + return (SFBUF_PHYS_DMAP(VM_PAGE_TO_PHYS((vm_page_t)sf))); #endif return (sf->kva);