- 02 Dec, 2015 2 commits
-
-
Thanneeru Srinivasulu authored
While VNIC or BGX driver teardown, wait for already scheduled delayed work to finish before destroying it. Signed-off-by:
Thanneeru Srinivasulu <tsrinivasulu@caviumnetworks.com> Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Thanneeru Srinivasulu authored
Signed-off-by:
Thanneeru Srinivasulu <tsrinivasulu@caviumnetworks.com> Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 16 Nov, 2015 2 commits
-
-
Pavel Fedin authored
In some cases the crash is caused by nicvf_remove() being called from outside. For example, if we try to feed the device to vfio after the probe has failed for some reason. So, move the check to better place. Signed-off-by:
Pavel Fedin <p.fedin@samsung.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Julia Lawall authored
This pci_error_handlers structure is never modified, like all the other pci_error_handlers structures, so declare it as const. Done with the help of Coccinelle. Signed-off-by:
Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 15 Nov, 2015 1 commit
-
-
Pavel Fedin authored
If device probe fails, driver remains bound to the PCI device. However, driver data has been reset to NULL. This causes crash upon dereferencing it in nicvf_remove() Signed-off-by:
Pavel Fedin <p.fedin@samsung.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 27 Oct, 2015 1 commit
-
-
Julia Lawall authored
for_each_child_of_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr ): // <smpl> @@ local idexpression r.n; expression r,e; @@ for_each_child_of_node(r,n) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n // </smpl> Signed-off-by:
Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 26 Oct, 2015 4 commits
-
-
Thanneeru Srinivasulu authored
Add support for ThunderX pass2 CPI and MPI configuration changes. MPI_ALG is not enabled i.e MCAM parsing is disabled. Signed-off-by:
Thanneeru Srinivasulu <tsrinivasulu@caviumnetworks.com> Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
David Daney <david.daney@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
David Daney authored
The test for pass-1 silicon was incorrect, it should be for all revisions less than 8. Also the revision is already present in the pci_dev, so there is no need to read and keep a private copy. Remove rev_id and code to read it from struct nicpf. Create new static inline function pass1_silicon() to be used to testing the silicon version. Use pass1_silicon() for revision checks, this will be more widely used in follow on patches. Signed-off-by:
David Daney <david.daney@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
David Daney <david.daney@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
In some silicon revisions, the soft reset clobbers PCI config space, so quit doing the reset. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
David Daney <david.daney@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 22 Oct, 2015 1 commit
-
-
Andreas Schwab authored
CONFIG_NET_VENDOR_CAVIUM is only used to hide/show config options and to include subdirectories in the build, so it doesn't make sense to make it tristate. Signed-off-by:
Andreas Schwab <schwab@suse.de> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 16 Oct, 2015 1 commit
-
-
Ivan Vecera authored
Many drivers initialize uselessly n_priv_flags, n_stats, testinfo_len, eedump_len & regdump_len fields in their .get_drvinfo() ethtool op. It's not necessary as these fields is filled in ethtool_get_drvinfo(). v2: removed unused variable v3: removed another unused variable Signed-off-by:
Ivan Vecera <ivecera@redhat.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 10 Sep, 2015 1 commit
-
-
Rasmus Villemoes authored
We save a little .text and get rid of the sizeof(...) style inconsistency. Signed-off-by:
Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 31 Aug, 2015 7 commits
-
-
Sunil Goutham authored
Support for setting VF's corresponding BGX LMAC in internal loopback mode. This mode can be used for verifying basic HW functionality such as packet I/O, RX checksum validation, CQ/RBDR interrupts, stats e.t.c. Useful when DUT has no external network connectivity. 'loopback' mode can be enabled or disabled via ethtool. Note: This feature is not supported when no of VFs enabled are morethan no of physical interfaces i.e active BGX LMACs Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
This patch adds support for handling multiple qsets assigned to a single VF. There by increasing no of queues from earlier 8 to max no of CPUs in the system i.e 48 queues on a single node and 96 on dual node system. User doesn't have option to assign which Qsets/VFs to be merged. Upon request from VF, PF assigns next free Qsets as secondary qsets. To maintain current behavior no of queues is kept to 8 by default which can be increased via ethtool. If user wants to unbind NICVF driver from a secondary Qset then it should be done after tearing down primary VF's interface. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
Robert Richter <rrichter@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Rework interrupt handler to avoid checking IRQ affinity of CQ interrupts. Now separate handlers are registered for each IRQ including RBDR. Register interrupt handlers for only those which are being used. Add nicvf_dump_intr_status() and use it in irq handlers. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
This patch configures HW to strip 802.1Q header if found in a receiving packet. The stripped VLAN ID and TCI information is passed on to software via CQE_RX. Also sets netdev's 'vlan_features' so that other HW offload features can be used for tagged packets. This offload feature can be enabled or disabled via ethtool. Network stack normally ignores RPS for 802.1Q packets and hence low throughput. With this offload enabled throughput for tagged packets will be almost same as normal packets. Note: This patch doesn't enable HW VLAN insertion for transmit packets. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Adding support for receive hashing HW offload by using RSS_ALG and RSS_TAG fields of CQE_RX descriptor. Also removed dependency on minimum receive queue count to configure RSS so that hash is always generated. This hash is used by RPS logic to distribute flows across multiple CPUs. Offload can be disabled via ethtool. Signed-off-by:
Robert Richter <rrichter@cavium.com> Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Use the nicvf_send_msg_to_pf() function in the mailbox code. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Robert Richter <rrichter@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Added ethtool support to dump receive packet error statistics reported in CQE. Also made some small fixes Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 11 Aug, 2015 2 commits
-
-
David Daney authored
Currently there is no way to get the MAC address in a firmware independent manner, so set the MAC address of the device directly from the ACPI tables. The binding agrees with the proposed standard here: http://www.uefi.org/sites/default/files/resources/nic-request-v2.pdf Based on code from: Narinder Dhillon <ndhillon@cavium.com> Tomasz Nowicki <tomasz.nowicki@linaro.org> Robert Richter <rrichter@cavium.com> Signed-off-by:
Tomasz Nowicki <tomasz.nowicki@linaro.org> Signed-off-by:
Robert Richter <rrichter@cavium.com> Signed-off-by:
David Daney <david.daney@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Robert Richter authored
Separate DT code in preparation for follow-on ACPI integration. Based on code from: Tomasz Nowicki <tomasz.nowicki@linaro.org> Signed-off-by:
Robert Richter <rrichter@cavium.com> Signed-off-by:
David Daney <david.daney@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 07 Aug, 2015 1 commit
-
-
Ian Campbell authored
As well as for kernels built only for ThunderX ARCH_THUNDERX is also enabled for kernels which support multiple platforms (such as distro kernels). Thus "default ARCH_THUNDER" is inappropriate. I believe default m is equally frowned upon, so remove the line completely rather than "default m if ARCH_THUNDER". Signed-off-by:
Ian Campbell <ijc@hellion.org.uk> Cc: Sunil Goutham <sgoutham@cavium.com> Cc: Robert Richter <rric@kernel.org> Cc: Derek Chickles <derek.chickles@caviumnetworks.com> Cc: Satanand Burla <satananda.burla@caviumnetworks.com> Cc: Felix Manlunas <felix.manlunas@caviumnetworks.com> Cc: Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: linux-arm-kernel@lists.infradead.org Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 30 Jul, 2015 12 commits
-
-
Thanneeru Srinivasulu authored
Cortina phy does not have kernel driver and we don't attach device with phy layer for intefaces like XFI, XLAUI etc, Hence check for interface type before calling disconnect. Signed-off-by:
Thanneeru Srinivasulu <tsrinivasulu@caviumnetworks.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
This fixes a crash when changing rss with multiple traffic flows. While interface teardown, disable tx queues after all NAPI threads are done. If done otherwise tx queues might be woken up inside NAPI if any CQE_TX are processed. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
If a txq (SQ) remains in stopped state after this timeout its considered as stuck and interface is reinited. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Previously TXQ is wakedup whenever napi is executed and irrespective of if any CQE_TX are processed or not. Added 'txq_stop' and 'txq_wake' counters to aid in debugging if there are any future issues. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Suppressing standard alloc_pages() warnings. Some kernel configs limit alloc size and the network driver may fail. Do not drop a kernel warning in this case, instead just drop a oneliner that the network driver could not be loaded since the buffer could not be allocated. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Fixing TSO packages not being counted. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Fix for memory leak when changing queue/channel count via ethtool Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
With earlier configured value sufficient number of CQEs are not being reserved for transmitted packets. Hence under heavy incoming traffic load, receive notifications will take away most of the CQ thus transmit notifications will be lost resulting in tx skbs not being freed. Finally SQ will be full and it will be stopped, watchdog timer will kick in. After this fix receive notifications will not take morethan half of CQ reserving the rest for transmit notifications. Also changed CQ & SQ sizes from 16k to 4k. This is also due to the receive notifications taking first half of CQ under heavy load and time taken by NAPI to clear transmit notifications will increase with higher queue sizes. Again results in SQ being stopped. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Fixed 'tso_hdrs' memory not being freed properly. Also fixed SQ skbuff maintenance issues. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Sunil Goutham authored
Switching back to LDD transactions from LDWB. While transmitting packets out with LDWB transactions data integrity issues are seen very frequently. hence switching back to LDD. Signed-off-by:
Sunil Goutham <sgoutham@cavium.com> Signed-off-by:
Robert Richter <rrichter@cavium.com> Signed-off-by:
Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Radha Mohan Chintakuntla authored
The CONFIG_MDIO_OCTEON is required so that the ThunderX NIC driver can talk to the PHY drivers. Signed-off-by:
Radha Mohan Chintakuntla <rchintakuntla@cavium.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 29 Jun, 2015 1 commit
-
-
Markus Elfring authored
The vfree() function performs also input parameter validation. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by:
Markus Elfring <elfring@users.sourceforge.net> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 25 Jun, 2015 1 commit
-
-
Dan Carpenter authored
There was a missing assignment so the "if (ret)" on the next line is never true. Fixes: f21fb3ed ('Add support of Cavium Liquidio ethernet adapters') Signed-off-by:
Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 24 Jun, 2015 1 commit
-
-
Pavel Fedin authored
This bug pops up with NetworkManager on Fedora 21. NetworkManager tends to stop the interface (nicvf_stop() is called) before changing settings. In stopped state MAC cannot be sent to a PF. However, when the interface is restarted (nicvf_open() is called), we ping the PF using NIC_MBOX_MSG_READY message, and the PF replies back with old MAC address, overriding what we had after MAC setting from userspace. As a result, we cannot set MAC address using NetworkManager. This patch introduces special tracking of MAC change in stopped state so that the correct new MAC address is sent to a PF when interface is reopen. Signed-off-by:
Pavel Fedin <p.fedin@samsung.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 21 Jun, 2015 1 commit
-
-
Raghu Vatsavayi authored
Following patch contains changes in liquidio Kconfig for selecting LIBCRC32C. Signed-off-by:
Derek Chickles <derek.chickles@caviumnetworks.com> Signed-off-by:
Satanand Burla <satananda.burla@caviumnetworks.com> Signed-off-by:
Felix Manlunas <felix.manlunas@caviumnetworks.com> Signed-off-by:
Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 13 Jun, 2015 1 commit
-
-
Raghu Vatsavayi authored
1) Fixed following sparse warnings: lio_main.c:213:6: warning: symbol 'octeon_droq_bh' was not declared. Should it be static? lio_main.c:233:5: warning: symbol 'lio_wait_for_oq_pkts' was not declared. Should it be static? lio_main.c:3083:5: warning: symbol 'lio_nic_info' was not declared. Should it be static? lio_main.c:2618:16: warning: cast from restricted __be16 octeon_device.c:466:6: warning: symbol 'oct_set_config_info' was not declared. Should it be static? octeon_device.c:573:25: warning: cast to restricted __be32 octeon_device.c:582:29: warning: cast to restricted __be32 octeon_device.c:584:39: warning: cast to restricted __be32 octeon_device.c:594:13: warning: cast to restricted __be32 octeon_device.c:596:25: warning: cast to restricted __be32 octeon_device.c:613:25: warning: cast to restricted __be32 octeon_device.c:614:29: warning: cast to restricted __be64 octeon_device.c:615:29: warning: cast to restricted __be32 octeon_device.c:619:37: warning: cast to restricted __be32 octeon_device.c:623:33: warning: cast to restricted __be32 cn66xx_device.c:540:6: warning: symbol 'lio_cn6xxx_get_pcie_qlmport' was not declared. Should it be s octeon_mem_ops.c:181:16: warning: cast to restricted __be64 octeon_mem_ops.c:190:16: warning: cast to restricted __be32 octeon_mem_ops.c:196:17: warning: incorrect type in initializer 2) Fix build errors corresponding to vmalloc on linux-next 4.1. 3) Liquidio now supports 64 bit only, modified Kconfig accordingly. 4) Fix some code alignment issues based on kernel build warnings. Signed-off-by:
Derek Chickles <derek.chickles@caviumnetworks.com> Signed-off-by:
Satanand Burla <satananda.burla@caviumnetworks.com> Signed-off-by:
Felix Manlunas <felix.manlunas@caviumnetworks.com> Signed-off-by:
Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-