* [PATCH 0/2] sparc/net: Fix compiler warnings @ 2016-10-17 20:56 ` Tushar Dave 0 siblings, 0 replies; 11+ messages in thread From: Tushar Dave @ 2016-10-17 20:56 UTC (permalink / raw) To: sparclinux; +Cc: chris.hyser, linux-kernel Recently, ATU (iommu) changes are submitted to sparclinux that enables 64bit DMA on SPARC. However, this change also makes 'incompatible pointer type' compiler warnings inevitable on sunqe and sunbmac driver. The two patches in series fix compiler warnings. Tushar Dave (2): sunqe: Fix compiler warnings sunbmac: Fix compiler warning drivers/net/ethernet/sun/sunbmac.c | 5 +++-- drivers/net/ethernet/sun/sunbmac.h | 2 +- drivers/net/ethernet/sun/sunqe.c | 11 ++++++----- drivers/net/ethernet/sun/sunqe.h | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 0/2] sparc/net: Fix compiler warnings @ 2016-10-17 20:56 ` Tushar Dave 0 siblings, 0 replies; 11+ messages in thread From: Tushar Dave @ 2016-10-17 20:56 UTC (permalink / raw) To: sparclinux; +Cc: chris.hyser, linux-kernel Recently, ATU (iommu) changes are submitted to sparclinux that enables 64bit DMA on SPARC. However, this change also makes 'incompatible pointer type' compiler warnings inevitable on sunqe and sunbmac driver. The two patches in series fix compiler warnings. Tushar Dave (2): sunqe: Fix compiler warnings sunbmac: Fix compiler warning drivers/net/ethernet/sun/sunbmac.c | 5 +++-- drivers/net/ethernet/sun/sunbmac.h | 2 +- drivers/net/ethernet/sun/sunqe.c | 11 ++++++----- drivers/net/ethernet/sun/sunqe.h | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] sunqe: Fix compiler warnings 2016-10-17 20:56 ` Tushar Dave @ 2016-10-17 20:56 ` Tushar Dave -1 siblings, 0 replies; 11+ messages in thread From: Tushar Dave @ 2016-10-17 20:56 UTC (permalink / raw) To: sparclinux; +Cc: chris.hyser, linux-kernel sunqe uses '__u32' for dma handle while invoking kernel DMA APIs, instead of using dma_addr_t. This hasn't caused any 'incompatible pointer type' warning on SPARC because until now dma_addr_t is of type u32. However, recent changes in SPARC ATU (iommu) enables 64bit DMA and therefore dma_addr_t becomes of type u64. This makes 'incompatible pointer type' warnings inevitable. e.g. drivers/net/ethernet/sun/sunqe.c: In function ‘qec_ether_init’: drivers/net/ethernet/sun/sunqe.c:883: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ drivers/net/ethernet/sun/sunqe.c:885: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ This patch resolves above compiler warnings. Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com> Reviewed-by: chris hyser <chris.hyser@oracle.com> --- drivers/net/ethernet/sun/sunqe.c | 11 ++++++----- drivers/net/ethernet/sun/sunqe.h | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/sun/sunqe.c b/drivers/net/ethernet/sun/sunqe.c index 9b825780..9582948 100644 --- a/drivers/net/ethernet/sun/sunqe.c +++ b/drivers/net/ethernet/sun/sunqe.c @@ -124,7 +124,7 @@ static void qe_init_rings(struct sunqe *qep) { struct qe_init_block *qb = qep->qe_block; struct sunqe_buffers *qbufs = qep->buffers; - __u32 qbufs_dvma = qep->buffers_dvma; + __u32 qbufs_dvma = (__u32)qep->buffers_dvma; int i; qep->rx_new = qep->rx_old = qep->tx_new = qep->tx_old = 0; @@ -144,6 +144,7 @@ static int qe_init(struct sunqe *qep, int from_irq) void __iomem *mregs = qep->mregs; void __iomem *gregs = qecp->gregs; unsigned char *e = &qep->dev->dev_addr[0]; + __u32 qblk_dvma = (__u32)qep->qblock_dvma; u32 tmp; int i; @@ -152,8 +153,8 @@ static int qe_init(struct sunqe *qep, int from_irq) return -EAGAIN; /* Setup initial rx/tx init block pointers. */ - sbus_writel(qep->qblock_dvma + qib_offset(qe_rxd, 0), cregs + CREG_RXDS); - sbus_writel(qep->qblock_dvma + qib_offset(qe_txd, 0), cregs + CREG_TXDS); + sbus_writel(qblk_dvma + qib_offset(qe_rxd, 0), cregs + CREG_RXDS); + sbus_writel(qblk_dvma + qib_offset(qe_txd, 0), cregs + CREG_TXDS); /* Enable/mask the various irq's. */ sbus_writel(0, cregs + CREG_RIMASK); @@ -413,7 +414,7 @@ static void qe_rx(struct sunqe *qep) struct net_device *dev = qep->dev; struct qe_rxd *this; struct sunqe_buffers *qbufs = qep->buffers; - __u32 qbufs_dvma = qep->buffers_dvma; + __u32 qbufs_dvma = (__u32)qep->buffers_dvma; int elem = qep->rx_new; u32 flags; @@ -572,7 +573,7 @@ static int qe_start_xmit(struct sk_buff *skb, struct net_device *dev) { struct sunqe *qep = netdev_priv(dev); struct sunqe_buffers *qbufs = qep->buffers; - __u32 txbuf_dvma, qbufs_dvma = qep->buffers_dvma; + __u32 txbuf_dvma, qbufs_dvma = (__u32)qep->buffers_dvma; unsigned char *txbuf; int len, entry; diff --git a/drivers/net/ethernet/sun/sunqe.h b/drivers/net/ethernet/sun/sunqe.h index 581781b..ae190b7 100644 --- a/drivers/net/ethernet/sun/sunqe.h +++ b/drivers/net/ethernet/sun/sunqe.h @@ -334,12 +334,12 @@ struct sunqe { void __iomem *qcregs; /* QEC per-channel Registers */ void __iomem *mregs; /* Per-channel MACE Registers */ struct qe_init_block *qe_block; /* RX and TX descriptors */ - __u32 qblock_dvma; /* RX and TX descriptors */ + dma_addr_t qblock_dvma; /* RX and TX descriptors */ spinlock_t lock; /* Protects txfull state */ int rx_new, rx_old; /* RX ring extents */ int tx_new, tx_old; /* TX ring extents */ struct sunqe_buffers *buffers; /* CPU visible address. */ - __u32 buffers_dvma; /* DVMA visible address. */ + dma_addr_t buffers_dvma; /* DVMA visible address. */ struct sunqec *parent; u8 mconfig; /* Base MACE mconfig value */ struct platform_device *op; /* QE's OF device struct */ -- 1.9.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 1/2] sunqe: Fix compiler warnings @ 2016-10-17 20:56 ` Tushar Dave 0 siblings, 0 replies; 11+ messages in thread From: Tushar Dave @ 2016-10-17 20:56 UTC (permalink / raw) To: sparclinux; +Cc: chris.hyser, linux-kernel sunqe uses '__u32' for dma handle while invoking kernel DMA APIs, instead of using dma_addr_t. This hasn't caused any 'incompatible pointer type' warning on SPARC because until now dma_addr_t is of type u32. However, recent changes in SPARC ATU (iommu) enables 64bit DMA and therefore dma_addr_t becomes of type u64. This makes 'incompatible pointer type' warnings inevitable. e.g. drivers/net/ethernet/sun/sunqe.c: In function ‘qec_ether_init’: drivers/net/ethernet/sun/sunqe.c:883: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ drivers/net/ethernet/sun/sunqe.c:885: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ This patch resolves above compiler warnings. Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com> Reviewed-by: chris hyser <chris.hyser@oracle.com> --- drivers/net/ethernet/sun/sunqe.c | 11 ++++++----- drivers/net/ethernet/sun/sunqe.h | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/sun/sunqe.c b/drivers/net/ethernet/sun/sunqe.c index 9b825780..9582948 100644 --- a/drivers/net/ethernet/sun/sunqe.c +++ b/drivers/net/ethernet/sun/sunqe.c @@ -124,7 +124,7 @@ static void qe_init_rings(struct sunqe *qep) { struct qe_init_block *qb = qep->qe_block; struct sunqe_buffers *qbufs = qep->buffers; - __u32 qbufs_dvma = qep->buffers_dvma; + __u32 qbufs_dvma = (__u32)qep->buffers_dvma; int i; qep->rx_new = qep->rx_old = qep->tx_new = qep->tx_old = 0; @@ -144,6 +144,7 @@ static int qe_init(struct sunqe *qep, int from_irq) void __iomem *mregs = qep->mregs; void __iomem *gregs = qecp->gregs; unsigned char *e = &qep->dev->dev_addr[0]; + __u32 qblk_dvma = (__u32)qep->qblock_dvma; u32 tmp; int i; @@ -152,8 +153,8 @@ static int qe_init(struct sunqe *qep, int from_irq) return -EAGAIN; /* Setup initial rx/tx init block pointers. */ - sbus_writel(qep->qblock_dvma + qib_offset(qe_rxd, 0), cregs + CREG_RXDS); - sbus_writel(qep->qblock_dvma + qib_offset(qe_txd, 0), cregs + CREG_TXDS); + sbus_writel(qblk_dvma + qib_offset(qe_rxd, 0), cregs + CREG_RXDS); + sbus_writel(qblk_dvma + qib_offset(qe_txd, 0), cregs + CREG_TXDS); /* Enable/mask the various irq's. */ sbus_writel(0, cregs + CREG_RIMASK); @@ -413,7 +414,7 @@ static void qe_rx(struct sunqe *qep) struct net_device *dev = qep->dev; struct qe_rxd *this; struct sunqe_buffers *qbufs = qep->buffers; - __u32 qbufs_dvma = qep->buffers_dvma; + __u32 qbufs_dvma = (__u32)qep->buffers_dvma; int elem = qep->rx_new; u32 flags; @@ -572,7 +573,7 @@ static int qe_start_xmit(struct sk_buff *skb, struct net_device *dev) { struct sunqe *qep = netdev_priv(dev); struct sunqe_buffers *qbufs = qep->buffers; - __u32 txbuf_dvma, qbufs_dvma = qep->buffers_dvma; + __u32 txbuf_dvma, qbufs_dvma = (__u32)qep->buffers_dvma; unsigned char *txbuf; int len, entry; diff --git a/drivers/net/ethernet/sun/sunqe.h b/drivers/net/ethernet/sun/sunqe.h index 581781b..ae190b7 100644 --- a/drivers/net/ethernet/sun/sunqe.h +++ b/drivers/net/ethernet/sun/sunqe.h @@ -334,12 +334,12 @@ struct sunqe { void __iomem *qcregs; /* QEC per-channel Registers */ void __iomem *mregs; /* Per-channel MACE Registers */ struct qe_init_block *qe_block; /* RX and TX descriptors */ - __u32 qblock_dvma; /* RX and TX descriptors */ + dma_addr_t qblock_dvma; /* RX and TX descriptors */ spinlock_t lock; /* Protects txfull state */ int rx_new, rx_old; /* RX ring extents */ int tx_new, tx_old; /* TX ring extents */ struct sunqe_buffers *buffers; /* CPU visible address. */ - __u32 buffers_dvma; /* DVMA visible address. */ + dma_addr_t buffers_dvma; /* DVMA visible address. */ struct sunqec *parent; u8 mconfig; /* Base MACE mconfig value */ struct platform_device *op; /* QE's OF device struct */ -- 1.9.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] sunqe: Fix compiler warnings 2016-10-17 20:56 ` Tushar Dave @ 2016-11-18 19:29 ` David Miller -1 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2016-11-18 19:29 UTC (permalink / raw) To: tushar.n.dave; +Cc: sparclinux, chris.hyser, linux-kernel From: Tushar Dave <tushar.n.dave@oracle.com> Date: Mon, 17 Oct 2016 13:56:59 -0700 > sunqe uses '__u32' for dma handle while invoking kernel DMA APIs, > instead of using dma_addr_t. This hasn't caused any 'incompatible > pointer type' warning on SPARC because until now dma_addr_t is of > type u32. However, recent changes in SPARC ATU (iommu) enables 64bit > DMA and therefore dma_addr_t becomes of type u64. This makes > 'incompatible pointer type' warnings inevitable. > > e.g. > drivers/net/ethernet/sun/sunqe.c: In function ‘qec_ether_init’: > drivers/net/ethernet/sun/sunqe.c:883: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type > ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ > drivers/net/ethernet/sun/sunqe.c:885: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type > ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ > > This patch resolves above compiler warnings. > > Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com> > Reviewed-by: chris hyser <chris.hyser@oracle.com> Aplpied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] sunqe: Fix compiler warnings @ 2016-11-18 19:29 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2016-11-18 19:29 UTC (permalink / raw) To: tushar.n.dave; +Cc: sparclinux, chris.hyser, linux-kernel RnJvbTogVHVzaGFyIERhdmUgPHR1c2hhci5uLmRhdmVAb3JhY2xlLmNvbT4NCkRhdGU6IE1vbiwg MTcgT2N0IDIwMTYgMTM6NTY6NTkgLTA3MDANCg0KPiBzdW5xZSB1c2VzICdfX3UzMicgZm9yIGRt YSBoYW5kbGUgd2hpbGUgaW52b2tpbmcga2VybmVsIERNQSBBUElzLA0KPiBpbnN0ZWFkIG9mIHVz aW5nIGRtYV9hZGRyX3QuIFRoaXMgaGFzbid0IGNhdXNlZCBhbnkgJ2luY29tcGF0aWJsZQ0KPiBw b2ludGVyIHR5cGUnIHdhcm5pbmcgb24gU1BBUkMgYmVjYXVzZSB1bnRpbCBub3cgZG1hX2FkZHJf dCBpcyBvZg0KPiB0eXBlIHUzMi4gSG93ZXZlciwgcmVjZW50IGNoYW5nZXMgaW4gU1BBUkMgQVRV IChpb21tdSkgZW5hYmxlcyA2NGJpdA0KPiBETUEgYW5kIHRoZXJlZm9yZSBkbWFfYWRkcl90IGJl Y29tZXMgb2YgdHlwZSB1NjQuIFRoaXMgbWFrZXMNCj4gJ2luY29tcGF0aWJsZSBwb2ludGVyIHR5 cGUnIHdhcm5pbmdzIGluZXZpdGFibGUuDQo+IA0KPiBlLmcuDQo+IGRyaXZlcnMvbmV0L2V0aGVy bmV0L3N1bi9zdW5xZS5jOiBJbiBmdW5jdGlvbiChcWVjX2V0aGVyX2luaXSiOg0KPiBkcml2ZXJz L25ldC9ldGhlcm5ldC9zdW4vc3VucWUuYzo4ODM6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQg MyBvZiChZG1hX2FsbG9jX2NvaGVyZW50oiBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUN Cj4gLi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmg6NDQ1OiBub3RlOiBleHBlY3RlZCChZG1h X2FkZHJfdCAqoiBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSChX191MzIgKqINCj4gZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3VuL3N1bnFlLmM6ODg1OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDMg b2YgoWRtYV9hbGxvY19jb2hlcmVudKIgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlDQo+ IC4vaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oOjQ0NTogbm90ZTogZXhwZWN0ZWQgoWRtYV9h ZGRyX3QgKqIgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUgoV9fdTMyICqiDQo+IA0KPiBUaGlzIHBh dGNoIHJlc29sdmVzIGFib3ZlIGNvbXBpbGVyIHdhcm5pbmdzLg0KPiANCj4gU2lnbmVkLW9mZi1i eTogVHVzaGFyIERhdmUgPHR1c2hhci5uLmRhdmVAb3JhY2xlLmNvbT4NCj4gUmV2aWV3ZWQtYnk6 IGNocmlzIGh5c2VyIDxjaHJpcy5oeXNlckBvcmFjbGUuY29tPg0KDQpBcGxwaWVkLg0K ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/2] sunbmac: Fix compiler warning 2016-10-17 20:56 ` Tushar Dave @ 2016-10-17 20:57 ` Tushar Dave -1 siblings, 0 replies; 11+ messages in thread From: Tushar Dave @ 2016-10-17 20:57 UTC (permalink / raw) To: sparclinux; +Cc: chris.hyser, linux-kernel sunbmac uses '__u32' for dma handle while invoking kernel DMA APIs, instead of using dma_addr_t. This hasn't caused any 'incompatible pointer type' warning on SPARC because until now dma_addr_t is of type u32. However, recent changes in SPARC ATU (iommu) enables 64bit DMA and therefore dma_addr_t becomes of type u64. This makes 'incompatible pointer type' warnings inevitable. e.g. drivers/net/ethernet/sun/sunbmac.c: In function ‘bigmac_ether_init’: drivers/net/ethernet/sun/sunbmac.c:1166: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ This patch resolves above compiler warning. Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com> Reviewed-by: chris hyser <chris.hyser@oracle.com> --- drivers/net/ethernet/sun/sunbmac.c | 5 +++-- drivers/net/ethernet/sun/sunbmac.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/sun/sunbmac.c b/drivers/net/ethernet/sun/sunbmac.c index aa4f9d2..02f4527 100644 --- a/drivers/net/ethernet/sun/sunbmac.c +++ b/drivers/net/ethernet/sun/sunbmac.c @@ -623,6 +623,7 @@ static int bigmac_init_hw(struct bigmac *bp, int from_irq) void __iomem *gregs = bp->gregs; void __iomem *cregs = bp->creg; void __iomem *bregs = bp->bregs; + __u32 bblk_dvma = (__u32)bp->bblock_dvma; unsigned char *e = &bp->dev->dev_addr[0]; /* Latch current counters into statistics. */ @@ -671,9 +672,9 @@ static int bigmac_init_hw(struct bigmac *bp, int from_irq) bregs + BMAC_XIFCFG); /* Tell the QEC where the ring descriptors are. */ - sbus_writel(bp->bblock_dvma + bib_offset(be_rxd, 0), + sbus_writel(bblk_dvma + bib_offset(be_rxd, 0), cregs + CREG_RXDS); - sbus_writel(bp->bblock_dvma + bib_offset(be_txd, 0), + sbus_writel(bblk_dvma + bib_offset(be_txd, 0), cregs + CREG_TXDS); /* Setup the FIFO pointers into QEC local memory. */ diff --git a/drivers/net/ethernet/sun/sunbmac.h b/drivers/net/ethernet/sun/sunbmac.h index 06dd217..532fc56 100644 --- a/drivers/net/ethernet/sun/sunbmac.h +++ b/drivers/net/ethernet/sun/sunbmac.h @@ -291,7 +291,7 @@ struct bigmac { void __iomem *bregs; /* BigMAC Registers */ void __iomem *tregs; /* BigMAC Transceiver */ struct bmac_init_block *bmac_block; /* RX and TX descriptors */ - __u32 bblock_dvma; /* RX and TX descriptors */ + dma_addr_t bblock_dvma; /* RX and TX descriptors */ spinlock_t lock; -- 1.9.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/2] sunbmac: Fix compiler warning @ 2016-10-17 20:57 ` Tushar Dave 0 siblings, 0 replies; 11+ messages in thread From: Tushar Dave @ 2016-10-17 20:57 UTC (permalink / raw) To: sparclinux; +Cc: chris.hyser, linux-kernel sunbmac uses '__u32' for dma handle while invoking kernel DMA APIs, instead of using dma_addr_t. This hasn't caused any 'incompatible pointer type' warning on SPARC because until now dma_addr_t is of type u32. However, recent changes in SPARC ATU (iommu) enables 64bit DMA and therefore dma_addr_t becomes of type u64. This makes 'incompatible pointer type' warnings inevitable. e.g. drivers/net/ethernet/sun/sunbmac.c: In function ‘bigmac_ether_init’: drivers/net/ethernet/sun/sunbmac.c:1166: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ This patch resolves above compiler warning. Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com> Reviewed-by: chris hyser <chris.hyser@oracle.com> --- drivers/net/ethernet/sun/sunbmac.c | 5 +++-- drivers/net/ethernet/sun/sunbmac.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/sun/sunbmac.c b/drivers/net/ethernet/sun/sunbmac.c index aa4f9d2..02f4527 100644 --- a/drivers/net/ethernet/sun/sunbmac.c +++ b/drivers/net/ethernet/sun/sunbmac.c @@ -623,6 +623,7 @@ static int bigmac_init_hw(struct bigmac *bp, int from_irq) void __iomem *gregs = bp->gregs; void __iomem *cregs = bp->creg; void __iomem *bregs = bp->bregs; + __u32 bblk_dvma = (__u32)bp->bblock_dvma; unsigned char *e = &bp->dev->dev_addr[0]; /* Latch current counters into statistics. */ @@ -671,9 +672,9 @@ static int bigmac_init_hw(struct bigmac *bp, int from_irq) bregs + BMAC_XIFCFG); /* Tell the QEC where the ring descriptors are. */ - sbus_writel(bp->bblock_dvma + bib_offset(be_rxd, 0), + sbus_writel(bblk_dvma + bib_offset(be_rxd, 0), cregs + CREG_RXDS); - sbus_writel(bp->bblock_dvma + bib_offset(be_txd, 0), + sbus_writel(bblk_dvma + bib_offset(be_txd, 0), cregs + CREG_TXDS); /* Setup the FIFO pointers into QEC local memory. */ diff --git a/drivers/net/ethernet/sun/sunbmac.h b/drivers/net/ethernet/sun/sunbmac.h index 06dd217..532fc56 100644 --- a/drivers/net/ethernet/sun/sunbmac.h +++ b/drivers/net/ethernet/sun/sunbmac.h @@ -291,7 +291,7 @@ struct bigmac { void __iomem *bregs; /* BigMAC Registers */ void __iomem *tregs; /* BigMAC Transceiver */ struct bmac_init_block *bmac_block; /* RX and TX descriptors */ - __u32 bblock_dvma; /* RX and TX descriptors */ + dma_addr_t bblock_dvma; /* RX and TX descriptors */ spinlock_t lock; -- 1.9.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] sunbmac: Fix compiler warning 2016-10-17 20:57 ` Tushar Dave @ 2016-11-18 19:29 ` David Miller -1 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2016-11-18 19:29 UTC (permalink / raw) To: tushar.n.dave; +Cc: sparclinux, chris.hyser, linux-kernel From: Tushar Dave <tushar.n.dave@oracle.com> Date: Mon, 17 Oct 2016 13:57:00 -0700 > sunbmac uses '__u32' for dma handle while invoking kernel DMA APIs, > instead of using dma_addr_t. This hasn't caused any 'incompatible > pointer type' warning on SPARC because until now dma_addr_t is of > type u32. However, recent changes in SPARC ATU (iommu) enables 64bit > DMA and therefore dma_addr_t becomes of type u64. This makes > 'incompatible pointer type' warnings inevitable. > > e.g. > drivers/net/ethernet/sun/sunbmac.c: In function ‘bigmac_ether_init’: > drivers/net/ethernet/sun/sunbmac.c:1166: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type > ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ > > This patch resolves above compiler warning. > > Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com> > Reviewed-by: chris hyser <chris.hyser@oracle.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] sunbmac: Fix compiler warning @ 2016-11-18 19:29 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2016-11-18 19:29 UTC (permalink / raw) To: tushar.n.dave; +Cc: sparclinux, chris.hyser, linux-kernel RnJvbTogVHVzaGFyIERhdmUgPHR1c2hhci5uLmRhdmVAb3JhY2xlLmNvbT4NCkRhdGU6IE1vbiwg MTcgT2N0IDIwMTYgMTM6NTc6MDAgLTA3MDANCg0KPiBzdW5ibWFjIHVzZXMgJ19fdTMyJyBmb3Ig ZG1hIGhhbmRsZSB3aGlsZSBpbnZva2luZyBrZXJuZWwgRE1BIEFQSXMsDQo+IGluc3RlYWQgb2Yg dXNpbmcgZG1hX2FkZHJfdC4gVGhpcyBoYXNuJ3QgY2F1c2VkIGFueSAnaW5jb21wYXRpYmxlDQo+ IHBvaW50ZXIgdHlwZScgd2FybmluZyBvbiBTUEFSQyBiZWNhdXNlIHVudGlsIG5vdyBkbWFfYWRk cl90IGlzIG9mDQo+IHR5cGUgdTMyLiBIb3dldmVyLCByZWNlbnQgY2hhbmdlcyBpbiBTUEFSQyBB VFUgKGlvbW11KSBlbmFibGVzIDY0Yml0DQo+IERNQSBhbmQgdGhlcmVmb3JlIGRtYV9hZGRyX3Qg YmVjb21lcyBvZiB0eXBlIHU2NC4gVGhpcyBtYWtlcw0KPiAnaW5jb21wYXRpYmxlIHBvaW50ZXIg dHlwZScgd2FybmluZ3MgaW5ldml0YWJsZS4NCj4gDQo+IGUuZy4NCj4gZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3VuL3N1bmJtYWMuYzogSW4gZnVuY3Rpb24goWJpZ21hY19ldGhlcl9pbml0ojoNCj4g ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3VuL3N1bmJtYWMuYzoxMTY2OiB3YXJuaW5nOiBwYXNzaW5n IGFyZ3VtZW50IDMgb2YgoWRtYV9hbGxvY19jb2hlcmVudKIgZnJvbSBpbmNvbXBhdGlibGUgcG9p bnRlciB0eXBlDQo+IC4vaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oOjQ0NTogbm90ZTogZXhw ZWN0ZWQgoWRtYV9hZGRyX3QgKqIgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUgoV9fdTMyICqiDQo+ IA0KPiBUaGlzIHBhdGNoIHJlc29sdmVzIGFib3ZlIGNvbXBpbGVyIHdhcm5pbmcuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBUdXNoYXIgRGF2ZSA8dHVzaGFyLm4uZGF2ZUBvcmFjbGUuY29tPg0KPiBS ZXZpZXdlZC1ieTogY2hyaXMgaHlzZXIgPGNocmlzLmh5c2VyQG9yYWNsZS5jb20+DQoNCkFwcGxp ZWQuDQo ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 0/2] net: Fix compiler warnings @ 2016-10-15 0:06 Tushar Dave 2016-10-15 0:06 ` [PATCH 1/2] sunqe: " Tushar Dave 0 siblings, 1 reply; 11+ messages in thread From: Tushar Dave @ 2016-10-15 0:06 UTC (permalink / raw) To: netdev; +Cc: chris.hyser, linux-kernel Recently, ATU (iommu) changes are submitted to linux-sparc that enables 64bit DMA on SPARC. However, this change also makes 'incompatible pointer type' compiler warnings inevitable on sunqe and sunbmac driver. The two patches in series fix compiler warnings. Tushar Dave (2): sunqe: Fix compiler warnings sunbmac: Fix compiler warning drivers/net/ethernet/sun/sunbmac.c | 5 +++-- drivers/net/ethernet/sun/sunbmac.h | 2 +- drivers/net/ethernet/sun/sunqe.c | 11 ++++++----- drivers/net/ethernet/sun/sunqe.h | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] sunqe: Fix compiler warnings 2016-10-15 0:06 [PATCH 0/2] net: Fix compiler warnings Tushar Dave @ 2016-10-15 0:06 ` Tushar Dave 0 siblings, 0 replies; 11+ messages in thread From: Tushar Dave @ 2016-10-15 0:06 UTC (permalink / raw) To: netdev; +Cc: chris.hyser, linux-kernel sunqe uses '__u32' for dma handle while invoking kernel DMA APIs, instead of using dma_addr_t. This hasn't caused any 'incompatible pointer type' warning on SPARC because until now dma_addr_t is of type u32. However, recent changes in SPARC ATU (iommu) enables 64bit DMA and therefore dma_addr_t becomes of type u64. This makes 'incompatible pointer type' warnings inevitable. e.g. drivers/net/ethernet/sun/sunqe.c: In function ‘qec_ether_init’: drivers/net/ethernet/sun/sunqe.c:883: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ drivers/net/ethernet/sun/sunqe.c:885: warning: passing argument 3 of ‘dma_alloc_coherent’ from incompatible pointer type ./include/linux/dma-mapping.h:445: note: expected ‘dma_addr_t *’ but argument is of type ‘__u32 *’ This patch resolves above compiler warnings. Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com> Reviewed-by: chris hyser <chris.hyser@oracle.com> --- drivers/net/ethernet/sun/sunqe.c | 11 ++++++----- drivers/net/ethernet/sun/sunqe.h | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/sun/sunqe.c b/drivers/net/ethernet/sun/sunqe.c index 9b825780..9582948 100644 --- a/drivers/net/ethernet/sun/sunqe.c +++ b/drivers/net/ethernet/sun/sunqe.c @@ -124,7 +124,7 @@ static void qe_init_rings(struct sunqe *qep) { struct qe_init_block *qb = qep->qe_block; struct sunqe_buffers *qbufs = qep->buffers; - __u32 qbufs_dvma = qep->buffers_dvma; + __u32 qbufs_dvma = (__u32)qep->buffers_dvma; int i; qep->rx_new = qep->rx_old = qep->tx_new = qep->tx_old = 0; @@ -144,6 +144,7 @@ static int qe_init(struct sunqe *qep, int from_irq) void __iomem *mregs = qep->mregs; void __iomem *gregs = qecp->gregs; unsigned char *e = &qep->dev->dev_addr[0]; + __u32 qblk_dvma = (__u32)qep->qblock_dvma; u32 tmp; int i; @@ -152,8 +153,8 @@ static int qe_init(struct sunqe *qep, int from_irq) return -EAGAIN; /* Setup initial rx/tx init block pointers. */ - sbus_writel(qep->qblock_dvma + qib_offset(qe_rxd, 0), cregs + CREG_RXDS); - sbus_writel(qep->qblock_dvma + qib_offset(qe_txd, 0), cregs + CREG_TXDS); + sbus_writel(qblk_dvma + qib_offset(qe_rxd, 0), cregs + CREG_RXDS); + sbus_writel(qblk_dvma + qib_offset(qe_txd, 0), cregs + CREG_TXDS); /* Enable/mask the various irq's. */ sbus_writel(0, cregs + CREG_RIMASK); @@ -413,7 +414,7 @@ static void qe_rx(struct sunqe *qep) struct net_device *dev = qep->dev; struct qe_rxd *this; struct sunqe_buffers *qbufs = qep->buffers; - __u32 qbufs_dvma = qep->buffers_dvma; + __u32 qbufs_dvma = (__u32)qep->buffers_dvma; int elem = qep->rx_new; u32 flags; @@ -572,7 +573,7 @@ static int qe_start_xmit(struct sk_buff *skb, struct net_device *dev) { struct sunqe *qep = netdev_priv(dev); struct sunqe_buffers *qbufs = qep->buffers; - __u32 txbuf_dvma, qbufs_dvma = qep->buffers_dvma; + __u32 txbuf_dvma, qbufs_dvma = (__u32)qep->buffers_dvma; unsigned char *txbuf; int len, entry; diff --git a/drivers/net/ethernet/sun/sunqe.h b/drivers/net/ethernet/sun/sunqe.h index 581781b..ae190b7 100644 --- a/drivers/net/ethernet/sun/sunqe.h +++ b/drivers/net/ethernet/sun/sunqe.h @@ -334,12 +334,12 @@ struct sunqe { void __iomem *qcregs; /* QEC per-channel Registers */ void __iomem *mregs; /* Per-channel MACE Registers */ struct qe_init_block *qe_block; /* RX and TX descriptors */ - __u32 qblock_dvma; /* RX and TX descriptors */ + dma_addr_t qblock_dvma; /* RX and TX descriptors */ spinlock_t lock; /* Protects txfull state */ int rx_new, rx_old; /* RX ring extents */ int tx_new, tx_old; /* TX ring extents */ struct sunqe_buffers *buffers; /* CPU visible address. */ - __u32 buffers_dvma; /* DVMA visible address. */ + dma_addr_t buffers_dvma; /* DVMA visible address. */ struct sunqec *parent; u8 mconfig; /* Base MACE mconfig value */ struct platform_device *op; /* QE's OF device struct */ -- 1.9.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-11-18 19:29 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-10-17 20:56 [PATCH 0/2] sparc/net: Fix compiler warnings Tushar Dave 2016-10-17 20:56 ` Tushar Dave 2016-10-17 20:56 ` [PATCH 1/2] sunqe: " Tushar Dave 2016-10-17 20:56 ` Tushar Dave 2016-11-18 19:29 ` David Miller 2016-11-18 19:29 ` David Miller 2016-10-17 20:57 ` [PATCH 2/2] sunbmac: Fix compiler warning Tushar Dave 2016-10-17 20:57 ` Tushar Dave 2016-11-18 19:29 ` David Miller 2016-11-18 19:29 ` David Miller -- strict thread matches above, loose matches on Subject: below -- 2016-10-15 0:06 [PATCH 0/2] net: Fix compiler warnings Tushar Dave 2016-10-15 0:06 ` [PATCH 1/2] sunqe: " Tushar Dave
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.