Messages in this thread | | | Date | Wed, 18 Jun 2008 17:28:16 +0100 (BST) | From | Hugh Dickins <> | Subject | Re: [PATCH 5/5 v2] x86: PAT: make pat_x_mtrr_type() more readable |
| |
On Wed, 18 Jun 2008, Andreas Herrmann wrote: > And the attached patch makes it even shorter. > (patch against tip/x86/pat -- where your patch is already residing)
Yes, that's delightful, even better, thanks. After accusing you of an uninteresting BUG on a fifth value from 2 bits, I had an inkling that maybe my patch was therefore still stupidly verbose.
> --- > [PATCH] x86: shrink pat_x_mtrr_type to its essentials > > Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Acked-by: Hugh Dickins <hugh@veritas.com>
> --- > arch/x86/mm/pat.c | 30 +++++++++++------------------- > 1 files changed, 11 insertions(+), 19 deletions(-) > > diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c > index ac3a2b1..227df3c 100644 > --- a/arch/x86/mm/pat.c > +++ b/arch/x86/mm/pat.c > @@ -161,29 +161,21 @@ static DEFINE_SPINLOCK(memtype_lock); /* protects memtype list */ > */ > static unsigned long pat_x_mtrr_type(u64 start, u64 end, unsigned long req_type) > { > - u8 mtrr_type; > - > - /* > - * We return the PAT request directly for types where PAT takes > - * precedence with respect to MTRR and for UC_MINUS. > - * Consistency checks with other PAT requests is done later > - * while going through memtype list. > - */ > - if (req_type == _PAGE_CACHE_WC || > - req_type == _PAGE_CACHE_UC_MINUS || > - req_type == _PAGE_CACHE_UC) > - return req_type; > - > /* > * Look for MTRR hint to get the effective type in case where PAT > * request is for WB. > */ > - mtrr_type = mtrr_type_lookup(start, end); > - if (mtrr_type == MTRR_TYPE_UNCACHABLE) > - return _PAGE_CACHE_UC; > - if (mtrr_type == MTRR_TYPE_WRCOMB) > - return _PAGE_CACHE_WC; > - return _PAGE_CACHE_WB; > + if (req_type == _PAGE_CACHE_WB) { > + u8 mtrr_type; > + > + mtrr_type = mtrr_type_lookup(start, end); > + if (mtrr_type == MTRR_TYPE_UNCACHABLE) > + return _PAGE_CACHE_UC; > + if (mtrr_type == MTRR_TYPE_WRCOMB) > + return _PAGE_CACHE_WC; > + } > + > + return req_type; > } > > /*
| |