On 21.04.2009 17:57, Patrick Georgi wrote: > coreboot-scanbuild.diff eliminates various issues brought up by > scan-build. > > Signed-off-by: Patrick Georgi <[email protected]>
Review follows. If you address my points (either explain why I'm wrong or fix), the patch is Acked-by: Carl-Daniel Hailfinger <[email protected]> > Index: src/devices/pci_rom.c > =================================================================== > --- src/devices/pci_rom.c (.../branches/upstream/coreboot-v2) > +++ src/devices/pci_rom.c (.../trunk/coreboot-v2) > @@ -42,7 +42,7 @@ > printk_debug("In cbfs, rom address for %s = %lx\n", > dev_path(dev), rom_address); > if (v) { > - dev->rom_address = v; > + dev->rom_address = (u32)v; > dev->on_mainboard = 1; > } > } > Index: src/devices/pci_device.c > =================================================================== > --- src/devices/pci_device.c (.../branches/upstream/coreboot-v2) > +++ src/devices/pci_device.c (.../trunk/coreboot-v2) > @@ -10,7 +10,7 @@ > * Copyright (C) 2004-2005 Li-Ta Lo <[email protected]> > * Copyright (C) 2005-2006 Tyan > * (Written by Yinghai Lu <[email protected]> for Tyan) > - * Copyright (C) 2005-2007 Stefan Reinauer <[email protected]> > + * Copyright (C) 2005-2009 coresystems GmbH > That's a bit unusual. I'd have expected the author name to remain: Copyright (C) 2005-2009 coresystems GmbH Written by Stefan Reinauer for coresystems GmbH > */ > > /* > @@ -271,7 +271,7 @@ > { > struct resource *resource; > unsigned long value; > - resource_t moving, limit; > + resource_t moving; > > if ((dev->on_mainboard) && (dev->rom_address == 0)) { > //skip it if rom_address is not set in MB Config.lb > @@ -296,8 +296,6 @@ > * - Limit is all of the bits that move plus all of the lower bits. > * See PCI Spec 6.2.5.1 ... > */ > - limit = 0; > - > if (moving) { > resource->size = 1; > resource->align = resource->gran = 0; > @@ -306,7 +304,7 @@ > resource->align += 1; > resource->gran += 1; > } > - resource->limit = limit = moving | (resource->size - 1); > + resource->limit = moving | (resource->size - 1); > } > > if (moving == 0) { > @@ -927,7 +925,7 @@ > if ( (id == 0xffffffff) || (id == 0x00000000) || > (id == 0x0000ffff) || (id == 0xffff0000)) > { > - printk_spew("%s, bad id 0x%x\n", dev_path(&dummy), id); > + // printk_spew("PCI: devfn 0x%x, bad id 0x%x\n", devfn, > id); > That change seems unrelated. Please revert. > return NULL; > } > dev = alloc_dev(bus, &dummy.path); > Index: src/include/console/console.h > =================================================================== > --- src/include/console/console.h (.../branches/upstream/coreboot-v2) > +++ src/include/console/console.h (.../trunk/coreboot-v2) > @@ -10,7 +10,7 @@ > unsigned char console_rx_byte(void); > int console_tst_byte(void); > void post_code(uint8_t value); > -void die(const char *msg); > +void __attribute__ ((noreturn)) die(const char *msg); > IIRC I sent that one ages ago. Definitely something we want. > > struct console_driver { > void (*init)(void); > Index: src/console/usbdebug_direct_console.c > =================================================================== > --- src/console/usbdebug_direct_console.c > (.../branches/upstream/coreboot-v2) > +++ src/console/usbdebug_direct_console.c (.../trunk/coreboot-v2) > @@ -1,3 +1,4 @@ > +#include <string.h> > #include <console/console.h> > #include <usbdebug_direct.h> > #include <pc80/mc146818rtc.h> > Index: src/boot/elfboot.c > =================================================================== > --- src/boot/elfboot.c (.../branches/upstream/coreboot-v2) > +++ src/boot/elfboot.c (.../trunk/coreboot-v2) > @@ -362,9 +362,6 @@ > seg->phdr_next->phdr_prev = new; > seg->phdr_next = new; > > - /* compute the new value of end */ > - end = start + len; > - > printk_spew(" late: [0x%016lx, 0x%016lx, 0x%016lx)\n", > new->s_addr, > new->s_addr + new->s_filesz, > Index: src/arch/i386/boot/coreboot_table.c > =================================================================== > --- src/arch/i386/boot/coreboot_table.c > (.../branches/upstream/coreboot-v2) > +++ src/arch/i386/boot/coreboot_table.c (.../trunk/coreboot-v2) > @@ -93,9 +93,8 @@ > > void add_console(struct lb_header *header, u16 consoletype) > { > - struct lb_record *rec; > struct lb_console *console; > - rec = lb_new_record(header); > I believe this is incorrect. The removed call modified *header and that change is now missing. > + > console = (struct lb_console *)lb_new_record(header); > console->tag = LB_TAG_CONSOLE; > console->size = sizeof(*console); > Index: util/nrv2b/nrv2b.c > =================================================================== > --- util/nrv2b/nrv2b.c (.../branches/upstream/coreboot-v2) > +++ util/nrv2b/nrv2b.c (.../trunk/coreboot-v2) > @@ -65,7 +65,7 @@ > #define BITSIZE 32 > #endif > > -static __inline__ void Error(char *message) > +static __inline__ __attribute__((noreturn)) void Error(char *message) > { > Fprintf((stderr, "\n%s\n", message)); > exit(EXIT_FAILURE); > Index: util/buildrom/buildrom.c > =================================================================== > --- util/buildrom/buildrom.c (.../branches/upstream/coreboot-v2) > +++ util/buildrom/buildrom.c (.../trunk/coreboot-v2) > @@ -24,7 +24,7 @@ > exit(1); > } > > -void fatal(char *s) > +void __attribute__((noreturn)) fatal(char *s) > { > perror(s); > exit(2); > > > Regards, Carl-Daniel -- http://www.hailfinger.org/ -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

