diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index f5dc632452f1f9da7ae87a6f97f16a603296fe71..cbe9368a4d56e2da68f23ab92c3790fb38ac3d0f 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -532,7 +532,7 @@ static int ibmveth_open(struct net_device *netdev)
 
 	if(lpar_rc != H_Success) {
 		ibmveth_error_printk("h_register_logical_lan failed with %ld\n", lpar_rc);
-		ibmveth_error_printk("buffer TCE:0x%x filter TCE:0x%x rxq desc:0x%lx MAC:0x%lx\n",
+		ibmveth_error_printk("buffer TCE:0x%lx filter TCE:0x%lx rxq desc:0x%lx MAC:0x%lx\n",
 				     adapter->buffer_list_dma,
 				     adapter->filter_list_dma,
 				     rxq_desc.desc,
diff --git a/include/asm-powerpc/types.h b/include/asm-powerpc/types.h
index f70cd3fb32d9944168a443477fd940911cd28285..ec3c2ee8bf86e7a52e59e6531904b881cfce4801 100644
--- a/include/asm-powerpc/types.h
+++ b/include/asm-powerpc/types.h
@@ -85,7 +85,11 @@ typedef unsigned long long u64;
 
 typedef __vector128 vector128;
 
+#ifdef __powerpc64__
+typedef u64 dma_addr_t;
+#else
 typedef u32 dma_addr_t;
+#endif
 typedef u64 dma64_addr_t;
 
 typedef struct {
diff --git a/include/asm-ppc64/scatterlist.h b/include/asm-ppc64/scatterlist.h
index cecce6c6dfbb5975c3cd0a4f8bf4da20526880ee..65a2a027ac94085f3dd8e2a0d97388555e1c6242 100644
--- a/include/asm-ppc64/scatterlist.h
+++ b/include/asm-ppc64/scatterlist.h
@@ -19,7 +19,7 @@ struct scatterlist {
 	unsigned int length;
 
 	/* For TCE support */
-	u32 dma_address;
+	dma_addr_t dma_address;
 	u32 dma_length;
 };