From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: Unmodified_drivers modules broke again for 3.0.4? Date: Sat, 06 Jan 2007 11:44:49 +0000 Message-ID: <1168083889.4942.6.camel@localhost.localdomain> References: Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Liang Yang Cc: xen-devel , Keir Fraser , xen-users@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Fri, 2007-01-05 at 16:51 -0700, Liang Yang wrote: > Hi, > > I tried to load unmodified_drivers modules for vbd device and got error when > doing insmod xen-platform-pci.ko in HVM Linux domain: > xen_platform_pci: disagrees about version of symbol struct_module > insmod: error inserting 'xen-platform-pci.ko' : -1 invalid module format. > > I used the same kernel version for HVM Linux kernel and the kernel I was > building unmodified_drivers, i.e. they are both 2.6.16.33. I tested > xen-3.0.4-testing and xen-unstable, all got the same problem. Xen 3.0.2 with > 2.6.16.29 kernel version still works fine. > > Could anyone point out some links to fix this? I needed the patch below when I tried the xen-unstable version yesterday. I don't see how it can be related to the problem you are seeing but with it they work fine for me on RHEL4 and SLES9. I didn't try 2.6.16 but I will on Monday. Are you sure you are building against the correct kernel headers for the kernel you are running? Ian. diff -r d04ff58bbe18 unmodified_drivers/linux-2.6/platform-pci/evtchn.c --- a/unmodified_drivers/linux-2.6/platform-pci/evtchn.c Fri Jan 05 10:40:19 2007 +0000 +++ b/unmodified_drivers/linux-2.6/platform-pci/evtchn.c Fri Jan 05 14:40:02 2007 +0000 @@ -48,6 +48,12 @@ static struct { void *dev_id; int close; /* close on unbind_from_irqhandler()? */ } evtchns[MAX_EVTCHN]; + +int irq_to_evtchn_port(int irq) +{ + return irq; +} +EXPORT_SYMBOL_GPL(irq_to_evtchn_port); void mask_evtchn(int port) {