From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: make install-stubdom fails Date: Fri, 1 May 2009 21:08:30 +0200 Message-ID: <20090501190830.GF5057@const> References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline 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: Dan Hickox Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Dan Hickox, le Sun 22 Mar 2009 11:39:40 -0700, a =E9crit : > I couldn't find any information on this one and thought it might be= of use > to you... > =20 > kernel.c: In function `pcifront_thread': > kernel.c:456: warning: generating trampoline in object (requires execut= able > stack) I guess the problem is the nested function. We got rid of that in the unstable tree. It'd probably be good to backport it to the 3.3 tree. Samuel Backport part of unstable changeset 18928:b33b745cd5ec to avoid nested functions. Signed-off-by: Samuel Thibault --- extras/mini-os/kernel.c 2008-08-22 11:49:07.000000000 +0200 +++ /usr/src/xen-unstable.hg/extras/mini-os/kernel.c 2009-03-18 09:48:46.= 000000000 +0100 @@ -434,25 +434,25 @@ =20 static struct pcifront_dev *pci_dev; =20 -static void pcifront_thread(void *p) +static void print_pcidev(unsigned int domain, unsigned int bus, unsigned= int slot, unsigned int fun) { - void print(unsigned int domain, unsigned int bus, unsigned int slot,= unsigned int fun) - { - unsigned int vendor, device, rev, class; + unsigned int vendor, device, rev, class; =20 - pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x00, 2, &ve= ndor); - pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x02, 2, &de= vice); - pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x08, 1, &re= v); - pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x0a, 2, &cl= ass); + pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x00, 2, &vendor= ); + pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x02, 2, &device= ); + pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x08, 1, &rev); + pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x0a, 2, &class)= ; =20 - printk("%04x:%02x:%02x.%02x %04x: %04x:%04x (rev %02x)\n", domai= n, bus, slot, fun, class, vendor, device, rev); - } + printk("%04x:%02x:%02x.%02x %04x: %04x:%04x (rev %02x)\n", domain, b= us, slot, fun, class, vendor, device, rev); +} =20 +static void pcifront_thread(void *p) +{ pci_dev =3D init_pcifront(NULL); if (!pci_dev) return; printk("PCI devices:\n"); - pcifront_scan(pci_dev, print); + pcifront_scan(pci_dev, print_pcidev); } =20 static void fs_thread(void *p)