[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] linux: prevent non-Xen modules fromloading in Xen kernel


  • To: Jan Beulich <jbeulich@xxxxxxxxxx>
  • From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
  • Date: Fri, 18 Jan 2008 16:07:29 +0000
  • Cc: Zachary Amsden <zach@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Fri, 18 Jan 2008 08:08:01 -0800
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AchZ7DlieBQe6cXfEdyBqQAX8io7RQ==
  • Thread-topic: [Xen-devel] [PATCH] linux: prevent non-Xen modules fromloading in Xen kernel

I disagree. The xen interface version number is simply to allow downgrading
of the API exposed by the Xen public headers. And it *is* specifically the
source API; *not* the ABI. Xen's ABIs are always backward compatible (old
guest driver; new Xen will always work), and for forward compatibility (new
guest driver; old Xen) we expect the guest driver to gracefully degrade its
functionality.

This is orthogonal to what you are trying to achieve. So, can we just add
"Xen " to the magic string?

 -- Keir

On 18/1/08 15:48, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> It's intended to disallow cross-version loading of modules (i.e. a module
> compiled against a kernel built with a different [lower or higher] Xen
> interface) - allowing such can be as dangerous as loading a module that
> was compiled against native I believe.
> 
> Jan
> 
>>>> Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> 18.01.08 16:35 >>>
> Does the XEN_INTERFACE_VERSION add anything? It has not much to do with the
> module<->Linux-core interface. Seems a pretty random thing to stuff into the
> module magic version string.
> 
>  -- Keir
> 
> On 18/1/08 14:51, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:
> 
>> .. and vice versa.
>> 
>> Inspired by Zach Amsden's functionally similar VMI patch.
>> 
>> As usual, written and tested on 2.6.24-rc7 and made apply to the 2.6.18
>> tree without further testing.
>> 
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
>> 
>> Index: head-2008-01-08/drivers/xen/Kconfig
>> ===================================================================
>> --- head-2008-01-08.orig/drivers/xen/Kconfig 2008-01-08 12:26:03.000000000
>> +0100
>> +++ head-2008-01-08/drivers/xen/Kconfig 2008-01-08 14:56:58.000000000 +0100
>> @@ -13,7 +13,7 @@ config XEN
>>  if XEN
>>  config XEN_INTERFACE_VERSION
>> hex
>> - default 0x00030207
>> + default 0x30207
>>  
>>  menu "XEN"
>>  
>> Index: head-2008-01-08/include/linux/vermagic.h
>> ===================================================================
>> --- head-2008-01-08.orig/include/linux/vermagic.h 2006-11-29
>> 22:57:37.000000000 +0100
>> +++ head-2008-01-08/include/linux/vermagic.h 2008-01-08 15:01:52.000000000
>> +0100
>> @@ -17,6 +17,11 @@
>>  #else
>>  #define MODULE_VERMAGIC_MODULE_UNLOAD ""
>>  #endif
>> +#ifdef CONFIG_XEN
>> +#define MODULE_VERMAGIC_XEN "Xen:" __stringify(CONFIG_XEN_INTERFACE_VERSION)
>> " "
>> +#else
>> +#define MODULE_VERMAGIC_XEN
>> +#endif
>>  #ifndef MODULE_ARCH_VERMAGIC
>>  #define MODULE_ARCH_VERMAGIC ""
>>  #endif
>> @@ -24,5 +29,6 @@
>>  #define VERMAGIC_STRING       \
>> UTS_RELEASE " "       \
>> MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT    \
>> - MODULE_VERMAGIC_MODULE_UNLOAD MODULE_ARCH_VERMAGIC   \
>> + MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_XEN  \
>> + MODULE_ARCH_VERMAGIC      \
>> "gcc-" __stringify(__GNUC__) "." __stringify(__GNUC_MINOR__)
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
> 
> 
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.