From: Stefan Reinauer Date: Mon, 14 Nov 2011 20:40:34 +0000 (-0800) Subject: Fix warnings in coreboot utilities. X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=coreboot.git;a=commitdiff_plain;h=a7b296d450c5d948b95c1342f726334b4e5a4c68 Fix warnings in coreboot utilities. - Fix some poor programming practice (breaks of strict aliasing as well as not checking the return value of read) - Use PRIx64 instead of %llx to prevent compilation warnings with both 32bit and 64bit compilers - Use same compiler command options when linking inteltool and when detecting libpci for inteltool Change-Id: I08b2e8d1bbc908f6b1f26d25cb3a4b03d818e124 Signed-off-by: Stefan Reinauer Reviewed-on: http://review.coreboot.org/752 Tested-by: build bot (Jenkins) Reviewed-by: Mathias Krause --- diff --git a/util/inteltool/Makefile b/util/inteltool/Makefile index 6a011732d..d7540059b 100644 --- a/util/inteltool/Makefile +++ b/util/inteltool/Makefile @@ -42,7 +42,7 @@ endif all: pciutils dep $(PROGRAM) $(PROGRAM): $(OBJS) - $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) + $(CC) $(CFLAGS) -o $(PROGRAM) $(OBJS) $(LDFLAGS) clean: rm -f $(PROGRAM) *.o *~ @@ -59,7 +59,7 @@ pciutils: printf "struct pci_access *pacc;\n"; \ printf "int main(int argc, char **argv)\n"; \ printf "{ pacc = pci_alloc(); return 0; }\n"; ) > .test.c ) - @$(CC) $(CFLAGS) $(LDFLAGS) .test.c -o .test &>/dev/null && \ + @$(CC) $(CFLAGS) .test.c -o .test $(LDFLAGS) &>/dev/null && \ printf "found.\n" || ( printf "not found.\n\n"; \ printf "Please install pciutils-devel and zlib-devel.\n"; \ printf "See README for more information.\n\n"; \ diff --git a/util/inteltool/cpu.c b/util/inteltool/cpu.c index 20748bda4..f0183816f 100644 --- a/util/inteltool/cpu.c +++ b/util/inteltool/cpu.c @@ -57,7 +57,7 @@ int msr_readerror = 0; msr_t rdmsr(int addr) { - uint8_t buf[8]; + uint32_t buf[2]; msr_t msr = { 0xffffffff, 0xffffffff }; if (lseek(fd_msr, (off_t) addr, SEEK_SET) == -1) { @@ -67,9 +67,8 @@ msr_t rdmsr(int addr) } if (read(fd_msr, buf, 8) == 8) { - msr.lo = *(uint32_t *)buf; - msr.hi = *(uint32_t *)(buf + 4); - + msr.lo = buf[0]; + msr.hi = buf[1]; return msr; } diff --git a/util/inteltool/inteltool.c b/util/inteltool/inteltool.c index 6b9960552..e5c2b867c 100644 --- a/util/inteltool/inteltool.c +++ b/util/inteltool/inteltool.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -99,7 +100,8 @@ void *map_physical(uint64_t phys_addr, size_t len) fd_mem, (off_t) phys_addr); if (virt_addr == MAP_FAILED) { - printf("Error mapping physical memory 0x%08lx[0x%zx]\n", phys_addr, len); + printf("Error mapping physical memory 0x%08" PRIx64 "[0x%zx]\n", + phys_addr, len); return NULL; } diff --git a/util/inteltool/memory.c b/util/inteltool/memory.c index 9230419d5..18300ac44 100644 --- a/util/inteltool/memory.c +++ b/util/inteltool/memory.c @@ -20,6 +20,7 @@ #include #include +#include #include "inteltool.h" /* @@ -130,9 +131,9 @@ int print_mchbar(struct pci_dev *nb, struct pci_access *pacc) } if (nb->device_id == PCI_DEVICE_ID_INTEL_82865) - printf("BAR6 = 0x%08llx (MEM)\n\n", mchbar_phys); + printf("BAR6 = 0x%08" PRIx64 " (MEM)\n\n", mchbar_phys); else - printf("MCHBAR = 0x%08llx (MEM)\n\n", mchbar_phys); + printf("MCHBAR = 0x%08" PRIx64 " (MEM)\n\n", mchbar_phys); for (i = 0; i < size; i += 4) { if (*(uint32_t *)(mchbar + i)) diff --git a/util/inteltool/pcie.c b/util/inteltool/pcie.c index 491315094..ea2383542 100644 --- a/util/inteltool/pcie.c +++ b/util/inteltool/pcie.c @@ -19,6 +19,7 @@ #include #include +#include #include "inteltool.h" /* @@ -72,7 +73,7 @@ int print_epbar(struct pci_dev *nb) exit(1); } - printf("EPBAR = 0x%08llx (MEM)\n\n", epbar_phys); + printf("EPBAR = 0x%08" PRIx64 " (MEM)\n\n", epbar_phys); for (i = 0; i < size; i += 4) { if (*(uint32_t *)(epbar + i)) printf("0x%04x: 0x%08x\n", i, *(uint32_t *)(epbar+i)); @@ -135,7 +136,7 @@ int print_dmibar(struct pci_dev *nb) exit(1); } - printf("DMIBAR = 0x%08llx (MEM)\n\n", dmibar_phys); + printf("DMIBAR = 0x%08" PRIx64 " (MEM)\n\n", dmibar_phys); for (i = 0; i < size; i += 4) { if (*(uint32_t *)(dmibar + i)) printf("0x%04x: 0x%08x\n", i, *(uint32_t *)(dmibar+i)); @@ -213,7 +214,7 @@ int print_pciexbar(struct pci_dev *nb) return 1; } - printf("PCIEXBAR: 0x%08llx\n", pciexbar_phys); + printf("PCIEXBAR: 0x%08" PRIx64 "\n", pciexbar_phys); pciexbar = map_physical(pciexbar_phys, (max_busses * 1024 * 1024)); diff --git a/util/nvramtool/cli/nvramtool.c b/util/nvramtool/cli/nvramtool.c index 11a1a702a..bcb10bbf3 100644 --- a/util/nvramtool/cli/nvramtool.c +++ b/util/nvramtool/cli/nvramtool.c @@ -143,7 +143,11 @@ int main(int argc, char *argv[]) if (fd_stat.st_size < 128) { lseek(fd, 127, SEEK_SET); - write(fd, "\0", 1); + if (write(fd, "\0", 1) != 1) { + fprintf(stderr, "Unable to extended '%s' to its full size.\n", + nvramtool_op_modifiers[NVRAMTOOL_MOD_USE_CMOS_FILE].param); + exit(1); + } fsync(fd); }