diff --git a/drivers/ide/probe.c b/drivers/ide/probe.c
index 88cdab4215ca36d1fef7cdfbe15ed1a061839ebb..bb144dfbbb47886f8482925ecf967027e503c976 100644
--- a/drivers/ide/probe.c
+++ b/drivers/ide/probe.c
@@ -875,7 +875,8 @@ static void channel_probe(struct ata_channel *ch)
 
 	/* Register this hardware interface within the global device tree.
 	 */
-	sprintf(ch->dev.bus_id, "%04x", ch->io_ports[IDE_DATA_OFFSET]);
+	sprintf(ch->dev.bus_id, "%04lx",
+		(unsigned long) ch->io_ports[IDE_DATA_OFFSET]);
 	sprintf(ch->dev.name, "ide");
 	ch->dev.driver_data = ch;
 #ifdef CONFIG_PCI