[IA64] sprintf should not be used with same source & destination address
authorAlan Cox <alan@linux.intel.com>
Tue, 30 Jun 2009 21:02:00 +0000 (14:02 -0700)
committerTony Luck <tony.luck@intel.com>
Tue, 30 Jun 2009 21:02:00 +0000 (14:02 -0700)
This happens to work at the moment but isn't a good idea so fix it the
simple way.

Resolves-bug: http://bugzilla.kernel.org/show_bug.cgi?id=13576

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/sn/kernel/io_common.c

index 76645cf..25831c4 100644 (file)
@@ -435,7 +435,8 @@ void sn_generate_path(struct pci_bus *pci_bus, char *address)
        bricktype = MODULE_GET_BTYPE(moduleid);
        if ((bricktype == L1_BRICKTYPE_191010) ||
            (bricktype == L1_BRICKTYPE_1932))
-                       sprintf(address, "%s^%d", address, geo_slot(geoid));
+                       sprintf(address + strlen(address), "^%d",
+                                               geo_slot(geoid));
 }
 
 void __devinit