* Re: make install-stubdom fails
2009-03-22 18:39 make install-stubdom fails Dan Hickox
@ 2009-05-01 19:08 ` Samuel Thibault
0 siblings, 0 replies; 2+ messages in thread
From: Samuel Thibault @ 2009-05-01 19:08 UTC (permalink / raw)
To: Dan Hickox; +Cc: xen-devel
Dan Hickox, le Sun 22 Mar 2009 11:39:40 -0700, a écrit :
> I couldn't find any information on this one and thought it might be of use
> to you...
>
> kernel.c: In function `pcifront_thread':
> kernel.c:456: warning: generating trampoline in object (requires executable
> 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 <samuel.thibault@ens-lyon.org>
--- 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 @@
static struct pcifront_dev *pci_dev;
-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;
- 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);
+ 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);
- printk("%04x:%02x:%02x.%02x %04x: %04x:%04x (rev %02x)\n", domain, bus, slot, fun, class, vendor, device, rev);
- }
+ printk("%04x:%02x:%02x.%02x %04x: %04x:%04x (rev %02x)\n", domain, bus, slot, fun, class, vendor, device, rev);
+}
+static void pcifront_thread(void *p)
+{
pci_dev = init_pcifront(NULL);
if (!pci_dev)
return;
printk("PCI devices:\n");
- pcifront_scan(pci_dev, print);
+ pcifront_scan(pci_dev, print_pcidev);
}
static void fs_thread(void *p)
^ permalink raw reply [flat|nested] 2+ messages in thread