linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Cc: luto@amacapital.net, mingo@redhat.com, tglx@linutronix.de,
	hpa@zytor.com, jgross@suse.com, JBeulich@suse.com, bp@suse.de,
	suresh.b.siddha@intel.com, venkatesh.pallipadi@intel.com,
	airlied@redhat.com, linux-kernel@vger.kernel.org,
	linux-fbdev@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org,
	"Luis R. Rodriguez" <mcgrof@suse.com>,
	"Ingo Molnar" <mingo@elte.hu>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Antonino Daplas" <adaplas@gmail.com>,
	"Jean-Christophe Plagniol-Villard" <plagnioj@jcrosoft.com>,
	"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Stefan Bader" <stefan.bader@canonical.com>,
	ville.syrjala@linux.intel.com, david.vrabel@citrix.com,
	toshi.kani@hp.com, bhelgaas@google.com,
	"Roger Pau Monné" <roger.pau@citrix.com>,
	xen-devel@lists.xensource.com
Subject: Re: [PATCH v1 02/47] x86: mtrr: generalize run time disabling of MTRR
Date: Wed, 25 Mar 2015 19:59:41 +0000	[thread overview]
Message-ID: <20150325195941.GM25884@l.oracle.com> (raw)
In-Reply-To: <1426893517-2511-3-git-send-email-mcgrof@do-not-panic.com>

On Fri, Mar 20, 2015 at 04:17:52PM -0700, Luis R. Rodriguez wrote:
> From: "Luis R. Rodriguez" <mcgrof@suse.com>
> 
> It is possible to enable CONFIG_MTRR and up with it
> disabled at run time and yet CONFIG_X86_PAT continues
> to kick through fully functionally. This can happen

s/fully/full/ ?


> for instance on Xen where MTRR is not supported but
> PAT is, this can happen now on Linux as of commit
> 47591df50 by Juergen introduced as of v3.19.

s/3.19/4.0/
> 
> Technically we should assume the proper CPU
> bits would be set to disable MTRR but we can't
> always rely on this. At least on the Xen Hypervisor
> for instance only X86_FEATURE_MTRR was disabled
> as of Xen 4.4 through Xen commit 586ab6a [0],
> but not X86_FEATURE_K6_MTRR, X86_FEATURE_CENTAUR_MCR,
> or X86_FEATURE_CYRIX_ARR for instance.

Oh, could you send an patch for that to Xen please?
> 
> x86 mtrr code relies on quite a bit of checks for
> mtrr_if being set to check to see if MTRR did get
> set up, instead of using that lets provide a generic
> setter which when set we know MTRR is enabled. This

s/we know MTRR is enabled/will let us know that MTRR is enabled/

> also adds a few checks where they were not before
> which could potentially safeguard ourselves against
> incorrect usage of MTRR where this was not desirable.
> 
> Where possible match error codes as if MTRR was
> disabled on arch/x86/include/asm/mtrr.h.
> 
> Lastly, since disabling MTRR can happen at run time
> and we could end up with PAT enabled best record now
> on our logs when MTRR is disabled.
> 
> [0] ~/devel/xen (git::stable-4.5)$ git describe --contains 586ab6a
> 4.4.0-rc1~18
> 
> Cc: Andy Lutomirski <luto@amacapital.net>
> Cc: Suresh Siddha <suresh.b.siddha@intel.com>
> Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Juergen Gross <jgross@suse.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Antonino Daplas <adaplas@gmail.com>
> Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Dave Hansen <dave.hansen@linux.intel.com>
> Cc: venkatesh.pallipadi@intel.com
> Cc: Stefan Bader <stefan.bader@canonical.com>
> Cc: konrad.wilk@oracle.com
> Cc: ville.syrjala@linux.intel.com
> Cc: david.vrabel@citrix.com
> Cc: jbeulich@suse.com
> Cc: toshi.kani@hp.com
> Cc: bhelgaas@google.com
> Cc: Roger Pau Monné <roger.pau@citrix.com>
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: xen-devel@lists.xensource.com
> Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
> ---
>  arch/x86/include/asm/mtrr.h        |  2 ++
>  arch/x86/kernel/cpu/mtrr/cleanup.c |  2 +-
>  arch/x86/kernel/cpu/mtrr/generic.c |  5 +++--
>  arch/x86/kernel/cpu/mtrr/if.c      |  3 +++
>  arch/x86/kernel/cpu/mtrr/main.c    | 31 ++++++++++++++++++++++---------
>  5 files changed, 31 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/x86/include/asm/mtrr.h b/arch/x86/include/asm/mtrr.h
> index f768f62..cade917 100644
> --- a/arch/x86/include/asm/mtrr.h
> +++ b/arch/x86/include/asm/mtrr.h
> @@ -31,6 +31,7 @@
>   * arch_phys_wc_add and arch_phys_wc_del.
>   */
>  # ifdef CONFIG_MTRR
> +extern int mtrr_enabled;
>  extern u8 mtrr_type_lookup(u64 addr, u64 end);
>  extern void mtrr_save_fixed_ranges(void *);
>  extern void mtrr_save_state(void);
> @@ -50,6 +51,7 @@ extern int mtrr_trim_uncached_memory(unsigned long end_pfn);
>  extern int amd_special_default_mtrr(void);
>  extern int phys_wc_to_mtrr_index(int handle);
>  #  else
> +static const int mtrr_enabled;
>  static inline u8 mtrr_type_lookup(u64 addr, u64 end)
>  {
>  	/*
> diff --git a/arch/x86/kernel/cpu/mtrr/cleanup.c b/arch/x86/kernel/cpu/mtrr/cleanup.c
> index 5f90b85..784dc55 100644
> --- a/arch/x86/kernel/cpu/mtrr/cleanup.c
> +++ b/arch/x86/kernel/cpu/mtrr/cleanup.c
> @@ -880,7 +880,7 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
>  	 * Make sure we only trim uncachable memory on machines that
>  	 * support the Intel MTRR architecture:
>  	 */
> -	if (!is_cpu(INTEL) || disable_mtrr_trim)
> +	if (!is_cpu(INTEL) || disable_mtrr_trim || !mtrr_enabled)
>  		return 0;
>  
>  	rdmsr(MSR_MTRRdefType, def, dummy);
> diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
> index 09c82de..df321b2 100644
> --- a/arch/x86/kernel/cpu/mtrr/generic.c
> +++ b/arch/x86/kernel/cpu/mtrr/generic.c
> @@ -116,7 +116,8 @@ static u8 __mtrr_type_lookup(u64 start, u64 end, u64 *partial_end, int *repeat)
>  	u8 prev_match, curr_match;
>  
>  	*repeat = 0;
> -	if (!mtrr_state_set)
> +	/* generic_mtrr_ops is only set for generic_mtrr_ops */
> +	if (!mtrr_state_set || !mtrr_enabled)
>  		return 0xFF;
>  
>  	if (!mtrr_state.enabled)
> @@ -290,7 +291,7 @@ static void get_fixed_ranges(mtrr_type *frs)
>  
>  void mtrr_save_fixed_ranges(void *info)
>  {
> -	if (cpu_has_mtrr)
> +	if (mtrr_enabled && cpu_has_mtrr)
>  		get_fixed_ranges(mtrr_state.fixed_ranges);
>  }
>  
> diff --git a/arch/x86/kernel/cpu/mtrr/if.c b/arch/x86/kernel/cpu/mtrr/if.c
> index d76f13d..e9e001a 100644
> --- a/arch/x86/kernel/cpu/mtrr/if.c
> +++ b/arch/x86/kernel/cpu/mtrr/if.c
> @@ -436,6 +436,9 @@ static int __init mtrr_if_init(void)
>  {
>  	struct cpuinfo_x86 *c = &boot_cpu_data;
>  
> +	if (!mtrr_enabled)
> +		return 0;
> +
>  	if ((!cpu_has(c, X86_FEATURE_MTRR)) &&
>  	    (!cpu_has(c, X86_FEATURE_K6_MTRR)) &&
>  	    (!cpu_has(c, X86_FEATURE_CYRIX_ARR)) &&
> diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
> index ea5f363..7db9c47 100644
> --- a/arch/x86/kernel/cpu/mtrr/main.c
> +++ b/arch/x86/kernel/cpu/mtrr/main.c
> @@ -59,6 +59,7 @@
>  #define MTRR_TO_PHYS_WC_OFFSET 1000
>  
>  u32 num_var_ranges;
> +int mtrr_enabled;
>  
>  unsigned int mtrr_usage_table[MTRR_MAX_VAR_RANGES];
>  static DEFINE_MUTEX(mtrr_mutex);
> @@ -84,6 +85,9 @@ static int have_wrcomb(void)
>  {
>  	struct pci_dev *dev;
>  
> +	if (!mtrr_enabled)
> +		return 0;
> +
>  	dev = pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, NULL);
>  	if (dev != NULL) {
>  		/*
> @@ -286,7 +290,7 @@ int mtrr_add_page(unsigned long base, unsigned long size,
>  	int i, replace, error;
>  	mtrr_type ltype;
>  
> -	if (!mtrr_if)
> +	if (!mtrr_enabled)
>  		return -ENXIO;
>  
>  	error = mtrr_if->validate_add_page(base, size, type);
> @@ -388,6 +392,8 @@ int mtrr_add_page(unsigned long base, unsigned long size,
>  
>  static int mtrr_check(unsigned long base, unsigned long size)
>  {
> +	if (!mtrr_enabled)
> +		return -ENODEV;
>  	if ((base & (PAGE_SIZE - 1)) || (size & (PAGE_SIZE - 1))) {
>  		pr_warning("mtrr: size and base must be multiples of 4 kiB\n");
>  		pr_debug("mtrr: size: 0x%lx  base: 0x%lx\n", size, base);
> @@ -463,8 +469,8 @@ int mtrr_del_page(int reg, unsigned long base, unsigned long size)
>  	unsigned long lbase, lsize;
>  	int error = -EINVAL;
>  
> -	if (!mtrr_if)
> -		return -ENXIO;
> +	if (!mtrr_enabled)
> +		return -ENODEV;
>  
>  	max = num_var_ranges;
>  	/* No CPU hotplug when we change MTRR entries */
> @@ -523,6 +529,8 @@ int mtrr_del_page(int reg, unsigned long base, unsigned long size)
>   */
>  int mtrr_del(int reg, unsigned long base, unsigned long size)
>  {
> +	if (!mtrr_enabled)
> +		return -ENODEV;
>  	if (mtrr_check(base, size))
>  		return -EINVAL;
>  	return mtrr_del_page(reg, base >> PAGE_SHIFT, size >> PAGE_SHIFT);
> @@ -545,7 +553,7 @@ int arch_phys_wc_add(unsigned long base, unsigned long size)
>  {
>  	int ret;
>  
> -	if (pat_enabled)
> +	if (pat_enabled || !mtrr_enabled)
>  		return 0;  /* Success!  (We don't need to do anything.) */
>  
>  	ret = mtrr_add(base, size, MTRR_TYPE_WRCOMB, true);
> @@ -734,6 +742,7 @@ void __init mtrr_bp_init(void)
>  	}
>  
>  	if (mtrr_if) {
> +		mtrr_enabled = true;
>  		set_num_var_ranges();
>  		init_table();
>  		if (use_intel()) {
> @@ -744,12 +753,13 @@ void __init mtrr_bp_init(void)
>  				mtrr_if->set_all();
>  			}
>  		}
> -	}
> +	} else
> +		pr_info("mtrr: system does not support MTRR\n");

 'pr_warn' ? 
>  }
>  
>  void mtrr_ap_init(void)
>  {
> -	if (!use_intel() || mtrr_aps_delayed_init)
> +	if (!use_intel() || mtrr_aps_delayed_init || !mtrr_enabled)
>  		return;
>  	/*
>  	 * Ideally we should hold mtrr_mutex here to avoid mtrr entries
> @@ -774,6 +784,9 @@ void mtrr_save_state(void)
>  {
>  	int first_cpu;
>  
> +	if (!mtrr_enabled)
> +		return;
> +
>  	get_online_cpus();
>  	first_cpu = cpumask_first(cpu_online_mask);
>  	smp_call_function_single(first_cpu, mtrr_save_fixed_ranges, NULL, 1);
> @@ -782,7 +795,7 @@ void mtrr_save_state(void)
>  
>  void set_mtrr_aps_delayed_init(void)
>  {
> -	if (!use_intel())
> +	if (!use_intel() || !mtrr_enabled)
>  		return;
>  
>  	mtrr_aps_delayed_init = true;
> @@ -810,7 +823,7 @@ void mtrr_aps_init(void)
>  
>  void mtrr_bp_restore(void)
>  {
> -	if (!use_intel())
> +	if (!use_intel() || !mtrr_enabled)
>  		return;
>  
>  	mtrr_if->set_all();
> @@ -818,7 +831,7 @@ void mtrr_bp_restore(void)
>  
>  static int __init mtrr_init_finialize(void)
>  {
> -	if (!mtrr_if)
> +	if (!mtrr_enabled)
>  		return 0;
>  
>  	if (use_intel()) {
> -- 
> 2.3.2.209.gd67f9d5.dirty
> 

  reply	other threads:[~2015-03-25 19:59 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-20 23:17 [PATCH v1 00/47] mtrr/x86/drivers: bury MTRR Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 01/47] x86: mtrr: annotate mtrr_type_lookup() is only implemented on generic_mtrr_ops Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 02/47] x86: mtrr: generalize run time disabling of MTRR Luis R. Rodriguez
2015-03-25 19:59   ` Konrad Rzeszutek Wilk [this message]
2015-03-26  4:38     ` Juergen Gross
2015-03-26 23:35     ` Luis R. Rodriguez
2015-04-02 20:13       ` Bjorn Helgaas
2015-04-02 20:20         ` Luis R. Rodriguez
2015-04-02 20:28           ` Bjorn Helgaas
2015-04-02 21:02             ` Luis R. Rodriguez
2015-04-02 22:09               ` Bjorn Helgaas
2015-04-02 22:12                 ` [Xen-devel] " Luis R. Rodriguez
2015-03-27 20:40   ` Toshi Kani
2015-03-27 23:56     ` Luis R. Rodriguez
2015-04-02 21:49       ` Luis R. Rodriguez
2015-04-02 23:52         ` Toshi Kani
2015-04-03  1:08           ` Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 03/47] devres: add devm_ioremap_wc() Luis R. Rodriguez
2015-03-20 23:49   ` Andy Lutomirski
2015-03-25 19:50     ` Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 04/47] pci: add pci_ioremap_wc_bar() Luis R. Rodriguez
2015-03-20 23:50   ` Andy Lutomirski
2015-03-25 20:06     ` Luis R. Rodriguez
2015-03-25 20:03   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-03-25 20:39     ` Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 05/47] pci: add pci_iomap_wc() variants Luis R. Rodriguez
2015-03-23 17:20   ` Bjorn Helgaas
2015-03-26  3:00     ` Luis R. Rodriguez
2015-03-27 19:18     ` Toshi Kani
2015-04-21 19:25     ` Michael S. Tsirkin
2015-04-21 19:27       ` Luis R. Rodriguez
2015-03-25 20:07   ` Konrad Rzeszutek Wilk
2015-03-27 18:40     ` Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 06/47] mtrr: add __arch_phys_wc_add() Luis R. Rodriguez
2015-03-20 23:48   ` Andy Lutomirski
2015-03-27 19:53     ` Luis R. Rodriguez
2015-03-27 19:58       ` Andy Lutomirski
2015-03-27 20:30         ` Luis R. Rodriguez
2015-03-27 21:23           ` Andy Lutomirski
2015-03-27 23:04             ` Luis R. Rodriguez
2015-03-27 23:10               ` Andy Lutomirski
2015-03-27 23:33                 ` Luis R. Rodriguez
2015-04-02 20:21   ` Bjorn Helgaas
2015-04-02 20:55     ` Luis R. Rodriguez
2015-04-02 22:35       ` Bjorn Helgaas
2015-04-02 22:54         ` Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 07/47] video: fbdev: atyfb: move framebuffer length fudging to helper Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 08/47] video: fbdev: atyfb: clarify ioremap() base and length used Luis R. Rodriguez
2015-03-20 23:17 ` [PATCH v1 09/47] vidoe: fbdev: atyfb: remove and fix MTRR MMIO "hole" work around Luis R. Rodriguez
2015-03-20 23:52   ` Andy Lutomirski
2015-03-27 20:12     ` Luis R. Rodriguez
2015-03-27 21:21       ` Andy Lutomirski
2015-03-27 23:31         ` Luis R. Rodriguez
2015-03-21  9:15   ` Ville Syrjälä
2015-03-27  8:37     ` Ville Syrjälä
2015-03-27 19:38       ` Luis R. Rodriguez
2015-03-27 19:38     ` Luis R. Rodriguez
2015-03-27 19:43       ` Andy Lutomirski
2015-03-27 19:57         ` Luis R. Rodriguez
2015-03-27 21:56           ` Ville Syrjälä
2015-03-27 22:02             ` Andy Lutomirski
2015-03-28  0:28               ` Luis R. Rodriguez
2015-03-28 12:23                 ` Ville Syrjälä
2015-04-01 23:52                   ` Luis R. Rodriguez
2015-04-02  0:04                     ` Andy Lutomirski
2015-04-02 19:45                       ` Luis R. Rodriguez
2015-04-02 19:50                         ` Andy Lutomirski
2015-03-28  0:21             ` Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 10/47] video: fbdev: atyfb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 11/47] IB/qib: add acounting for MTRR Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 12/47] IB/qib: use arch_phys_wc_add() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 13/47] IB/ipath: add counting for MTRR Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 14/47] IB/ipath: use __arch_phys_wc_add() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 15/47] [media] media: ivtv: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 16/47] fusion: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 17/47] video: fbdev: vesafb: only support MTRR_TYPE_WRCOMB Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 18/47] vidoe: fbdev: vesafb: add missing mtrr_del() for added MTRR Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 19/47] video: fbdev: vesafb: use arch_phys_wc_add() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 20/47] mtrr: avoid ifdef'ery with phys_wc_to_mtrr_index() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 21/47] ethernet: myri10ge: use arch_phys_wc_add() Luis R. Rodriguez
2015-03-21  7:08   ` Hyong-Youb Kim
2015-03-27 20:36     ` Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 22/47] staging: sm750fb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 23/47] staging: xgifb: " Luis R. Rodriguez
2015-04-30 17:40   ` Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 24/47] video: fbdev: arkfb: use arch_phys_wc_add() and pci_iomap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 25/47] video: fbdev: radeonfb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 26/47] video: fbdev: gbefb: add missing mtrr_del() calls Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 27/47] video: fbdev: gbefb: use arch_phys_wc_add() and devm_ioremap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 28/47] video: fbdev: intelfb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 29/47] video: fbdev: matrox: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 30/47] video: fbdev: neofb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 31/47] video: fbdev: s3fb: use arch_phys_wc_add() and pci_iomap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 32/47] video: fbdev: nvidia: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 33/47] video: fbdev: savagefb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 34/47] video: fbdev: sisfb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 35/47] video: fbdev: aty: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 36/47] video: fbdev: i810: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 37/47] video: fbdev: i740fb: use arch_phys_wc_add() and pci_ioremap_wc_bar() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 38/47] video: fbdev: kyrofb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 39/47] video: fbdev: pm2fb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 40/47] video: fbdev: pm3fb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 41/47] video: fbdev: rivafb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 42/47] video: fbdev: tdfxfb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 43/47] video: fbdev: vt8623fb: use arch_phys_wc_add() and pci_iomap_wc() Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 44/47] video: fbdev: atmel_lcdfb: use ioremap_wc() for framebuffer Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 45/47] video: fbdev: geode gxfb: " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 46/47] video: fbdev: gxt4500: use pci_ioremap_wc_bar() " Luis R. Rodriguez
2015-03-20 23:18 ` [PATCH v1 47/47] mtrr: bury MTRR - unexport mtrr_add() and mtrr_del() Luis R. Rodriguez
2015-03-21  1:08 ` [PATCH v1 00/47] mtrr/x86/drivers: bury MTRR Andy Lutomirski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150325195941.GM25884@l.oracle.com \
    --to=konrad.wilk@oracle.com \
    --cc=JBeulich@suse.com \
    --cc=adaplas@gmail.com \
    --cc=airlied@redhat.com \
    --cc=bhelgaas@google.com \
    --cc=bp@suse.de \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dave.hansen@linux.intel.com \
    --cc=david.vrabel@citrix.com \
    --cc=hpa@zytor.com \
    --cc=jgross@suse.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mcgrof@do-not-panic.com \
    --cc=mcgrof@suse.com \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=plagnioj@jcrosoft.com \
    --cc=roger.pau@citrix.com \
    --cc=stefan.bader@canonical.com \
    --cc=suresh.b.siddha@intel.com \
    --cc=tglx@linutronix.de \
    --cc=tomi.valkeinen@ti.com \
    --cc=toshi.kani@hp.com \
    --cc=venkatesh.pallipadi@intel.com \
    --cc=ville.syrjala@linux.intel.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).