1. 04 5月, 2012 1 次提交
    • S
      net/niu: remove one superfluous dma mask check · f1925088
      Sebastian Andrzej Siewior 提交于
      The idea here seems to be to get a 44bit DMA mask working and if this
      fails it should fallback to a 32bit DMA mask. The dma_mask variable is
      assigned once to 44bit and never updated. pci_set_dma_mask() and
      pci_set_consistent_dma_mask() are both implemented as functions so there
      is no evil macro which might update dma_mask. Looking at the assembly, I
      see a call to dma_set_mask() followed by dma_supported() and then a jump
      passed the second dma_set_mask(). The only way to get to second
      dma_set_mask() call is by an error code in the first one.
      
      So I hereby remove the check since it looks superfluous. Please ignore
      the path if there is black magic involved.
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f1925088
  2. 24 2月, 2012 1 次提交
  3. 01 2月, 2012 1 次提交
  4. 03 12月, 2011 1 次提交
  5. 02 12月, 2011 2 次提交
  6. 22 11月, 2011 1 次提交
  7. 17 11月, 2011 1 次提交
  8. 14 11月, 2011 1 次提交
  9. 19 10月, 2011 1 次提交
  10. 14 10月, 2011 1 次提交
  11. 17 9月, 2011 2 次提交
  12. 16 9月, 2011 1 次提交
  13. 18 8月, 2011 1 次提交
  14. 11 8月, 2011 1 次提交
    • J
      cassini/niu/sun*: Move the Sun drivers · e689cf4a
      Jeff Kirsher 提交于
      Moves the Sun drivers into drivers/net/ethernet/sun/ and make
      the necessary Kconfig and Makefile changes.
      
      Oliver Hartkopp <socketcan@hartkopp.net> suggested removing the
      sun* prefix on the driver names.  This type of change I will
      leave up to the driver maintainers.
      
      CC: Sam Creasey <sammy@sammy.net>
      CC: Adrian Sun <asun@darksunrising.com>
      CC: Benjamin Herrenscmidt <benh@kernel.crashing.org>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      e689cf4a
  15. 01 8月, 2011 1 次提交
  16. 28 6月, 2011 1 次提交
  17. 09 6月, 2011 1 次提交
  18. 07 6月, 2011 1 次提交
  19. 30 4月, 2011 2 次提交
  20. 18 4月, 2011 1 次提交
  21. 15 4月, 2011 1 次提交
    • A
      ethtool: allow custom interval for physical identification · fce55922
      Allan, Bruce W 提交于
      When physical identification of an adapter is done by toggling the
      mechanism on and off through software utilizing the set_phys_id operation,
      it is done with a fixed duration for both on and off states.  Some drivers
      may want to set a custom duration for the on/off intervals.  This patch
      changes the API so the return code from the driver's entry point when it
      is called with ETHTOOL_ID_ACTIVE can specify the frequency at which to
      cycle the on/off states, and updates the drivers that have already been
      converted to use the new set_phys_id and use the synchronous method for
      identifying an adapter.
      
      The physical identification frequency set in the updated drivers is based
      on how it was done prior to the introduction of set_phys_id.
      
      Compile tested only.  Also fixes a compiler warning in sfc.
      
      v2: drivers do not return -EINVAL for ETHOOL_ID_ACTIVE
      v3: fold patchset into single patch and cleanup per Ben's feedback
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Cc: Ben Hutchings <bhutchings@solarflare.com>
      Cc: Sathya Perla <sathya.perla@emulex.com>
      Cc: Subbu Seetharaman <subbu.seetharaman@emulex.com>
      Cc: Ajit Khaparde <ajit.khaparde@emulex.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Divy Le Ray <divy@chelsio.com>
      Cc: Don Fry <pcnet32@frontier.com>
      Cc: Jon Mason <jdmason@kudzu.us>
      Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
      Cc: Steve Hodgson <shodgson@solarflare.com>
      Cc: Stephen Hemminger <shemminger@linux-foundation.org>
      Cc: Matt Carlson <mcarlson@broadcom.com>
      Acked-by: NJon Mason <jdmason@kudzu.us>
      Acked-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fce55922
  22. 12 4月, 2011 2 次提交
  23. 07 4月, 2011 1 次提交
  24. 31 3月, 2011 1 次提交
    • J
      drivers/net: Remove IRQF_SAMPLE_RANDOM flag from network drivers · ab392d2d
      Javier Martinez Canillas 提交于
      The IRQF_SAMPLE_RANDOM flag is marked as deprecated and will be removed.
      
      Every input point to the kernel's entropy pool have to better document the
      type of entropy source it is.
      
      drivers/char/random.c now implements a set of interfaces that can be used for
      devices to collect enviromental noise. IRQF_SAMPLE_RANDOM will be replaced
      with these add_*_randomness exported functions.
      
      Network drivers are not a good source of entropy. They use as a source of
      entropy essentially a remote host. Which means that the source of entropy can
      be potentially controlled by an attacker. Also, with heavy workloads the
      entropy decreases due to less hardware interrupts happening thanks to irq
      mitigation and NAPI.
      
      If a system relies in its network interface as a entropy source it has a false
      sense of security. Systems that don't have devices whose drivers are good
      sources of entropy, should either use a hardware random number generator or
      feed the kernel's entropy pool from userspace using other sources of entropy
      such as EGD, video_entropyd, timer_entropyd and audio-entropyd.
      Signed-off-by: NJavier Martinez Canillas <martinez.javier@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ab392d2d
  25. 20 3月, 2011 1 次提交
    • D
      niu: Rename NIU parent platform device name to fix conflict. · a769f496
      David S. Miller 提交于
      When the OF device driver bits were converted over to the platform
      device infrastructure in commit 74888760
      ("dt/net: Eliminate users of of_platform_{,un}register_driver") we
      inadvertantly created probing problems in the OF case.
      
      The NIU driver creates a dummy platform device to represent the
      board that contains one or more child NIU devices.  Unfortunately
      we use the same name, "niu", as the OF device driver itself uses.
      
      The result is that we try to probe the dummy "niu" parent device we
      create, and since it has a NULL ofdevice pointer etc. everything
      explodes:
      
      [783019.128243] niu: niu.c:v1.1 (Apr 22, 2010)
      [783019.128810] Unable to handle kernel NULL pointer dereference
      [783019.128949] tsk->{mm,active_mm}->context = 000000000000039e
      [783019.129078] tsk->{mm,active_mm}->pgd = fffff803afc5a000
      [783019.129206]               \|/ ____ \|/
      [783019.129213]               "@'/ .. \`@"
      [783019.129220]               /_| \__/ |_\
      [783019.129226]                  \__U_/
      [783019.129378] modprobe(2004): Oops [#1]
      [783019.129423] TSTATE: 0000000011001602 TPC: 0000000010052ff8 TNPC: 000000000061bbb4 Y: 00000000    Not tainted
      [783019.129542] TPC: <niu_of_probe+0x3c/0x2dc [niu]>
      [783019.129624] g0: 8080000000000000 g1: 0000000000000000 g2: 0000000010056000 g3: 0000000000000002
      [783019.129733] g4: fffff803fc1da0c0 g5: fffff800441e2000 g6: fffff803fba84000 g7: 0000000000000000
      [783019.129842] o0: fffff803fe7df010 o1: 0000000010055700 o2: 0000000000000000 o3: fffff803fbacaca0
      [783019.129951] o4: 0000000000000080 o5: 0000000000777908 sp: fffff803fba866e1 ret_pc: 0000000010052ff4
      [783019.130083] RPC: <niu_of_probe+0x38/0x2dc [niu]>
      [783019.130165] l0: fffff803fe7df010 l1: fffff803fbacafc0 l2: fffff803fbacaca0 l3: ffffffffffffffed
      [783019.130273] l4: 0000000000000000 l5: 000000007fffffff l6: fffff803fba86f40 l7: 0000000000000001
      [783019.130382] i0: fffff803fe7df000 i1: fffff803fc20aba0 i2: 0000000000000000 i3: 0000000000000001
      [783019.130490] i4: 0000000000000000 i5: 0000000000000000 i6: fffff803fba867a1 i7: 000000000062038c
      [783019.130614] I7: <platform_drv_probe+0xc/0x20>
      
      Fix by simply renaming the parent device to "niu-board".
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a769f496
  26. 01 3月, 2011 1 次提交
  27. 04 2月, 2011 1 次提交
    • D
      niu: Fix races between up/down and get_stats. · 9690c636
      David S. Miller 提交于
      As reported by Flavio Leitner, there is no synchronization to protect
      NIU's get_stats method from seeing a NULL pointer in either
      np->rx_rings or np->tx_rings.  In fact, as far as ->ndo_get_stats
      is concerned, these values are set completely asynchronously.
      
      Flavio attempted to fix this using a RW semaphore, which in fact
      works most of the time.  However, dev_get_stats() can be invoked
      from non-sleepable contexts in some cases, so this fix doesn't
      work in all cases.
      
      So instead, control the visibility of the np->{rx,tx}_ring pointers
      when the device is being brough up, and use properties of the device
      down sequence to our advantage.
      
      In niu_get_stats(), return immediately if netif_running() is false.
      The device shutdown sequence first marks the device as not running (by
      clearing the __LINK_STATE_START bit), then it performans a
      synchronize_rcu() (in dev_deactive_many()), and then finally it
      invokes the driver ->ndo_stop() method.
      
      This guarentees that all invocations of niu_get_stats() either see
      netif_running() as false, or they see the channel pointers before
      ->ndo_stop() clears them out.
      
      If netif_running() is true, protect against startup races by loading
      the np->{rx,tx}_rings pointer into a local variable, and punting if
      it is NULL.  Use ACCESS_ONCE to prevent the compiler from reloading
      the pointer on us.
      
      Also, during open, control the order in which the pointers and the
      ring counts become visible globally using SMP write memory barriers.
      We make sure the np->num_{rx,tx}_rings value is stable and visible
      before np->{rx,tx}_rings is.
      
      Such visibility control is not necessary on the niu_free_channels()
      side because of the RCU sequencing that happens during device down as
      described above.  We are always guarenteed that all niu_get_stats
      calls are finished, or will see netif_running() false, by the time
      ->ndo_stop is invoked.
      Reported-by: NFlavio Leitner <fleitner@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9690c636
  28. 17 12月, 2010 1 次提交
  29. 12 12月, 2010 1 次提交
    • T
      drivers/net: don't use flush_scheduled_work() · 23f333a2
      Tejun Heo 提交于
      flush_scheduled_work() is on its way out.  This patch contains simple
      conversions to replace flush_scheduled_work() usage with direct
      cancels and flushes.
      
      Directly cancel the used works on driver detach and flush them in
      other cases.
      
      The conversions are mostly straight forward and the only dangers are,
      
      * Forgetting to cancel/flush one or more used works.
      
      * Cancelling when a work should be flushed (ie. the work must be
        executed once scheduled whether the driver is detaching or not).
      
      I've gone over the changes multiple times but it would be much
      appreciated if you can review with the above points in mind.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jay Cliburn <jcliburn@gmail.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Divy Le Ray <divy@chelsio.com>
      Cc: e1000-devel@lists.sourceforge.net
      Cc: Vasanthy Kolluri <vkolluri@cisco.com>
      Cc: Samuel Ortiz <samuel@sortiz.org>
      Cc: Lennert Buytenhek <buytenh@wantstofly.org>
      Cc: Andrew Gallatin <gallatin@myri.com>
      Cc: Francois Romieu <romieu@fr.zoreil.com>
      Cc: Ramkrishna Vepa <ramkrishna.vepa@exar.com>
      Cc: Matt Carlson <mcarlson@broadcom.com>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
      Cc: netdev@vger.kernel.org
      23f333a2
  30. 18 10月, 2010 1 次提交
  31. 28 9月, 2010 1 次提交
  32. 27 9月, 2010 1 次提交
  33. 16 9月, 2010 1 次提交
  34. 09 9月, 2010 1 次提交
  35. 03 9月, 2010 1 次提交
  36. 18 8月, 2010 1 次提交