summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet
AgeCommit message (Collapse)Author
2015-03-11dpaa_eth: fix static declarations for onicRotariu Marian Cristian-B44860
The function should be properly declared as being extern or static. The lack of scope identifier will result in a sparse error. Change-Id: I32713c3c806ed6d14ae9c33d732fe42aec354b2f Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/20906 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32497
2015-03-11offline_port: convert dt into CPU endiannessRotariu Marian Cristian-B44860
The device tree values are stored in BE format by the dt compiler. In order to support different architectures, not only BE, the values read by the offline port driver should be converted into CPU endianness. This patch convert the dt values into CPU endianness and fixes some sparse errors related to endianness. Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Change-Id: Id7adce3b6f73619c58ac1cee9201bb63131f8d58 Reviewed-on: http://git.am.freescale.net:8181/21083 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32496
2015-03-11dpaa_eth: convert fq dts entries to CPU endianessRotariu Marian Cristian-B44860
The data related to fqs from dts are in BE. In order to be used by the CPU, the data need to be converted into CPU endianess. Because the current fqids structure is used in many ways and in many files, the code for endianess conversion is not localized. To make this patch as simple as possible, an intermediary variable was used. Change-Id: I1beec33fa3ce816899e3bb02e0cf88ed0b0d0520 Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/20964 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32495
2015-03-11dpaa_eth: fix forward declarations for maclessRotariu Marian Cristian-B44860
The function should be properly declared as being extern or static. The lack of scope identifier together with the lack of the forward declaration will result in a sparse error. Change-Id: I0b976be7c27d9b6ae66d1725433fb1aefcc407ba Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/20937 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32494
2015-03-11dpaa_eth: remove unnecessary conversionRotariu Marian Cristian-B44860
Protocol and nexthdr, variables from ipv4 and ipv6 layers, are 1 byte long, therefore no byte order conversion is needed. Change-Id: I487b044d9ad942cf39ccbb500318ae8d7d0d9e08 Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/20934 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32493
2015-03-11dpaa_eth: move static variable definitionRotariu Marian Cristian-B44860
The definition of any static variable should be in the header file. Error reported by sparse. Change-Id: Ic419e2cd80c05d1b4618d9260a61b6857aa4874a Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/20986 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32492
2015-03-11dpaa_eth: convert bp dts node in CPU endianessRotariu Marian Cristian-B44860
The addresses used to parse the device tree contain BE data as the entire device tree data. Because the CPU operates with bp data, conversion to CPU endianess is needed. Change-Id: I0f876bde5bbb9832f15289b6ecb192f6c3ba5f56 Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/20933 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32491
2015-03-11dpaa_eth: convert define into net byte orderRotariu Marian Cristian-B44860
All the constant definitions are used in CPU endianess and the skb fields are in network byte order. A conversion should be used. Signed-off-by: Rotariu Marian Cristian-B44860 <marian.rotariu@freescale.com> Change-Id: I0b07bb64b9cb2cf5c490e63152da0dd26e67131c Reviewed-on: http://git.am.freescale.net:8181/20985 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/32490
2015-03-09FMD: Reset FManV3L DEFAULT_totalFifoSize to default 156KJianhua Xie
In T1040RMDPAAAP_Rev.C, at page 103, Figure A-38 says that the Reset value of FMan_V3L of BMI Configuration 1 Register (FMBM_CFG1) is 0x026F0000, which implies that FBPS should be 0x26F = 623. So the size of free buffer pool is 624 * 256bytes = 156KB, and 156K = 5*0x6400 + 0xa00 + 2*0x3200 = 5*1G + 1*OH + 2*OP. So it is OK to most cases while keep the default reset value for FMBM_CFG1. Without this vaule, sometimes DPA Eth driver (offline port) and FMD driver might report errors like below while more than 1 offline ports are added in t1040rdb/qds dts. dpa-fman0-oh@2 { compatible = "fsl,dpa-oh"; /* Define frame queues for the OH port*/ /* <OH Rx error, OH Rx default> */ fsl,qman-frame-queues-oh = <0x68 1 0x69 1>; fsl,bman-buffer-pools = <&bp6>; fsl,qman-frame-queues-tx = <0x90 8>; fsl,fman-oh-port = <&fman0_oh2>; }; dpa-fman0-oh@3 { compatible = "fsl,dpa-oh"; fsl,bman-buffer-pools = <&bp6>; /* Define frame queues for the OH port*/ /* <OH Rx error, OH Rx default> */ fsl,qman-frame-queues-oh = <0x52 1 0x53 1>; fsl,fman-oh-port = <&fman0_oh3>; }; /* The following OP is used as inbound OP*/ dpa-fman0-oh@4 { compatible = "fsl,dpa-oh"; fsl,bman-buffer-pools = <&bp6>; /* Define frame queues for the OH port*/ /* <OH Rx error, OH Rx default> */ fsl,qman-frame-queues-oh = <0x54 1 0x55 1>; fsl,fman-oh-port = <&fman0_oh4>; }; DPA offline port reports errors as below: ...... fsl_dpa_proxy: FSL DPAA Proxy initialization driver () fsl_oh: FSL FMan Offline Parsing port driver () fsl_oh dpa-fman0-oh.24: Found OH node handle compatible with fsl,dpa-oh. fsl_oh dpa-fman0-oh.24: Allocating 0 ingress frame queues duples fsl_oh dpa-fman0-oh.24: OH port /soc@ffe000000/fman@400000/port@83000 enabled. fsl_oh dpa-fman0-oh.24: Default egress frame queue: 105 fsl_oh dpa-fman0-oh.24: Default error frame queue: 104 fsl_oh dpa-fman0-oh.24: Initialized queues: fsl_oh dpa-fman0-oh.25: Found OH node handle compatible with fsl,dpa-oh. fsl_oh dpa-fman0-oh.25: Allocating 0 ingress frame queues duples fsl_oh dpa-fman0-oh.25: OH port /soc@ffe000000/fman@400000/port@84000 enabled. fsl_oh dpa-fman0-oh.25: Default egress frame queue: 83 fsl_oh dpa-fman0-oh.25: Default error frame queue: 82 fsl_oh dpa-fman0-oh.25: Initialized queues: fsl_oh dpa-fman0-oh.26: Found OH node handle compatible with fsl,dpa-oh. fsl_oh dpa-fman0-oh.26: Allocating 0 ingress frame queues duples cpu1/1: ! MAJOR FM Error [CPU01, drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c:2669 FmSetSizeOfFifo]: Resource Is Unavailable; cpu1/1: Requested fifo size and extra size exceed total FIFO size.cpu1/1: cpu1/1: ! MAJOR FM Error [CPU01, drivers/net/ethernet/freescale/fman/Peripherals/FM/fm.c:2060 FmGetSetPortParams]: Resource Is Unavailable; cpu1/1: cpu1/1: cpu1/1: ! MAJOR FM-Port Error [CPU01, drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c:2392 FM_PORT_Init]: Resource Is Unavailable; cpu1/1: cpu1/1: cpu1/1: ! MAJOR FM Error [CPU01, drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm_port.c:871 InitFmPortDev]: Invalid State; cpu1/1: cpu1/1: cpu1/1: ! CRITICAL FM-Port Error [CPU01, drivers/net/ethernet/freescale/fman/Peripherals/FM/Port/fm_port.c:3174 FM_PORT_Enable]: Invalid State; cpu1/1: cpu1/1: fsl_oh: probe of dpa-fman0-oh.26 failed with error 39 Reviewed-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/28233 Reviewed-on: http://git.am.freescale.net:8181/28619 Change-Id: If44ede3d08bd079bef710e12c527101485d1ba29 CC: Jiafei Pan <Jiafei.Pan@freescale.com> Signed-off-by: Jianhua Xie <jianhua.xie@freescale.com>
2015-02-25dpaa_eth: fix several typos in mac-apiMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I4974af9d90c0276b47bf46d8fba09d207fc0c3f5 Reviewed-on: http://git.am.freescale.net:8181/28880 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove Rx pool channel on unloadMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I2ca632118579b34a2c88ced0abb274cf20712976 Reviewed-on: http://git.am.freescale.net:8181/28552 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: delete and release used CGRsMadalin Bucur
The CGRs need to be deteled and released upon driver removal. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I8bfe5f10388c0d90761a6b8ed9d8816b65625864 Reviewed-on: http://git.am.freescale.net:8181/28534 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: release CGR ids after deleteMadalin Bucur
Improper ordering of CGR release and delete operations lead to QMan CGR list corruption. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I7817210fbc71d5b7b414ba866c588e97e89e39f0 Reviewed-on: http://git.am.freescale.net:8181/28533 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove duplicate ndo_init entryMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I97d5d65ac7a08ad86c989c3a5a5c8f0dae0c7f21 Reviewed-on: http://git.am.freescale.net:8181/27827 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove stray semicolonMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I65b4dd679835504d5031f341b61bbf4e8b09b6cd Reviewed-on: http://git.am.freescale.net:8181/27614 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove stray semicolonMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I9e2c0f43bee3842ff3822ae4bdd0a7d806c5b6f7 Reviewed-on: http://git.am.freescale.net:8181/27613 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Marian Cristian Rotariu <marian.rotariu@freescale.com>
2015-02-25dpaa_eth: remove unused device node paramMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: Icd0fcfadbbf24edfd7eaa1bdac2ccc18951df9eb Reviewed-on: http://git.am.freescale.net:8181/26788
2015-02-25dpaa_eth: make use of devm_alloc_percpu()Madalin Bucur
Use resource managed variant of alloc_percpu(). Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I51f3fe816792535bdf01827c77a6f504f9c22e7a Reviewed-on: http://git.am.freescale.net:8181/24141 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Tested-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com>
2015-02-25fix multiple dpa_bp free warningsMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I6a27c4300890d8c3a2f892bbbc254ebc9ce6d538 Reviewed-on: http://git.am.freescale.net:8181/16879
2015-02-25dpaa_eth: adjust advanced drivers to older kernelMadalin Bucur
Support for multiple drivers per kernel module comes in kernel 3.14 so we are forced to generate several modules for the advanced drivers. This patch can be dropped when the code is rebased on a kernel newer than 3.14. The problem is with the MODULE_DEVICE_TABLE macro that only from 3.14 generates different named structured based on the name parameter. The change that introduces that also needs a synchronized change in scripts/mod/file2alias.c. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
2015-02-25dpaa_eth: enable compilation as a moduleMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I24f7b9c39c1cf24dbb78987c491ab9a56c22eb10 Reviewed-on: http://git.am.freescale.net:8181/15302 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: exports needed by the advanced driversMadalin Bucur
Add symbol exports required by the advanced drivers. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I66f280f8ec9fb1da73dc2db772c0287360fa5417 Reviewed-on: http://git.am.freescale.net:8181/15300 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
2015-02-25dpaa_eth: reorganize DPAA Ethernet MakefileMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I4bb6955baf63962dbb5dda09fd2302dbaba9c85a Reviewed-on: http://git.am.freescale.net:8181/15299 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/Makefile
2015-02-25dpaa_eth: group DPAA generic codeMadalin Bucur
Group DPAA Ethernet generic driver code under one Kconfig option. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I96061198d022d344280f8b52b14f25e9b3daf2ba Reviewed-on: http://git.am.freescale.net:8181/15298 Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/Makefile
2015-02-25dpaa_eth: group DPAA advanced driversMadalin Bucur
Group the DPAA Ethernet advanced drivers under one Kconfig option. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I832e0dd99e18087fa0b091373f023c67ea69a434 Reviewed-on: http://git.am.freescale.net:8181/15297 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/Kconfig drivers/net/ethernet/freescale/dpa/Makefile
2015-02-25dpaa_eth: use common initialization functionMadalin Bucur
Use a common initialization function for MACless, shared and proxy Ethernet drivers. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I7a0ec70b33ad7ad92cb559dbd828572f83b5c98e Reviewed-on: http://git.am.freescale.net:8181/15296 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/dpaa_eth_base.c
2015-02-25dpaa_eth: move debugfs initialization in generic moduleMadalin Bucur
Initialize debugfs from the DPAA generic driver. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I032589647a56a6704b4044078a8468ca786149fc Reviewed-on: http://git.am.freescale.net:8181/15295 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: move header inclusionMadalin Bucur
Move dpaa_debugfs.h header inclusion where needed. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I2d85c4bc3822987d019bde07b7539875872b9125 Reviewed-on: http://git.am.freescale.net:8181/15294 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: move debugfs initMadalin Bucur
DPAA Ethernet debugfs is initialized from the Ethernet driver. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: Ia42ee938286cede2e60837388f376b477bc28c62 Reviewed-on: http://git.am.freescale.net:8181/15293 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: remove unused codeMadalin Bucur
Removed empty code. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I0abc82f3a49b073044d5cabd704ff4771990dcfb Reviewed-on: http://git.am.freescale.net:8181/15292 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25dpaa_eth: remove tristate optionMadalin Bucur
Tristate option in Kconfig is not supported for those features. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Change-Id: I2215749c57b56a5f6bb1b426a819beda97926e81 Reviewed-on: http://git.am.freescale.net:8181/15291 Reviewed-by: Cristian Bercaru <cristian.bercaru@freescale.com>
2015-02-25fmd: export required functionsMadalin Bucur
Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
2015-02-25dpaa_eth: export required functionMadalin Bucur
Exported API is used by the Ethernet driver. Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com> Conflicts: drivers/net/ethernet/freescale/dpa/mac-api.c
2015-02-13Merge branch 'rtmerge'Scott Wood
Signed-off-by: Scott Wood <scottwood@freescale.com> Conflicts: arch/arm/kvm/mmu.c arch/arm/mm/proc-v7-3level.S arch/powerpc/kernel/vdso32/getcpu.S drivers/crypto/caam/error.c drivers/crypto/caam/sg_sw_sec4.h drivers/usb/host/ehci-fsl.c
2015-02-13Revert "drivers/net: tulip_remove_one needs to call pci_disable_device()"Steven Rostedt (Red Hat)
This reverts commit 4a77edc195f0b03644e84dda00fcfe9827868e8e. This commit was added to the -rt tree and submitted to stable. But because the stable version inserted pci_disable_device() in a slightly different location, when stable was merged it caused this to be duplicated. Remove the version that was added to -rt and keep the stable one. Link: http://lkml.kernel.org/r/1403149603.5189.10.camel@marge.simpson.net Reported-by: Mike Galbraith <umgwanakikbuti@gmail.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13net: gianfar: Fix missing return of gfar_clean_tx_ring()Steven Rostedt (Red Hat)
The patch "net: gianfar: do not try to cleanup TX packets if they are not done" for 3.12-rt left out the return value for gfar_clean_tx_ring(). This would cause an error when building this module. Note, this module does not build on x86 and was not tested because of that. Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2015-02-13net: gianfar: do not try to cleanup TX packets if they are not doneSebastian Andrzej Siewior
What I observe is that the TX queue is not empty and does not make any progress. gfar_clean_tx_ring() does not clean up the packet because it is not completed yet. The root cause is that the DMA engine did not start yet (it was preempted before doing so) and that dumb loop, loops until that packet is gone. This is broken since c233cf4 ("gianfar: Fix tx napi polling"). What remains are spurious interrupts if CPU0 cleans up TX packages and CPU1 returns with IRQ_NONE. Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13net: gianfar: do not disable interruptsSebastian Andrzej Siewior
each per-queue lock is taken with spin_lock_irqsave() except in the case where all of them are taken for some kind of serialisation. As an optimisation local_irq_save() is used so that lock_tx_qs() and lock_rx_qs() can use just the spin_lock() variant instead. On RT local_irq_save() behaves differently so we use the nort() variant. Lockdep screems easily by "ethtool -K eth0 rx off tx off" What remains is missing lockdep annotation that makes lockdep think lock_tx_qs() may cause a dead lock. Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2015-02-13drivers: net: gianfar: Make RT awareThomas Gleixner
The adjust_link() disables interrupts before taking the queue locks. On RT those locks are converted to "sleeping" locks and therefor the local_irq_save/restore must be converted to local_irq_save/restore_nort. Reported-by: Xianghua Xiao <xiaoxianghua@gmail.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Xianghua Xiao <xiaoxianghua@gmail.com>
2015-02-13drivers/net: vortex fix locking issuesSteven Rostedt
Argh, cut and paste wasn't enough... Use this patch instead. It needs an irq disable. But, believe it or not, on SMP this is actually better. If the irq is shared (as it is in Mark's case), we don't stop the irq of other devices from being handled on another CPU (unfortunately for Mark, he pinned all interrupts to one CPU). Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> drivers/net/ethernet/3com/3c59x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) Signed-off-by: Ingo Molnar <mingo@elte.hu>
2015-02-13drivers/net: fix livelock issuesThomas Gleixner
Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro optimization. The reason is that the softirq thread is rescheduling itself on that return value. Depending on priorities it starts to monoplize the CPU and livelock on UP systems. Remove it. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13drivers/net: Use disable_irq_nosync() in 8139tooIngo Molnar
Use disable_irq_nosync() instead of disable_irq() as this might be called in atomic context with netpoll. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13drivers/net: tulip_remove_one needs to call pci_disable_device()Ingo Molnar
Otherwise the device is not completely shut down. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-02-13Reset to 3.12.37Scott Wood
2015-01-26dpaa_eth: add VSP compatibility for eth portsMarian-Cristian Rotariu
This patch provides compatibility for the Ethernet driver ports with the VSP capability. Until now, the FMan ports managed by the Ethernet driver were not able to properly configure VSP because of the buffer layout of the FMan ports used. When VSPs are not enabled, the RX and TX path buffer layout are different, the Ethernet driver maintains separate buffer layouts for transmission and reception. When VSPs are enabled on a certain FMan port, the buffer layouts for Rx and Tx should be the same, the same buffer layout being used inside a storage profile. In order to bypass this the VSP capability is disabled on the Tx path by setting ContextB to 0 in the FQ descriptor of the queues that are transmitting the frames to the Tx port. Change-Id: Ie29b8a0fe8b0b9c2344658f8e4a35e0392b6bf8e Signed-off-by: Marian-Cristian Rotariu <marian.rotariu@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/25613 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com>
2014-12-11gianfar: Disable Rx snooping for LS1Claudiu Manoil
It was observed that Rx snooping incurs a significant performance penalty. My suspicion is that it interferes with the DMA software coherency, currently performed by DMA-API. It is known that there are H/W coherency issues at least for the Tx side (see read data interleaving issue) which is why the software coherency is needed in the first place. This patch disables Rx snooping as well, as a workaround, until the root cause for the Rx side coherency related issue is found. Change-Id: I00c3a5723d52d2f9a9d18e11b5c64c9c208c466b Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/25325 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Zhengxiong Jin <Jason.Jin@freescale.com> Reviewed-by: Matthew Weigel <Matthew.Weigel@freescale.com>
2014-12-11fmd: compat layer: remove redundant breaksMandy Lavi
Change-Id: Id7aeeb432a397008ac08c87418c68f0ec70413b2 Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/25100 Reviewed-by: Igal Liberman <Igal.Liberman@freescale.com> Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Matthew Weigel <Matthew.Weigel@freescale.com>
2014-12-11drivers: dpaa: fix build errors after changes in crypto/caamCristian Stoica
Several patches in drivers/crypto/caam starting with fa9659cd4d3f40cead6263986cc235f3e67ab872 changed the API for error source reporting. Signed-off-by: Cristian Stoica <cristian.stoica@freescale.com> Change-Id: I9a2339272251b0e7a67ae8fe1fede5608e1aedc9 Reviewed-on: http://git.am.freescale.net:8181/25119 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>
2014-12-11dpaa_eth: fix PTPd 1588 stack sync issueYangbo Lu
It existed a settime issue for 1588 timer module on some platforms' 32-bit kernels. It's caused by the difference of data type length between 32-bit and 64-bit platforms or kernels. Signed-off-by: Yangbo Lu <yangbo.lu@freescale.com> Change-Id: Ia223770de71fd30d08c6dab5d58bec62719e4a32 Reviewed-on: http://git.am.freescale.net:8181/24537 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Xiaobo Xie <X.Xie@freescale.com> Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>
2014-12-11fmd: adjust compat layer following capwap supportMandy Lavi
The addition of the capwap related structures required a few changes in the compat layer to better support 64b kernel space working with 32b user space Change-Id: I7d49c8cec351ada65259f928df2d6014f5d81342 Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/24499 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Jiafei Pan <Jiafei.Pan@freescale.com> Reviewed-by: Marian-Cornel Chereji <marian.chereji@freescale.com> Reviewed-by: Richard Schmitt <richard.schmitt@freescale.com>