summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMadalin Bucur <madalin.bucur@freescale.com>2014-03-27 16:51:07 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-03-31 19:52:46 (GMT)
commitdadddbefa7a9b123318a751a3bbc2b34ad34a56c (patch)
tree74d3cb7a9f6ed4c1355b734c1bc740f2fdecc504
parent8901a6c015c66cecd70b301f58bab9fc68a11d69 (diff)
downloadlinux-fsl-qoriq-dadddbefa7a9b123318a751a3bbc2b34ad34a56c.tar.xz
dpa_eth: fix issue in dpa_release_sgt()
ARRAY_SIZE() was used on non-array parameter. Moved parameter inside function as it was not used outside. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: Icd84ece1b1c4762bcaacf426cbd58a285fa98063 Reviewed-on: http://git.am.freescale.net:8181/10435 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Reviewed-by: Cristian-Constantin Sovaiala <Cristian.Sovaiala@freescale.com> Reviewed-by: Ruxandra Ioana Radulescu <ruxandra.radulescu@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c7
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h4
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c6
3 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
index d2fc5e2..0a5e1c7 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
@@ -1479,9 +1479,10 @@ void dpaa_eth_init_ports(struct mac_device *mac_dev,
fm_port_pcd_bind(rxport, &rx_port_pcd_param);
}
-void dpa_release_sgt(struct qm_sg_entry *sgt, struct bm_buffer *bmb)
+void dpa_release_sgt(struct qm_sg_entry *sgt)
{
struct dpa_bp *dpa_bp;
+ struct bm_buffer bmb[DPA_BUFF_RELEASE_MAX];
uint8_t i = 0, j;
do {
@@ -1510,7 +1511,7 @@ dpa_fd_release(const struct net_device *net_dev, const struct qm_fd *fd)
{
struct qm_sg_entry *sgt;
struct dpa_bp *_dpa_bp;
- struct bm_buffer _bmb, bmb[8];
+ struct bm_buffer _bmb;
_bmb.hi = fd->addr_hi;
_bmb.lo = fd->addr_lo;
@@ -1520,7 +1521,7 @@ dpa_fd_release(const struct net_device *net_dev, const struct qm_fd *fd)
if (fd->format == qm_fd_sg) {
sgt = (phys_to_virt(bm_buf_addr(&_bmb)) + dpa_fd_offset(fd));
- dpa_release_sgt(sgt, bmb);
+ dpa_release_sgt(sgt);
}
while (bman_release(_dpa_bp->pool, &_bmb, 1, 0))
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h
index fd654b7..5d9feae 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h
@@ -67,6 +67,7 @@
}
#define DPA_SGT_MAX_ENTRIES 16 /* maximum number of entries in SG Table */
+#define DPA_BUFF_RELEASE_MAX 8 /* maximum number of buffers released at once */
/* return codes for the dpaa-eth hooks */
enum dpaa_eth_hook_result {
@@ -200,8 +201,7 @@ void dpaa_eth_init_ports(struct mac_device *mac_dev,
struct fm_port_fqs *port_fqs,
struct dpa_buffer_layout_s *buf_layout,
struct device *dev);
-void dpa_release_sgt(struct qm_sg_entry *sgt,
- struct bm_buffer *bmb);
+void dpa_release_sgt(struct qm_sg_entry *sgt);
void __attribute__((nonnull))
dpa_fd_release(const struct net_device *net_dev, const struct qm_fd *fd);
void count_ern(struct dpa_percpu_priv_s *percpu_priv,
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c
index 2e10e33..f6671f9 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c
@@ -192,7 +192,7 @@ dpa_fd_release_sg(const struct net_device *net_dev,
const struct dpa_priv_s *priv;
struct qm_sg_entry *sgt;
struct dpa_bp *_dpa_bp;
- struct bm_buffer _bmb, bmb[8];
+ struct bm_buffer _bmb;
priv = netdev_priv(net_dev);
@@ -205,7 +205,7 @@ dpa_fd_release_sg(const struct net_device *net_dev,
if (_dpa_bp->vaddr) {
sgt = dpa_phys2virt(_dpa_bp, bm_buf_addr(&_bmb)) +
dpa_fd_offset(fd);
- dpa_release_sgt(sgt, bmb);
+ dpa_release_sgt(sgt);
} else {
sgt = kmalloc(DPA_SGT_MAX_ENTRIES * sizeof(*sgt), GFP_ATOMIC);
if (sgt == NULL) {
@@ -219,7 +219,7 @@ dpa_fd_release_sg(const struct net_device *net_dev,
dpa_fd_offset(fd),
min(DPA_SGT_MAX_ENTRIES * sizeof(*sgt),
_dpa_bp->size));
- dpa_release_sgt(sgt, bmb);
+ dpa_release_sgt(sgt);
kfree(sgt);
}