summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* can: flexcan: add MB/FIFO specific column to comment table of IP versionsDavid Jander2015-05-061-8/+8
| | | | | | | | Flexcan V10 and newer are able to receive RTR frames in a MB. Older versions are not. Those should use flexcan in FIFO mode. Signed-off-by: David Jander <david@protonic.nl> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
* can: janz-ican3: add support for CAL/CANopen firmwareAndreas Gröger2015-05-063-37/+101
| | | | | | | | | | | | | | | | | | | | | | | | In our department we are using some older Janz ICAN3-modules in our dekstop pcs. There we have slightly different carrier boards than the janz-cmodio supported in the kernel sources, called CAN-PCI2 with two submodules. But the pci configuration regions are identical. So extending the supported pci devices to the corresponding device ids is sufficient to get the drivers working. * The old ICAN3-modules with firmware 1.28 need more then 250ms for the restart after reset. I've increased the timeout to 500ms. * The janz_ican3 module uses the raw can services of the Janz-firmware, this means firmware must be ICANOS/2. Our ICAN3-modules are equipped with CAL/CANopen-firmware, so I must use the appropriate commands for the layer management services. Te driver detects the firmware after module reset and selects the commands matching the firmware. This affects the bus on/off-command (ican3_set_bus_state) and the configuration of the bittiming (ican3_set_bittiming). For better diagnostics the detected firmware string is presented as sysfs attribute (fwinfo). Signed-off-by: Andreas Gröger <andreas24groeger@gmail.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
* can: janz-ican3: add documentation for existing sysfs entriesAndreas Gröger2015-05-062-0/+18
| | | | | | | | This patch adds documentation for the existing sysfs entries for the janz PCI module. Signed-off-by: Andreas Gröger <andreas24groeger@gmail.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
* can.h: make padding given by gcc explicitShawn Landden2015-05-062-0/+9
| | | | | | | | | | The current definition of struct can_frame has a 16-byte size, with 8-byte alignment, but the 3 bytes of padding are not explicit like the similar 2 bytes of padding of struct canfd_frame. Make it explicit so it is easier to read. Signed-off-by: Shawn Landden <shawn@churchofgit.com> Acked-by: Oliver Hartkopp <socketcan@hartkopp.net> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
* vxlan: Correctly set flow*i_mark and flow4i_proto in route lookupsThomas Graf2015-05-061-0/+3
| | | | | | | | | VXLAN must provide the skb mark and specifiy IPPROTO_UDP when doing the FIB lookup for the remote ip. Otherwise an invalid route might be returned. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Fix kernel-doc warningsMichal Simek2015-05-063-18/+32
| | | | | | | This patch remove kernel-doc warnings. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Removed _of_ prefix in probe and remove functionsSrikanth Thokala2015-05-061-7/+7
| | | | | | | | Synchronize names with other drivers. Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Use of_property_* callsSrikanth Thokala2015-05-061-20/+15
| | | | | | | | Use of_property_* calls Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Use devm_* callsSrikanth Thokala2015-05-061-27/+27
| | | | | | | | use devm_* calls Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Use pdev instead of opSrikanth Thokala2015-05-061-23/+24
| | | | | | | | Synchronize names with other drivers Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Fix comments blocksMichal Simek2015-05-063-59/+71
| | | | | | | | | There is rule for network drivers with comments blocks which is newly checked by checkpatch.pl script. Let's fix it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Removed coding style errors and warningsSrikanth Thokala2015-05-062-20/+21
| | | | | | | | Removed checkpatch.pl errors and warnings. Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Support phy-less mode of operationSrikanth Thokala2015-05-061-5/+5
| | | | | | | | This patch adds proper checks to handle the PHY-less case. Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Handle jumbo frames for lesser frame sizesSrikanth Thokala2015-05-062-28/+27
| | | | | | | | | | | | In the current implementation, jumbo frames are supported only for the frame sizes > 16K. This patch corrects this logic to handle jumbo frames for lesser frame sizes (< 16K) ensuring jumbo frame MTU is within the limit of max frame size configured in the h/w design. Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Service completion interrupts ASAPPeter Crosthwaite2015-05-061-2/+4
| | | | | | | | | | | | | | The packet completion interrupts for TX and RX should be serviced before the packets are consumed. This ensures against the degenerate case when a new completion interrupt is raised after the handler has exited but before the interrupts are cleared. In this case its possible for the ISR to clear an unhandled interrupt (leading to potential deadlock). Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Tested-by: Jason Wu <huanyu@xilinx.com> Acked-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Handle 0 packet receive gracefullyPeter Crosthwaite2015-05-061-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AXI-DMA rx-delay interrupt can sometimes be triggered when there are 0 outstanding packets received. This is due to the fact that the receive function will greedily consume as many packets as possible on interrupt. So if two packets (with a very particular timing) arrive in succession they will each cause the rx-delay interrupt, but the first interrupt will consume both packets. This means the second interrupt is a 0 packet receive. This is mostly OK, except that the tail pointer register is updated unconditionally on receive. Currently the tail pointer is always set to the current bd-ring descriptor under the assumption that the hardware has moved onto the next descriptor. What this means for length 0 recv is the current descriptor that the hardware is potentially yet to use will be marked as the tail. This causes the hardware to think its run out of descriptors deadlocking the whole rx path. Fixed by updating the tail pointer to the most recent successfully consumed descriptor. Reported-by: Wendy Liang <wendy.liang@xilinx.com> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Tested-by: Jason Wu <huanyu@xilinx.com> Acked-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: axienet: Support for RGMIISrikanth Thokala2015-05-061-1/+8
| | | | | | | | | | | This patch adds support for the RGMII. The h/w configuration parameter C_PHY_TYPE, which represents the interface configured in the design, is used to differentiate various interfaces supported by AXI Ethernet. Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'cxgb4-next'David S. Miller2015-05-068-96/+262
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hariprasad Shenai says: ==================== Trivial fixes and changes for SGE This patch series adds the following. Discard packet if length is greater than MTU, move sge monitor code to a new routine, add device node to ULD info, add congestion notification from SGE for ingress queue and freelists and for T5, setting up the Congestion Manager values of the new RX Ethernet Queue is done by firmware now. This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. Thanks V2: Align parenthesis for PATCH 2/6 and PATCH 5/6 ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * cxgb4: Discard the packet if the length is greater than mtuHariprasad Shenai2015-05-062-2/+16
| | | | | | | | | | | | | | | | | | pktgen sends raw udp packets and bypasses most of the linux networking stack. User can specify different packet sizes. Hence we need to discard the packet if the length is greater than mtu Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * cxgb4: Move SGE Ingress DMA state monitor code to a new routineHariprasad Shenai2015-05-063-79/+156
| | | | | | | | | | Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * cxgb4: Add device node to ULD infoHariprasad Shenai2015-05-063-1/+3
| | | | | | | | | | | | | | | | Adds device node to ULD info. Use the node info to alloc_ring() for ctrl TX queues Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * cxgb4: Pass in a Congestion Channel Map to t4_sge_alloc_rxq()Hariprasad Shenai2015-05-063-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | Passes a Congestion Channel Map to t4_sge_alloc_rxq() for the Ethernet RX Queues based on the MPS Buffer Group Map of the TX Channel rather than just the TX Channel Map. Also, in t4_sge_alloc_rxq() for T5, setting up the Congestion Manager values of the new RX Ethernet Queue is done by firmware now. Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * cxgb4: Enable congestion notification from SGE for IQs and FLs.Hariprasad Shenai2015-05-065-13/+28
| | | | | | | | | | | | | | | | Also changed the name of t4_hw.c:get_mps_bg_map() to t4_get_mps_bg_map() and make it an exported routine with a definition in cxgb4.h. Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * cxgb4: Make sure that Freelist size is larger than Egress Congestion ThresholdHariprasad Shenai2015-05-062-1/+14
|/ | | | | | | | | We need to make sure that the Free List Size, in pointers, is at least 2 Egress Queue Units (8 pointers/each) larger than the SGE's Egress Congestion Threshold (in pointers). Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* rhashtable-test: Fix 64bit divisionThomas Graf2015-05-061-1/+2
| | | | | | | | | | A 64bit division went in unnoticed. Use do_div() to accomodate non 64bit architectures. Reported-by: kbuild test robot Fixes: 1aa661f5c3df ("rhashtable-test: Measure time to insert, remove & traverse entries") Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* rhashtable: Simplify iterator codeThomas Graf2015-05-061-6/+2
| | | | | | | | Remove useless obj variable and goto logic. Signed-off-by: Thomas Graf <tgraf@suug.ch> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'ipvlan-mcast'David S. Miller2015-05-063-66/+102
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mahesh Bandewar says: ==================== Multicast processing in IPvlan Dan Willems pointed out that autoconf in IPvlan is broken because of the way broadcast bit gets set. Since broadcast processing is a real performance drain, the broadcast bit in multicast filter was only set when the interface was configured with IPv4 address. In autoconf scenario, when there are no addresses configured; this logic did not work and it wouldn't allow DHCPv4 to work. The only way was to add protocol specific hacks to avoid processing unnecessary broadcast burdon. This jugglery could be avoided if these multicast / broadcast packets are taken out of fast-path and are processed in a work-queue. This will enable us to add broadcast bit in all multicast filters without any impact on performance of the virtual device. This patch series just does that. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * ipvlan: Always set broadcast bit in multicast filterMahesh Bandewar2015-05-061-14/+6
| | | | | | | | | | | | | | | | | | | | | | | | Earlier tricks of setting broadcast bit only when IPv4 address is added onto interface are not good enough especially when autoconf comes in play. Setting them on always is performance drag but now that multicast / broadcast is not processed in fast-path; enabling broadcast will let autoconf work correctly without affecting performance characteristics of the device. Signed-off-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ipvlan: Defer multicast / broadcast processing to a work-queueMahesh Bandewar2015-05-063-52/+96
|/ | | | | | | | | | | | | | | | | | | | | Processing multicast / broadcast in fast path is performance draining and having more links means more cloning and bringing performance down further. Broadcast; in particular, need to be given to all the virtual links. Earlier tricks of enabling broadcast bit for IPv4 only interfaces are not really working since it fails autoconf. Which means enabling broadcast for all the links if protocol specific hacks do not have to be added into the driver. This patch defers all (incoming as well as outgoing) multicast traffic to a work-queue leaving only the unicast traffic in the fast-path. Now if we need to apply any additional tricks to further reduce the impact of this (multicast / broadcast) type of traffic, it can be implemented while processing this work without affecting the fast-path. Signed-off-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'eth_proto_is_802_3'David S. Miller2015-05-068-8/+26
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alexander Duyck says: ==================== Add eth_proto_is_802_3 to provide improved means of checking Ethertype This patch series implements and makes use of eth_proto_is_802_3(). The idea behind the function is to provide an optimized means of testing to determine if a given Ethertype value is a length or 802.3 protocol number. The standard path for this was to use ntohs(proto) and then perform a comparison. This adds a slight cost as it usually requires either a 16b rotate or byte swap which can cost 1 cycle or more depending on the processor. I had previously addressed this for eth_type_trans, however in doing so I had overlooked checking with sparse and had introduced a couple sparse warnings. The first patch in this series fixes those sparse warnings as well as does some additional optimization for big endian systems. In addition it pushes the code out into a separate function which can then be used in the other patches to reduce the instruction count/processing time in those functions as well. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * vlan: Use eth_proto_is_802_3Alexander Duyck2015-05-061-1/+1
| | | | | | | | | | | | | | Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * openvswitch: Use eth_proto_is_802_3Alexander Duyck2015-05-063-4/+4
| | | | | | | | | | | | | | Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ipv4/ip_tunnel_core: Use eth_proto_is_802_3Alexander Duyck2015-05-061-1/+1
| | | | | | | | | | | | | | Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * ebtables: Use eth_proto_is_802_3Alexander Duyck2015-05-061-1/+1
| | | | | | | | | | | | | | Replace "ntohs(proto) >= ETH_P_802_3_MIN" w/ eth_proto_is_802_3(proto). Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * etherdev: Fix sparse error, make test usable by other functionsAlexander Duyck2015-05-062-1/+19
|/ | | | | | | | | | | | | | | | | | | This change does two things. First it fixes a sparse error for the fact that the __be16 degrades to an integer. Since that is actually what I am kind of doing I am simply working around that by forcing both sides of the comparison to u16. Also I realized on some compilers I was generating another instruction for big endian systems such as PowerPC since it was masking the value before doing the comparison. So to resolve that I have simply pulled the mask out and wrapped it in an #ifndef __BIG_ENDIAN. Lastly I pulled this all out into its own function. I notices there are similar checks in a number of other places so this function can be reused there to help reduce overhead in these paths as well. Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* bridge: change BR_GROUPFWD_RESTRICTED to allow forwarding of LLDP framesBernhard Thaler2015-05-062-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | BR_GROUPFWD_RESTRICTED bitmask restricts users from setting values to /sys/class/net/brX/bridge/group_fwd_mask that allow forwarding of some IEEE 802.1D Table 7-10 Reserved addresses: (MAC Control) 802.3 01-80-C2-00-00-01 (Link Aggregation) 802.3 01-80-C2-00-00-02 802.1AB LLDP 01-80-C2-00-00-0E Change BR_GROUPFWD_RESTRICTED to allow to forward LLDP frames and document group_fwd_mask. e.g. echo 16384 > /sys/class/net/brX/bridge/group_fwd_mask allows to forward LLDP frames. This may be needed for bridge setups used for network troubleshooting or any other scenario where forwarding of LLDP frames is desired (e.g. bridge connecting a virtual machine to real switch transmitting LLDP frames that virtual machine needs to receive). Tested on a simple bridge setup with two interfaces and host transmitting LLDP frames on one side of this bridge (used lldpd). Setting group_fwd_mask as described above lets LLDP frames traverse bridge. Signed-off-by: Bernhard Thaler <bernhard.thaler@wvnet.at> Signed-off-by: David S. Miller <davem@davemloft.net>
* tcp: provide SYN headers for passive connectionsEric Dumazet2015-05-057-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows a server application to get the TCP SYN headers for its passive connections. This is useful if the server is doing fingerprinting of clients based on SYN packet contents. Two socket options are added: TCP_SAVE_SYN and TCP_SAVED_SYN. The first is used on a socket to enable saving the SYN headers for child connections. This can be set before or after the listen() call. The latter is used to retrieve the SYN headers for passive connections, if the parent listener has enabled TCP_SAVE_SYN. TCP_SAVED_SYN is read once, it frees the saved SYN headers. The data returned in TCP_SAVED_SYN are network (IPv4/IPv6) and TCP headers. Original patch was written by Tom Herbert, I changed it to not hold a full skb (and associated dst and conntracking reference). We have used such patch for about 3 years at Google. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Neal Cardwell <ncardwell@google.com> Tested-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: fix two sparse warnings introduced by IGMP/MLD parsing exportsLinus Lüssing2015-05-052-2/+2
| | | | | | | | | | | | > net/core/skbuff.c:4108:13: sparse: incorrect type in assignment (different base types) > net/ipv6/mcast_snoop.c:63 ipv6_mc_check_exthdrs() warn: unsigned 'offset' is never less than zero. Introduced by 9afd85c9e4552b276e2f4cfefd622bdeeffbbf26 ("net: Export IGMP/MLD message validation code") Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2015-05-0410-95/+123
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-05-04 This series contains updates to igb, e100, e1000e and ixgbe. Todd cleans up igb_enable_mas() since it should only be called for the 82575 silicon and has no clear return, so modify the function to void. Jean Sacren found upon inspection that 'err' did not need to be initialized, since it is immediately overwritten. Alex Duyck provides two patches for e1000e, the first cleans up the handling VLAN_HLEN as a part of max frame size. Fixes the issue: c751a3d58cf2d ("e1000e: Correctly include VLAN_HLEN when changing interface MTU"). The second fixes an issue where the driver was not allowing jumbo frames to be enabled when CRC stripping was disabled, however it was allowing CRC stripping to be disabled while jumbo frames were enabled. Jeff (me) fixes a warning found on PPC where the use of do_div() needed to use u64 arg and not s64. Mark provides three ixgbe patches, first to fix the Intel On-chip System Fabric (IOSF) Sideband message interfaces, to serialize access using both PHY bits in the SWFW_SEMAPHORE register. Then fixes how semaphore bits were released, since they should be released in reverse of the order that they were taken. Lastly updates ixgbe to use a signed type to hold error codes, since error codes are negative, so consistently use signed types when handling them. v2: dropped the previous #6-#8 patches by Hiroshi Shimanoto based on feedback from Or Gerlitz (and David Miller) that it appears there needs to be further discussion on how this gets implemented. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * ixgbe: Use a signed type to hold error codesMark Rustad2015-05-044-11/+11
| | | | | | | | | | | | | | | | | | | | Because error codes are negative, it only makes sense to consistently use signed types when handling them. Also remove some explicit comparisons with 0 on these variables. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbe: Release semaphore bits in the right orderMark Rustad2015-05-041-4/+4
| | | | | | | | | | | | | | | | | | The global semaphore bits should be released in the reverse of the order that they were taken, so correct that. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbe: Fix IOSF SB access issuesMark Rustad2015-05-041-37/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | IOSF is the Intel On-chip System Fabric used in SOCs. IOSF SB is the IOSF SideBand message interface. This patch serializes IOSF SB access using both phy bits in the SWFW_SEMAPHORE register. It also adds a helper function to wait for IOSF SB accesses to complete. Use the new function to perform this wait before each access, as specified in the datasheet, in addition to using it to wait for IOSF SB read/write completion. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * e1000e: fix call to do_div() to use u64 argJeff Kirsher2015-05-041-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were using s64 for lat_ns (latency nano-second value) since in our calculations a negative value could be a resultant. For negative values, we then assign lat_ns to be zero, so the value passed to do_div() was never negative, but do_div() expects the argument type to be u64, so do a cast to resolve a compile warning seen on PowerPC. CC: Yanjiang Jin <yanjiang.jin@windriver.com> CC: Yanir Lubetkin <yanirx.lubetkin@intel.com> Reported-by: Yanjiang Jin <yanjiang.jin@windriver.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com>
| * e1000e: Do not allow CRC stripping to be disabled on 82579 w/ jumbo framesAlexander Duyck2015-05-041-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | The driver wasn't allowing jumbo frames to be enabled when CRC stripping was disabled, however it was allowing CRC stripping to be disabled while jumbo frames were enabled. This fixes that by making it so that the NETIF_F_RXFCS flag cannot be set when jumbo frames are enabled on 82579 and newer parts. Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * e1000e: Cleanup handling of VLAN_HLEN as a part of max frame sizeAlexander Duyck2015-05-043-16/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the VLAN_HLEN was added to the calculation for the maximum frame size there seems to have been a number of issues added to the driver. The first issue is that in some cases the maximum frame size for a device never really reached the actual maximum frame size as the VLAN header length was not included the calculation for that value. As a result some parts only supported a maximum frame size of either 1496 in the case of parts that didn't support jumbo frames, and 8996 in the case of the parts that do. The second issue is the fact that there were several checks that weren't updated so as a result setting an MTU of 1500 was treated as enabling jumbo frames as the calculated value was 1522 instead of 1518. I have addressed those by replacing ETH_FRAME_LEN with VLAN_ETH_FRAME_LEN where appropriate. The final issue was the fact that lowering the MTU below 1500 would cause the driver to allocate 2K buffers for the rings. This is an old issue that was fixed several years ago in igb/ixgbe and I am addressing now by just replacing == with a <= so that we always just round up to 1522 for anything that isn't a jumbo frame. Fixes: c751a3d58cf2d ("e1000e: Correctly include VLAN_HLEN when changing interface MTU") Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * e100: don't initialize int object to zeroJean Sacren2015-05-041-1/+1
| | | | | | | | | | | | | | | | 'err' will be overwritten so no need to initialize it to zero. Signed-off-by: Jean Sacren <sakiwit@gmail.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * igb: simplify and clean up igb_enable_mas()Todd Fujinaka2015-05-041-20/+7
| | | | | | | | | | | | | | | | | | | | | | igb_enable_mas() should only be called for the 82575 and has no clear return so changing it to void. Also simplify the odd conditional expression. Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* | Merge branch 'tipc-topology-cleanup'David S. Miller2015-05-045-165/+137
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ying Xue says: ==================== tipc: cleanup topology server Not only function names declared in subscr.c are very confused, but also topology server's locking policy is not designed very well, for instance, usually leading to panic in some special corner cases. In this series, we attempt to eliminate the confusion of function names and simplify topology server's locking policy to solve above mentioned issues. More importantly, the change will make relevant code easily understandable and maintainable. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tipc: deal with return value of tipc_conn_new callbackYing Xue2015-05-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Once tipc_conn_new() returns NULL, the connection should be shut down immediately, otherwise, oops may happen due to the NULL pointer. Signed-off-by: Ying Xue <ying.xue@windriver.com> Reviewed-by: Jon Maloy <jon.maloy@ericson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tipc: adjust locking policy of subscriptionYing Xue2015-05-041-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently subscriber's lock protects not only subscriber's subscription list but also all subscriptions linked into the list. However, as all members of subscription are never changed after they are initialized, it's unnecessary for subscription to be protected under subscriber's lock. If the lock is used to only protect subscriber's subscription list, the adjustment not only makes the locking policy simpler, but also helps to avoid a deadlock which may happen once creating a subscription is failed. Signed-off-by: Ying Xue <ying.xue@windriver.com> Reviewed-by: Jon Maloy <jon.maloy@ericson.com> Signed-off-by: David S. Miller <davem@davemloft.net>