Commit d63fb6c55f5f9eb3032fc5c3ab6eb9a26dd67cdc

Authored by Benjamin Herrenschmidt
Committed by Linus Torvalds
1 parent fc25465f09

[PATCH] powermac: Fix some 64b resource damage

The 64 bits resource patches did a bit of damage on PowerMac causing a
buffer overflow in macio_asic and a warning in a sound driver. The
former is fixed by reverting the sprintf of the bus_id to %08x as it was
before. The bus_id used for macio devices is always a 32 bits value
(macio always sits in 32 bits space) and since it's exposed to userland,
the format of the string shouldn't be changed like that anyway. The
second by using the proper type for printk.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 2 changed files with 3 additions and 3 deletions Side-by-side Diff

drivers/macintosh/macio_asic.c
... ... @@ -427,10 +427,10 @@
427 427  
428 428 /* MacIO itself has a different reg, we use it's PCI base */
429 429 if (np == chip->of_node) {
430   - sprintf(dev->ofdev.dev.bus_id, "%1d.%016llx:%.*s",
  430 + sprintf(dev->ofdev.dev.bus_id, "%1d.%08x:%.*s",
431 431 chip->lbus.index,
432 432 #ifdef CONFIG_PCI
433   - (unsigned long long)pci_resource_start(chip->lbus.pdev, 0),
  433 + (unsigned int)pci_resource_start(chip->lbus.pdev, 0),
434 434 #else
435 435 0, /* NuBus may want to do something better here */
436 436 #endif
... ... @@ -1170,7 +1170,7 @@
1170 1170 chip->rsrc[i].start + 1,
1171 1171 rnames[i]) == NULL) {
1172 1172 printk(KERN_ERR "snd: can't request rsrc "
1173   - " %d (%s: 0x%016lx:%016lx)\n",
  1173 + " %d (%s: 0x%016llx:%016llx)\n",
1174 1174 i, rnames[i],
1175 1175 (unsigned long long)chip->rsrc[i].start,
1176 1176 (unsigned long long)chip->rsrc[i].end);