summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* sfc: Reinitialise and re-validate datapath caps after MC rebootBen Hutchings2013-09-112-0/+13
| | | | | | | | | After an MC reboot, the datapath may be running a different firmware variant and have different capabilities. It is critical that we know the current capabilities so that we can pass valid flags to MC_CMD_INIT_EVQ. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Clean up validation of datapath capabilitiesBen Hutchings2013-09-111-19/+22
| | | | | | | | | | | | | | Rename efx_ef10_init_capabilities() to the more specific efx_ef10_init_datapath_caps(). Stop accepting short responses to MC_CMD_GET_CAPABILITIES; we don't need to support pre-production firmware. Move the check for RX prefix support from efx_ef10_probe() into efx_ef10_init_datapath_caps() and use consistent error messages for missing TSO support and missing RX prefix support. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Reset derived rx_bad_bytes statistic when EF10 MC is rebootedBen Hutchings2013-09-111-0/+5
| | | | | | | | | | | If the MC reboots then the stats it reports to us will have been reset. We need to reset ours to get efx_update_diff_stat() working properly. (This is a re-run of commit 876be083b669 'sfc: Reset driver's MAC stats after MC reboot seen'.) Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Disable PTP on EF10 until we're ready to handle inline RX timestampsBen Hutchings2013-09-111-2/+0Star
| | | | | | | | | | | | | Unlike Siena where timestamping is provided by a peripheral, EF10 delivers RX timestamps in the packet prefix. However the driver doesn't yet support this. We are also creating a PHC device for each EF10 function, even though the clock is really shared between all of them. Disable hardware PTP/timestamping support until it's complete. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Minimal support for 40G link speedBen Hutchings2013-09-052-1/+3
| | | | | | | | | | | | Accept and handle 40G link events. Accept ethtool link settings of speed == 40000 && duplex, and set the appropriate MCDI PHY capability. This does not include reporting of 40G media types, as those have not yet been assigned numbers in the MCDI protocol. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* Merge branch 'qlcnic'David S. Miller2013-09-0111-185/+535
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shahed Shaikh says: ==================== This patch series contains - * Enhanced PVID handling for 84xx adapters by not indicating PVID configuration to VF driver and keeping VF driver in no VLAN configuration mode becasue adapter supports VLAN stripping. * Removed inappropriate usage of inline keyword. * Enhanced minidump feature by using firmware recommended dump capture mask and using CAMRAM register to store firmware dump state. * AER handling support for 83xx adapter. * Added support for per port eswitch configuration. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Update version to 5.3.50Shahed Shaikh2013-09-011-2/+2
| | | | | | | | | | Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Add support for per port eswitch configurationSony Chacko2013-09-017-53/+120
| | | | | | | | | | | | | | | | | | There is an embedded switch per physical port on the adapter. Add support for enabling and disabling the embedded switch on per port basis. Signed-off-by: Sony Chacko <sony.chacko@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Restructuring of qlc_83xx_fw_info structure.Pratik Pujar2013-09-014-45/+61
| | | | | | | | | | | | | | | | | | | | | | | | o Removed unused and unnecessary members from qlc_83xx_fw_info structure. o Made fw_info member of qlcnic_hardware_context as a pointer to qlc_83xx_fw_info structure. o Added a member fw_file_name to qlc_83xx_fw_info structure which will hold the name of firmware image file name. Signed-off-by: Pratik Pujar <pratik.pujar@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Add AER support for 83xx adapterPratik Pujar2013-09-013-1/+121
| | | | | | | | | | Signed-off-by: Pratik Pujar <pratik.pujar@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Add AER callback handlers.Pratik Pujar2013-09-012-24/+55
| | | | | | | | | | | | | | | | o Generic AER callback handlers will make use of qlcnic_hardware_ops structure to call adapter specific handlers. Signed-off-by: Pratik Pujar <pratik.pujar@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Store firmware dump state in CAMRAM registerShahed Shaikh2013-09-015-32/+135
| | | | | | | | | | | | | | | | | | -Use CAMRAM register to store firmware dump state in adapter instead of maintaining it in each function driver separately. -Return appropriate error code on failure Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Use firmware recommended dump capture mask as defaultShahed Shaikh2013-09-012-2/+4
| | | | | | | | | | Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Remove inline keywordManish Chopra2013-09-014-18/+17Star
| | | | | | | | | | | | | | o Remove inline keyword from function prototypes wherever it is not appropriate. Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * qlcnic: Enhance PVID handling for 84xx adaptersManish Chopra2013-09-013-10/+22
|/ | | | | | | | | | | | o PF driver should not indicate PVID configuration to VF driver. As adapter supports VLAN stripping, VF driver should stay agnostic to any PVID configuration. o Return "QLC_NO_VLAN_MODE(= 0)" to VFD when PVID is configured. VF driver should be in no VLAN configuration mode. Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: unify skb_udp_tunnel_segment() and skb_udp6_tunnel_segment()Cong Wang2013-09-012-56/+13Star
| | | | | | | | | As suggested by Pravin, we can unify the code in case of duplicated code. Cc: Pravin Shelar <pshelar@nicira.com> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ipv6: Add generic UDP Tunnel segmentationCong Wang2013-09-012-52/+111
| | | | | | | | | | | | | | | | | Similar to commit 731362674580cb0c696cd1b1a03d8461a10cf90a (tunneling: Add generic Tunnel segmentation) This patch adds generic tunneling offloading support for IPv6-UDP based tunnels. This can be used by tunneling protocols like VXLAN. Cc: Jesse Gross <jesse@nicira.com> Cc: Pravin B Shelar <pshelar@nicira.com> Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* vxlan: add ipv6 proxy supportCong Wang2013-09-015-6/+95
| | | | | | | | | | This patch adds the IPv6 version of "arp_reduce", ndisc_send_na() will be needed. Cc: David S. Miller <davem@davemloft.net> Cc: David Stevens <dlstevens@us.ibm.com> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ipv6: move in6_dev_finish_destroy() into core kernelCong Wang2013-09-012-30/+31
| | | | | | | | | in6_dev_put() will be needed by vxlan module, so is in6_dev_finish_destroy(). Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* vxlan: add ipv6 route short circuit supportCong Wang2013-09-013-2/+30
| | | | | | | | | | route short circuit only has IPv4 part, this patch adds the IPv6 part. nd_tbl will be needed. Cc: David S. Miller <davem@davemloft.net> Cc: David Stevens <dlstevens@us.ibm.com> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* vxlan: add ipv6 supportCong Wang2013-09-014-148/+622
| | | | | | | | | | | | | This patch adds IPv6 support to vxlan device, as the new version RFC already mentions it: http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-03 Cc: David Stevens <dlstevens@us.ibm.com> Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ipv6: do not call ndisc_send_rs() with write lockCong Wang2013-09-011-3/+7
| | | | | | | | | | Because vxlan module will call ip6_dst_lookup() in TX path, which will hold write lock. So we have to release this write lock before calling ndisc_send_rs(), otherwise could deadlock. Reviewed-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ipv6: export in6addr_loopback to modulesCong Wang2013-09-012-9/+16
| | | | | | | | It is needed by vxlan module. Noticed by Mike. Cc: Mike Rapoport <mike.rapoport@ravellosystems.com> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ipv6: export a stub for IPv6 symbols used by vxlanCong Wang2013-09-013-0/+29
| | | | | | | | | | | | | | In case IPv6 is compiled as a module, introduce a stub for ipv6_sock_mc_join and ipv6_sock_mc_drop etc.. It will be used by vxlan module. Suggested by Ben. This is an ugly but easy solution for now. Cc: Ben Hutchings <bhutchings@solarflare.com> Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ipv6: move ip6_local_out into core kernelCong Wang2013-09-012-25/+26
| | | | | | | It will be used the vxlan kernel module. Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ipv6: move ip6_dst_hoplimit() into core kernelCong Wang2013-09-014-21/+24
| | | | | | | | It will be used by vxlan, and may not be inlined. Cc: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'for-davem' of ↵David S. Miller2013-09-0139-271/+4404
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc-next Ben Hutchings says: ==================== 1. A little more refactoring. 2. Remove the unnecessary use of atomic_t that you pointed out. 3. Add support for starting or queueing firmware requests from atomic context. 4. Add hwmon support for additional sensors found on some new boards. 5. Add support for the EF10 controller architecture, the SFC9100 family and specifically the SFC9120 controller. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * sfc: Update copyright bannersBen Hutchings2013-08-3034-62/+62
| | | | | | | | | | | | | | Update the dates for files that have been added to in 2012-2013. Drop the 'Solarstorm' brand name that's still lingering here. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Add support for Solarflare SFC9100 familyBen Hutchings2013-08-2912-22/+3260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for the EF10 network controller architecture and the SFC9100 family, starting with SFC9120 'Farmingdale', and bumps the driver version to 4.0. New features in the SFC9100 family include: - Flexible allocation of internal resources to PCIe physical and virtual functions under firmware control - RX event merging to reduce DMA writes at high packet rates - Integrated RX timestamping - PIO buffers for lower TX latency - Firmware-driven data path that supports additional offload features and filter types - Delivery of packets between functions and to multiple recipients, allowing firmware to implement a vswitch - Multiple RX flow hash (RSS) contexts with their own hash keys and indirection tables - 40G MAC (single port only) ...not all of which are enabled in this initial driver or the initial firmware release. Much of the new code is by Jon Cooper. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Make efx_mcdi_{init,fini}() call efx_mcdi_drv_attach()Ben Hutchings2013-08-293-26/+34
| | | | | | | | | | | | This should be done during MCDI initialisation for any NIC. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Allocate NVRAM partition ID range for PHY imagesMatthew Slattery2013-08-291-0/+4
| | | | | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Add EF10 register and structure definitionsBen Hutchings2013-08-292-5/+430
| | | | | | | | | | | | | | | | | | | | Also update comments and assertions in io.h: - EF10 does not have a general BIU collector and does not have the bug affecting TIMER_COMMAND_REG[0] on Falcon/Siena - The WPTR field moved within RX_DESC_UPD_REG and TX_DESC_UPD_REG. Adjust efx_writed_page() accordingly Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Extend struct efx_tx_buffer to allow pushing option descriptorsBen Hutchings2013-08-293-2/+11
| | | | | | | | | | | | | | | | | | The TX path firmware for EF10 supports 'option descriptors' to control offloads and various other features. Add a flag and field for these in struct efx_tx_buffer, and don't treat them as DMA descriptors on completion. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Use a global count of active queues instead of pending drainsAlexandre Rames2013-08-293-13/+14
| | | | | | | | | | | | | | | | | | | | | | On EF10, the firmware will initiate a queue flush in certain error cases. We need to accept that flush events might appear at any time after a queue has been initialised, not just when we try to flush them. We can handle Falcon-architecture in just the same way. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Prepare for RX scatter on EF10Jon Cooper2013-08-293-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | RX DMA scatter is always enabled on EF10. Adjust the common RX completion handling to allow for this. RX completion events on EF10 include the length used from a single descriptor, not the cumulative length used. Add a field to struct efx_rx_queue to hold the cumulative length. [bwh: Also fix a related comment] Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Initialise IRQ moderation for all NIC types from efx_init_eventq()Ben Hutchings2013-08-292-3/+3
| | | | | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Allow efx_nic_type::dimension_resources to failBen Hutchings2013-08-294-6/+12
| | | | | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Allow event queue initialisation to failJon Cooper2013-08-294-28/+95
| | | | | | | | | | | | | | On EF10, event queue initialisation requires an MCDI request which may return failure. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Document conditions for multicast replication vs filter replacementBen Hutchings2013-08-292-7/+49
| | | | | | | | | | | | | | | | | | Add the efx_filter_is_mc_recip() function to decide whether a filter is for a multicast recipient and can coexist with other filters with the same match values. Update efx_filter_insert_filter() kernel-doc to explain the conditions for this. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Implement asynchronous MCDI requestsBen Hutchings2013-08-293-30/+291
| | | | | | | | | | | | | | This will allow use of MCDI from the data path, in particular for accelerated RFS. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Remove unnecessary use of atomic_tBen Hutchings2013-08-292-17/+13Star
| | | | | | | | | | | | | | | | | | We can set, get and compare-and-exchange without using atomic_t. Change efx_mcdi_iface::state to the enum type we really wanted it to be. Suggested-by: David Miller <davem@davemloft.net> Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Refactor efx_mcdi_rpc_start() and efx_mcdi_copyin()Ben Hutchings2013-08-291-19/+30
| | | | | | | | | | | | Preparation for asynchronous MCDI requests. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
| * sfc: Add support for new board sensorsBen Hutchings2013-08-291-30/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | Add support for power and current sensors, which need to be named differently in sysfs. Power sensors also require values to be scaled between MCDI and sysfs, and have no minimum value. Add definitions of the power, current, fan, and additional temperature and voltage sensors found on SFA6902F, SFN7022F and SFN7122F. (Includes a bug fix from Andrew Jackson.) Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* | qdisc: fix build with !CONFIG_NET_SCHEDstephen hemminger2013-09-012-5/+4Star
| | | | | | | | | | | | | | | | | | Multiqueue scheduler refers to default_qdisc_ops; therefore the variable definition needs to be moved to handle case where net scheduler API is not available. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qdisc: make args to qdisc_create_default conststephen hemminger2013-09-012-4/+5
| | | | | | | | | | | | | | Fixes warnings introduced by the qdisc default patch. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | qdisc: allow setting default queuing disciplinestephen hemminger2013-08-318-8/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, the pfifo_fast queue discipline has been used by default for all devices. But we have better choices now. This patch allow setting the default queueing discipline with sysctl. This allows easy use of better queueing disciplines on all devices without having to use tc qdisc scripts. It is intended to allow an easy path for distributions to make fq_codel or sfq the default qdisc. This patch also makes pfifo_fast more of a first class qdisc, since it is now possible to manually override the default and explicitly use pfifo_fast. The behavior for systems who do not use the sysctl is unchanged, they still get pfifo_fast Also removes leftover random # in sysctl net core. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net/fec: cleanup types in fec_get_mac()Dan Carpenter2013-08-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | My static checker complains that on some arches unsigned longs can be 8 characters which is larger than the buffer is only 6 chars. Additionally, Ben Hutchings points out that the buffer actually holds big endian data and the buffer we are reading from is CPU endian. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: stmmac: use dev_get_platdata()Jingoo Han2013-08-301-1/+1
| | | | | | | | | | | | | | | | | | Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. This is a cosmetic change to make the code simpler and enhance the readability. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: macb: use dev_get_platdata()Jingoo Han2013-08-301-3/+3
| | | | | | | | | | | | | | | | | | | | Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. This is a cosmetic change to make the code simpler and enhance the readability. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: at91_ether: use dev_get_platdata()Jingoo Han2013-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. This is a cosmetic change to make the code simpler and enhance the readability. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: David S. Miller <davem@davemloft.net>