1. 17 7月, 2012 9 次提交
  2. 05 7月, 2012 12 次提交
  3. 01 7月, 2012 5 次提交
    • G
      phy: add the EEE support and the way to access to the MMD registers. · a59a4d19
      Giuseppe CAVALLARO 提交于
      This patch adds the support for the Energy-Efficient Ethernet (EEE)
      to the Physical Abstraction Layer.
      To support the EEE we have to access to the MMD registers 3.20 and
      7.60/61. So two new functions have been added to read/write the MMD
      registers (clause 45).
      
      An Ethernet driver (I tested the stmmac) can invoke the phy_init_eee to properly
      check if the EEE is supported by the PHYs and it can also set the clock
      stop enable bit in the 3.0 register.
      The phy_get_eee_err can be used for reporting the number of time where
      the PHY failed to complete its normal wake sequence.
      
      In the end, this patch also adds the EEE ethtool support implementing:
       o phy_ethtool_set_eee
       o phy_ethtool_get_eee
      
      v1: initial patch
      v2: fixed some errors especially on naming convention
      v3: renamed again the mmd read/write functions thank to Ben's feedback
      v4: moved file to phy.c and added the ethtool support.
      v5: fixed phy_adv_to_eee, phy_eee_to_supported, phy_eee_to_adv return
          values according to ethtool API (thanks to Ben's feedback).
          Renamed some macros to avoid too long names.
      v6: fixed kernel-doc comments to be properly parsed.
          Fixed the phy_init_eee function: we need to check which link mode
          was autonegotiated and then the corresponding bits in 7.60 and 7.61
          registers.
      v7: reviewed the way to get the negotiated settings.
      v8: fixed a problem in the phy_init_eee return value erroneously added
          when included the phy_read_status call.
      v9: do not remove the MDIO_AN_EEE_ADV_100TX and MDIO_AN_EEE_ADV_1000T
          and fixed the eee_{cap,lp,adv} declaration as "int" instead of u16.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Reviewed-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a59a4d19
    • G
      stmmac: add the Energy Efficient Ethernet support · d765955d
      Giuseppe CAVALLARO 提交于
      This patch adds the Energy Efficient Ethernet support to the stmmac.
      
      Please see the driver's documentation for further details about this support
      in the driver.
      
      Thanks also goes to Rayagond Kokatanur for his first implementation.
      
      Note:
       to clearly manage and expose the lpi interrupt status and eee ethtool
       stats I've had to do some modifications to the driver's design and I
       found really useful to move other parts of the code (e.g. mmc irq stat)
       in the main directly. So this means that some core has been reworked
       to introduce the EEE.
      
      v1: initial patch
      v2: fixed some sparse issues (typos)
      v3: erroneously sent the v2 renamed as v3
      v4:
      	o Fixed the return value of the stmmac_eee_init as suggested by D.Miller
      	o Totally reviewed the ethtool support for EEE
      	o Added a new internal parameter to tune the SW timer for TX LPI.
      v5: do not change any eee setting in case of the stmmac_ethtool_op_set_eee fails
          (it has to return -EOPNOTSUPP in that case).
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d765955d
    • G
      stmmac: do not use strict_strtoul but kstrtoint · ea2ab871
      Giuseppe CAVALLARO 提交于
      This patch replaces the obsolete strict_strtoul with kstrtoint.
      
      v2: also removed casting on kstrtoul.
      v3: use kstrtoint instead of kstrtoul due to all vars are integer.
          thanks to E. Dumazet.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ea2ab871
    • B
      e1000e: remove use of IP payload checksum · 2e1706f2
      Bruce Allan 提交于
      Currently only used when packet split mode is enabled with jumbo frames,
      IP payload checksum (for fragmented UDP packets) is mutually exclusive with
      receive hashing offload since the hardware uses the same space in the
      receive descriptor for the hardware-provided packet checksum and the RSS
      hash, respectively.  Users currently must disable jumbos when receive
      hashing offload is enabled, or vice versa, because of this incompatibility.
      Since testing has shown that IP payload checksum does not provide any real
      benefit, just remove it so that there is no longer a choice between jumbos
      or receive hashing offload but not both as done in other Intel GbE drivers
      (e.g. e1000, igb).
      
      Also, add a missing check for IP checksum error reported by the hardware;
      let the stack verify the checksum when this happens.
      
      CC: stable <stable@vger.kernel.org> [3.4]
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2e1706f2
    • M
      igbvf: fix divide by zero · 0e90b49c
      Mitch A Williams 提交于
      Using ethtool -C ethX rx-usecs 0 crashes with a divide by zero.
      Refactor this function to fix this issue and make it more clear
      what the intent of each conditional is. Add comment regarding
      using a setting of zero.
      
      CC: stable <stable@vger.kernel.org> [3.3+]
      CC: David Ahern <daahern@cisco.com>
      Signed-off-by: NMitch Williams <mitch.a.williams@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0e90b49c
  4. 30 6月, 2012 4 次提交
  5. 29 6月, 2012 10 次提交
    • M
      netxen_nic: restrict force firmware dump when dump is disabled. · a777c892
      Manish chopra 提交于
      o Set the ethtool_dump flag (=ETH_FW_DUMP_DISABLE) when dump is disabled.
      o update driver version to 4.0.80
      Signed-off-by: NManish chopra <manish.chopra@qlogic.com>
      Signed-off-by: NRajesh Borundia <rajesh.borundia@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a777c892
    • A
      xen/netback: only non-freed SKB is queued into tx_queue · 1e0b6eac
      Annie Li 提交于
      After SKB is queued into tx_queue, it will be freed if request_gop is NULL.
      However, no dequeue action is called in this situation, it is likely that
      tx_queue constains freed SKB. This patch should fix this issue, and it is
      based on 3.5.0-rc4+.
      
      This issue is found through code inspection, no bug is seen with it currently.
      I run netperf test for several hours, and no network regression was found.
      Signed-off-by: NAnnie Li <annie.li@oracle.com>
      Acked-by: NIan Campbell <ian.campbell@citrix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1e0b6eac
    • S
      caif-hsi: Fix merge issues. · 7fa8ad6d
      Sjur Brændeland 提交于
      Fix the failing merge in net-next by reverting the last
      net-next merge for caif_hsi.c and then merge in the commit:
      "caif-hsi: Bugfix - Piggyback'ed embedded CAIF frame lost"
      from the net repository.
      
      The commit:"caif-hsi: Add missing return in error path" from
      net repository was dropped, as it changed code previously removed in the
      net-next repository.
      Signed-off-by: NSjur Brændeland <sjur.brandeland@stericsson.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7fa8ad6d
    • T
      net: Use NLMSG_DEFAULT_SIZE in combination with nlmsg_new() · 58050fce
      Thomas Graf 提交于
      Using NLMSG_GOODSIZE results in multiple pages being used as
      nlmsg_new() will automatically add the size of the netlink
      header to the payload thus exceeding the page limit.
      
      NLMSG_DEFAULT_SIZE takes this into account.
      Signed-off-by: NThomas Graf <tgraf@suug.ch>
      Cc: Jiri Pirko <jpirko@redhat.com>
      Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
      Cc: Sergey Lapin <slapin@ossfans.org>
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Cc: Lauro Ramos Venancio <lauro.venancio@openbossa.org>
      Cc: Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Reviewed-by: NJiri Pirko <jpirko@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      58050fce
    • D
      davinci_cpdma: include linux/module.h · 76fbc247
      Daniel Mack 提交于
      This fixes a number of warnings such as:
      
        CC      drivers/net/ethernet/ti/davinci_cpdma.o
      drivers/net/ethernet/ti/davinci_cpdma.c:279:1: warning: data definition
      has no type or storage class
      drivers/net/ethernet/ti/davinci_cpdma.c:279:1: warning: type defaults to
      ‘int’ in declaration of ‘EXPORT_SYMBOL_GPL’
      drivers/net/ethernet/ti/davinci_cpdma.c:279:1: warning: parameter names
      (without types) in function declaration
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Cc: Vaibhav Hiremath <hvaibhav@ti.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Christian Riesch <christian.riesch@omicron.at>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      76fbc247
    • C
      gianfar: Fix RXICr/TXICr programming for multi-queue mode · 9740e001
      Claudiu Manoil 提交于
      The correct behavior is to program the interrupt coalescing regs
      (RXICr/TXICr) in accordance with the Rx/Tx Q's "rx/txcoalescing"
      flag. That is, if the coalescing flag is 0 for a given Rx/Tx queue
      then the corresponding coalescing register should be cleared.
      This behavior is correctly implemented for the single-queue mode
      (SQ_SG_MODE), but not for the multi-queue mode (MQ_MG_MODE).
      This fixes the later case.
      Signed-off-by: NClaudiu Manoil <claudiu.manoil@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9740e001
    • B
      net: qmi_wwan: fix Oops while disconnecting · d9b87068
      Bjørn Mork 提交于
      usbnet_disconnect() will set intfdata to NULL before calling
      the minidriver unbind function.  The cdc_wdm subdriver cannot
      know that it is disconnecting until the qmi_wwan unbind
      function has called its disconnect function.  This means that
      we must be able to support the cdc_wdm subdriver operating
      normally while usbnet_disconnect() is running, and in
      particular that intfdata may be NULL.
      
      The only place this matters is in qmi_wwan_cdc_wdm_manage_power
      which is called from cdc_wdm.  Simply testing for NULL
      intfdata there is sufficient to allow it to continue working
      at all times.
      
      Fixes this Oops where a cdc-wdm device was closed while the
      USB device was disconnecting, causing wdm_release to call
      qmi_wwan_cdc_wdm_manage_power after intfdata was set to
      NULL by usbnet_disconnect:
      
      [41819.087460] BUG: unable to handle kernel NULL pointer dereference at 00000080
      [41819.087815] IP: [<f8640458>] qmi_wwan_manage_power+0x68/0x90 [qmi_wwan]
      [41819.088028] *pdpt = 000000000314f001 *pde = 0000000000000000
      [41819.088028] Oops: 0002 [#1] SMP
      [41819.088028] Modules linked in: qmi_wwan option usb_wwan usbserial usbnet
      cdc_wdm nls_iso8859_1 nls_cp437 vfat fat usb_storage bnep rfcomm bluetooth
      parport_pc ppdev binfmt_misc iptable_nat nf_nat nf_conntrack_ipv4
      nf_conntrack nf_defrag_ipv4 iptable_mangle iptable_filter ip_tables
      x_tables dm_crypt uvcvideo snd_hda_codec_realtek snd_hda_intel
      videobuf2_core snd_hda_codec joydev videodev videobuf2_vmalloc
      hid_multitouch snd_hwdep arc4 videobuf2_memops snd_pcm snd_seq_midi
      snd_rawmidi snd_seq_midi_event ath9k mac80211 snd_seq ath9k_common ath9k_hw
      ath snd_timer snd_seq_device sparse_keymap dm_multipath scsi_dh coretemp
      mac_hid snd soundcore cfg80211 snd_page_alloc psmouse serio_raw microcode
      lp parport dm_mirror dm_region_hash dm_log usbhid hid i915 drm_kms_helper
      drm r8169 i2c_algo_bit wmi video [last unloaded: qmi_wwan]
      [41819.088028]
      [41819.088028] Pid: 23292, comm: qmicli Not tainted 3.4.0-5-generic #11-Ubuntu GIGABYTE T1005/T1005
      [41819.088028] EIP: 0060:[<f8640458>] EFLAGS: 00010246 CPU: 1
      [41819.088028] EIP is at qmi_wwan_manage_power+0x68/0x90 [qmi_wwan]
      [41819.088028] EAX: 00000000 EBX: 00000000 ECX: 000000c3 EDX: 00000000
      [41819.088028] ESI: c3b27658 EDI: 00000000 EBP: c298bea4 ESP: c298be98
      [41819.088028]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      [41819.088028] CR0: 8005003b CR2: 00000080 CR3: 3605e000 CR4: 000007f0
      [41819.088028] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      [41819.088028] DR6: ffff0ff0 DR7: 00000400
      [41819.088028] Process qmicli (pid: 23292, ti=c298a000 task=f343b280 task.ti=c298a000)
      [41819.088028] Stack:
      [41819.088028]  00000000 c3b27658 e2a80d00 c298beb0 f864051a c3b27600 c298bec0 f9027099
      [41819.088028]  c2fd6000 00000008 c298bef0 c1147f96 00000001 00000000 00000000 f4e54790
      [41819.088028]  ecf43a00 ecf43a00 c2fd6008 c2fd6000 ebbd7600 ffffffb9 c298bf08 c1144474
      [41819.088028] Call Trace:
      [41819.088028]  [<f864051a>] qmi_wwan_cdc_wdm_manage_power+0x1a/0x20 [qmi_wwan]
      [41819.088028]  [<f9027099>] wdm_release+0x69/0x70 [cdc_wdm]
      [41819.088028]  [<c1147f96>] fput+0xe6/0x210
      [41819.088028]  [<c1144474>] filp_close+0x54/0x80
      [41819.088028]  [<c1046a65>] put_files_struct+0x75/0xc0
      [41819.088028]  [<c1046b56>] exit_files+0x46/0x60
      [41819.088028]  [<c1046f81>] do_exit+0x141/0x780
      [41819.088028]  [<c107248f>] ? wake_up_state+0xf/0x20
      [41819.088028]  [<c1053f48>] ? signal_wake_up+0x28/0x40
      [41819.088028]  [<c1054f3b>] ? zap_other_threads+0x6b/0x80
      [41819.088028]  [<c1047864>] do_group_exit+0x34/0xa0
      [41819.088028]  [<c10478e8>] sys_exit_group+0x18/0x20
      [41819.088028]  [<c15bb7df>] sysenter_do_call+0x12/0x28
      [41819.088028] Code: 04 83 e7 01 c1 e7 03 0f b6 42 18 83 e0 f7 09 f8 88 42
      18 8b 43 04 e8 48 9a dd c8 89 f0 8b 5d f4 8b 75 f8 8b 7d fc 89 ec 5d c3 90
      <f0> ff 88 80 00 00 00 0f 94 c0 84 c0 75 b7 31 f6 8b 5d f4 89 f0
      [41819.088028] EIP: [<f8640458>] qmi_wwan_manage_power+0x68/0x90 [qmi_wwan] SS:ESP 0068:c298be98
      [41819.088028] CR2: 0000000000000080
      [41819.149492] ---[ end trace 0944479ff8257f55 ]---
      Reported-by: NMarius Bjørnstad Kotsbak <marius.kotsbak@gmail.com>
      Cc: <stable@vger.kernel.org> # v3.4
      Signed-off-by: NBjørn Mork <bjorn@mork.no>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d9b87068
    • A
      mwifiex: retrieve correct max_power information in reg_notifier handler · 34202e28
      Amitkumar Karwar 提交于
      As we don't provide custom regulatory rules to cfg80211,
      "chan->max_power" remains uninitialized (0dbm) and
      "chan->max_reg_power" will contain maximum power for a channel
      extracted from regulatory rules provided by CRDA; hence use
      "chan->max_reg_power" in reg_notifier handler instead of
      "chan->max_power" to set max_power in firmware.
      Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com>
      Signed-off-by: NBing Zhao <bzhao@marvell.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      34202e28
    • A
      mwifiex: do not advertise custom regulatory domain capability · 2041d7df
      Amitkumar Karwar 提交于
      Since we don't support custom regulatory domains,
      WIPHY_FLAG_CUSTOM_REGULATORY should not be enabled during wiphy
      registration.
      Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com>
      Signed-off-by: NBing Zhao <bzhao@marvell.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2041d7df
    • A
      mwifiex: use correct firmware command to get power limits · caa8984f
      Amitkumar Karwar 提交于
      "priv->max_tx_power_level" and "priv->min_tx_power_level" variables
      are initialized to maximum and minimum power levels supported by
      hardware by sending correct firmware command.
      Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com>
      Signed-off-by: NBing Zhao <bzhao@marvell.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      caa8984f