diff options
author | J. German Rivera <Jose.G.Rivera@freescale.com> | 2013-10-02 22:22:36 (GMT) |
---|---|---|
committer | J. German Rivera <German.Rivera@freescale.com> | 2013-10-02 22:22:36 (GMT) |
commit | 3914c4dd5aa3ed90483b35ea097f43f2f63b1920 (patch) | |
tree | eb108dea78684774736ce244b8889e41c97f5696 /drivers | |
parent | d103ca95cb3fbde0aaae4ca8a8be727d7e2bed71 (diff) | |
parent | a2f50a55e334ee321b49f33746930c606b16e1f8 (diff) | |
download | linux-fsl-qoriq-3914c4dd5aa3ed90483b35ea097f43f2f63b1920.tar.xz |
Merge branch 'sdk-kernel-3.8'
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/Kconfig | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth.c | 8 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_macless.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_shared.c | 2 | ||||
-rw-r--r-- | drivers/pci/quirks.c | 10 | ||||
-rw-r--r-- | drivers/staging/fsl_dpa_offload/dpa_classifier.c | 16 | ||||
-rw-r--r-- | drivers/staging/fsl_dpa_offload/wrp_dpa_ipsec.c | 6 | ||||
-rw-r--r-- | drivers/staging/fsl_dpa_offload/wrp_dpa_stats.c | 2 |
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); |