summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJ. German Rivera <Jose.G.Rivera@freescale.com>2013-10-02 22:22:36 (GMT)
committerJ. German Rivera <German.Rivera@freescale.com>2013-10-02 22:22:36 (GMT)
commit3914c4dd5aa3ed90483b35ea097f43f2f63b1920 (patch)
treeeb108dea78684774736ce244b8889e41c97f5696 /drivers
parentd103ca95cb3fbde0aaae4ca8a8be727d7e2bed71 (diff)
parenta2f50a55e334ee321b49f33746930c606b16e1f8 (diff)
downloadlinux-fsl-qoriq-3914c4dd5aa3ed90483b35ea097f43f2f63b1920.tar.xz
Merge branch 'sdk-kernel-3.8'
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/freescale/dpa/Kconfig2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth.c8
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c2
-rw-r--r--drivers/pci/quirks.c10
-rw-r--r--drivers/staging/fsl_dpa_offload/dpa_classifier.c16
-rw-r--r--drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c6
-rw-r--r--drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c2
11 files changed, 21 insertions, 33 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/Kconfig b/drivers/net/ethernet/freescale/dpa/Kconfig
index 3c91e93..7d0f596 100644
--- a/drivers/net/ethernet/freescale/dpa/Kconfig
+++ b/drivers/net/ethernet/freescale/dpa/Kconfig
@@ -45,6 +45,7 @@ choice FSL_DPAA_ETH_OPTIMIZE
config FSL_DPAA_ETH_OPTIMIZE_FOR_TERM
bool "Optimize for termination"
+ select FSL_DPAA_TX_RECYCLE if FMAN_T4240
select FSL_DPAA_ETH_SG_SUPPORT
---help---
Optimize the DPAA-Ethernet driver for termination (TCP, UDP) use-cases.
@@ -54,6 +55,7 @@ endchoice
config FSL_DPAA_TX_RECYCLE
bool
+ depends on FSL_DPAA_ETH
depends on FMAN_T4240
config FSL_DPAA_1588
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
index f540e94..7e04f25 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
@@ -481,7 +481,7 @@ static void dpaa_eth_napi_enable(struct dpa_priv_s *priv)
struct dpa_percpu_priv_s *percpu_priv;
int i;
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
napi_enable(&percpu_priv->napi);
}
@@ -492,7 +492,7 @@ static void dpaa_eth_napi_disable(struct dpa_priv_s *priv)
struct dpa_percpu_priv_s *percpu_priv;
int i;
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
napi_disable(&percpu_priv->napi);
}
@@ -584,7 +584,7 @@ static int dpa_private_netdev_init(struct device_node *dpa_node,
/* Although we access another CPU's private data here
* we do it at initialization so it is safe
*/
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
percpu_priv->net_dev = net_dev;
@@ -822,7 +822,7 @@ dpaa_eth_priv_probe(struct platform_device *_of_dev)
err = -ENOMEM;
goto alloc_percpu_failed;
}
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
memset(percpu_priv, 0, sizeof(*percpu_priv));
}
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
index 892b333..e04b3b7 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
@@ -220,7 +220,7 @@ dpa_get_stats64(struct net_device *net_dev,
struct dpa_percpu_priv_s *percpu_priv;
int numstats = sizeof(struct rtnl_link_stats64) / sizeof(u64);
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
cpustats = (u64 *)&percpu_priv->stats;
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c
index 0e89aed..8065a81 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c
@@ -335,7 +335,7 @@ static int dpaa_eth_macless_probe(struct platform_device *_of_dev)
err = -ENOMEM;
goto alloc_percpu_failed;
}
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
memset(percpu_priv, 0, sizeof(*percpu_priv));
}
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c
index b4d26ce..f1f9fce 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c
@@ -138,7 +138,7 @@ int dpa_bp_priv_seed(struct dpa_bp *dpa_bp)
dpa_bp->size = default_buf_size;
/* Give each cpu an allotment of "count" buffers */
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
int j;
for (j = 0; j < dpa_bp->target_count; j += 8)
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
index fff3926..38580c9 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
@@ -135,7 +135,7 @@ int dpa_bp_priv_seed(struct dpa_bp *dpa_bp)
int i;
/* Give each CPU an allotment of "config_count" buffers */
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
int j;
/* Although we access another CPU's counters here
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c
index 565b46e..300c456 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c
@@ -693,7 +693,7 @@ dpaa_eth_shared_probe(struct platform_device *_of_dev)
err = -ENOMEM;
goto alloc_percpu_failed;
}
- for_each_online_cpu(i) {
+ for_each_possible_cpu(i) {
percpu_priv = per_cpu_ptr(priv->percpu_priv, i);
memset(percpu_priv, 0, sizeof(*percpu_priv));
}
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 5088639..0369fb6 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2794,16 +2794,6 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x342e, vtd_mask_spec_errors);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x3c28, vtd_mask_spec_errors);
#endif
-#ifdef CONFIG_FSL_PCI
-static void quirk_freescale_class(struct pci_dev *dev)
-{
- dev_info(&dev->dev, "Setting PCI class for FSL PCI host bridge\n");
- dev->class = (PCI_CLASS_BRIDGE_PCI << 8) | (dev->class & 0xff);
-}
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID,
- quirk_freescale_class);
-#endif
-
static void fixup_ti816x_class(struct pci_dev *dev)
{
/* TI 816x devices do not have class code set when in PCIe boot mode */
diff --git a/drivers/staging/fsl_dpa_offload/dpa_classifier.c b/drivers/staging/fsl_dpa_offload/dpa_classifier.c
index 751dacd..5f7c7f7 100644
--- a/drivers/staging/fsl_dpa_offload/dpa_classifier.c
+++ b/drivers/staging/fsl_dpa_offload/dpa_classifier.c
@@ -2784,10 +2784,6 @@ static int action_to_next_engine_params(const struct dpa_cls_tbl_action *action,
next_engine_params->nextEngine = e_FM_PCD_DONE;
next_engine_params->params.enqueueParams.action =
e_FM_PCD_DROP_FRAME;
- if (action->enable_statistics)
- next_engine_params->statisticsEn =
- TRUE;
-
break;
case DPA_CLS_TBL_ACTION_ENQ:
if (distribution && classification) {
@@ -2863,10 +2859,6 @@ static int action_to_next_engine_params(const struct dpa_cls_tbl_action *action,
action->enq_params.new_rel_vsp_id;
#endif
}
-
- if (action->enable_statistics)
- next_engine_params->statisticsEn =
- TRUE;
}
if (action->enq_params.hmd != DPA_OFFLD_DESC_NONE) {
@@ -2980,6 +2972,9 @@ static int action_to_next_engine_params(const struct dpa_cls_tbl_action *action,
return -EINVAL;
}
+ if (action->enable_statistics)
+ next_engine_params->statisticsEn = TRUE;
+
dpa_cls_dbg(("DEBUG: dpa_classifier %s (%d) <--\n", __func__,
__LINE__));
@@ -7485,8 +7480,6 @@ int dpa_classif_mcast_create_group(
pgroup->entries[0].used = true;
pgroup->member_ids[0] = 0;
pgroup->num_members++;
-
- kfree(replic_grp_params);
} else {
pgroup->group = res->group_node;
/* mark prefilled members in index array member */
@@ -7499,6 +7492,8 @@ int dpa_classif_mcast_create_group(
pgroup->num_members = group_params->prefilled_members;
}
+ kfree(replic_grp_params);
+
if (!pgroup->group) {
log_err("Could not create %s group %d\n",
(group_params->prefilled_members > 0) ? "imported" :
@@ -7524,7 +7519,6 @@ dpa_classif_mcast_create_group_error:
}
*grpd = DPA_OFFLD_DESC_NONE;
- kfree(replic_grp_params);
return err;
}
diff --git a/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c b/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c
index 0d3ff7e..7b51e97 100644
--- a/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c
+++ b/drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c
@@ -1335,7 +1335,8 @@ free:
break;
}
default:
- pr_err("Invalid DPA IPsec ioctl\n");
+ pr_err("Invalid DPA IPsec ioctl (0x%x)\n", cmd);
+ ret = -EINVAL;
break;
}
@@ -1503,7 +1504,8 @@ free:
break;
}
default:
- pr_err("Invalid DPA IPsec ioctl\n");
+ pr_err("Invalid DPA IPsec ioctl (0x%x)\n", cmd);
+ ret = -EINVAL;
break;
}
diff --git a/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c b/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c
index b7fdf18..cf1d47c 100644
--- a/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c
+++ b/drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c
@@ -1045,7 +1045,7 @@ create_cls_counter_cleanup:
kfree(cnode->keys[i]);
}
/* Restore user-space pointers */
- tbl->keys = us_keys;
+ cnode->keys = us_keys;
break;
case DPA_STATS_CNT_IPSEC:
kfree(sa_ids);