1. 17 9月, 2011 2 次提交
  2. 16 9月, 2011 9 次提交
  3. 31 8月, 2011 1 次提交
  4. 27 8月, 2011 1 次提交
  5. 18 8月, 2011 1 次提交
  6. 11 8月, 2011 2 次提交
    • R
      bna: ENET and Tx Rx Redesign Enablement · 078086f3
      Rasesh Mody 提交于
      Change details:
      This patch contains additional structure and function definition changes
      that are required to enable the new msgq/enet/txrx redesign introduced
      by the previous 4 patches.
       - structure and function definition changes to header files as a result
         of Ethport, Enet, IOCEth, Tx, Rx redesign.
       - ethtool changes to use new enet function and definitions
       - Set number of Tx and Rx queues bassed on underlying hardware. Define
         separate macros for maximum and supported numbers of Tx and Rx queues
         based on underlying hardware. Take VLAN header into account for MTU
         calculation. Default to INTx mode when pci_enable_msix() fails. Set a
         bit in Rx poll routine, check and wait for that bit to be cleared in
         the cleanup routine before proceeding.
       - The TX and Rx coalesce settings are programmed in steps of 5 us. The value
         that are not divisible by 5 are rounded to the next lower number. This was
         causing the value os 1 to 4 to be rounded to 0, which is an invalid setting.
         When creating Rx and Tx object, we are currently assigning the default
         values of Rx and Tx coalescing_timeo. If these values are changed in the
         driver to a different value, the change is lost during such operations as
         MTU change. In order to avoid that, pass the configured value of
         coalescing_timeo before Rx and Tx object creation. Fix
         bnad_tx_coalescing_timeo_set() so it applies to all the Tx objects.
       - Reorg uninitialization path in case of pci_probe failure.
       - Hardware clock setup changes to pass asic generation, port modes and
         asic mode as part firmware boot parameters to firmware.
       - FW mailbox interface changes to defined asic specific mailbox interfaces.
         h/w mailbox interfaces take 8-bit FIDs and 2-bit port id for owner. Cleaned
         up mailbox definitions and usage for new and old HW. Eliminated usage of
         ASIC ID. MSI-X vector assignment and programming done by firmware. Fixed
         host offsets for CPE/RME queue registers.
       - Implement polling mechanism for FW ready to have poll mechanism replaces
         the current interrupt based FW READY method. The timer based poll routine
         in IOC will query the ioc_fwstate register to see if there is a state
         change in FW, and sends the READY event. Removed infrastructure needed to
         support mbox READY event from fw as well as IOC code.
       - Move FW init to HW init. Handle the case where PCI mapping goes away when
         IOCPF state machine is waiting for semaphore.
       - Add IOC mbox call back to client indicating that the command is sent.
      Signed-off-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      078086f3
    • J
      bna: Move the Brocade driver · f844a0ea
      Jeff Kirsher 提交于
      Moves the Brocade driver into drivers/net/ethernet/brocade/ and make
      the necessary Kconfig and Makefile changes.
      
      CC: Rasesh Mody <rmody@brocade.com>
      CC: Debashis Dutt <ddutt@brocade.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      f844a0ea
  7. 24 7月, 2011 1 次提交
  8. 23 7月, 2011 3 次提交
  9. 22 7月, 2011 1 次提交
  10. 15 7月, 2011 1 次提交
    • S
      Separate handling of irq type flags variable from the irq_flags request_irq variable · 8279171a
      Shyam Iyer 提交于
      Commit 5f77898d does not completely
      fix the problem of handling allocations with irqs disabled..  The
      below patch on top of it fixes the problem completely.
      
      Based on review by "Ivan Vecera" <ivecera@redhat.com>..
      "
      Small note, the root of the problem was that non-atomic allocation was requested with IRQs disabled. Your patch description does not contain wwhy were the IRQs disabled.
      
      The function bnad_mbox_irq_alloc incorrectly uses 'flags' var for two different things, 1) to save current CPU flags and 2) for request_irq
      call.
      First the spin_lock_irqsave disables the IRQs and saves _all_ CPU flags (including one that enables/disables interrupts) to 'flags'. Then the 'flags' is overwritten by 0 or 0x80 (IRQF_SHARED). Finally the spin_unlock_irqrestore should restore saved flags, but these flags are now either 0x00 or 0x80. The interrupt bit value in flags register on x86 arch is 0x100.
      This means that the interrupt bit is zero (IRQs disabled) after spin_unlock_irqrestore so the request_irq function is called with disabled interrupts.
      "
      Signed-off-by: NShyam Iyer <shyam_iyer@dell.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8279171a
  11. 09 7月, 2011 1 次提交
  12. 02 7月, 2011 1 次提交
    • S
      Fix call trace when interrupts are disabled while sleeping function kzalloc is called · 5f77898d
      Shyam Iyer 提交于
      request_threaded irq will call kzalloc that can sleep. Initializing the flags variable outside of spin_lock_irqsave/restore in bnad_mbox_irq_alloc will avoid call traces like below.
      
      Jun 27 08:15:24 home-t710 kernel: [11735.634550] Brocade 10G Ethernet driver
      Jun 27 08:15:24 home-t710 kernel: [11735.634590] bnad_pci_probe : (0xffff880427f3d000, 0xffffffffa020f3e0) PCI Func : (2)
      Jun 27 08:15:24 home-t710 kernel: [11735.637677] bna 0000:82:00.2: PCI INT A -> GSI 66 (level, low) -> IRQ 66
      Jun 27 08:15:24 home-t710 kernel: [11735.638290] bar0 mapped to ffffc90014980000, len 262144
      Jun 27 08:15:24 home-t710 kernel: [11735.638732] BUG: sleeping function called from invalid context at mm/slub.c:847
      Jun 27 08:15:24 home-t710 kernel: [11735.638736] in_atomic(): 0, irqs_disabled(): 1, pid: 11243, name: insmod
      Jun 27 08:15:24 home-t710 kernel: [11735.638740] Pid: 11243, comm: insmod Not tainted 3.0.0-rc4+ #6
      Jun 27 08:15:24 home-t710 kernel: [11735.638743] Call Trace:
      Jun 27 08:15:24 home-t710 kernel: [11735.638755]  [<ffffffff81046427>] __might_sleep+0xeb/0xf0
      Jun 27 08:15:24 home-t710 kernel: [11735.638766]  [<ffffffffa01fe469>] ? netif_wake_queue+0x3d/0x3d [bna]
      Jun 27 08:15:24 home-t710 kernel: [11735.638773]  [<ffffffff8111201c>] kmem_cache_alloc_trace+0x43/0xd8
      Jun 27 08:15:24 home-t710 kernel: [11735.638782]  [<ffffffffa01fe469>] ? netif_wake_queue+0x3d/0x3d [bna]
      Jun 27 08:15:24 home-t710 kernel: [11735.638787]  [<ffffffff810ab791>] request_threaded_irq+0xa1/0x113
      Jun 27 08:15:24 home-t710 kernel: [11735.638798]  [<ffffffffa020f0c0>] bnad_pci_probe+0x612/0x8e5 [bna]
      Jun 27 08:15:24 home-t710 kernel: [11735.638807]  [<ffffffffa01fe469>] ? netif_wake_queue+0x3d/0x3d [bna]
      Jun 27 08:15:24 home-t710 kernel: [11735.638816]  [<ffffffff81482ef4>] ? _raw_spin_unlock_irqrestore+0x17/0x19
      Jun 27 08:15:24 home-t710 kernel: [11735.638822]  [<ffffffff8124d17a>] local_pci_probe+0x44/0x75
      Jun 27 08:15:24 home-t710 kernel: [11735.638826]  [<ffffffff8124dc06>] pci_device_probe+0xd0/0xff
      Jun 27 08:15:24 home-t710 kernel: [11735.638832]  [<ffffffff812ef8ab>] driver_probe_device+0x131/0x213
      Jun 27 08:15:24 home-t710 kernel: [11735.638836]  [<ffffffff812ef9e7>] __driver_attach+0x5a/0x7e
      Jun 27 08:15:24 home-t710 kernel: [11735.638840]  [<ffffffff812ef98d>] ? driver_probe_device+0x213/0x213
      Jun 27 08:15:24 home-t710 kernel: [11735.638844]  [<ffffffff812ee933>] bus_for_each_dev+0x53/0x89
      Jun 27 08:15:24 home-t710 kernel: [11735.638848]  [<ffffffff812ef48a>] driver_attach+0x1e/0x20
      Jun 27 08:15:24 home-t710 kernel: [11735.638852]  [<ffffffff812ef0ae>] bus_add_driver+0xd1/0x224
      Jun 27 08:15:24 home-t710 kernel: [11735.638858]  [<ffffffffa01b8000>] ? 0xffffffffa01b7fff
      Jun 27 08:15:24 home-t710 kernel: [11735.638862]  [<ffffffff812efe57>] driver_register+0x98/0x105
      Jun 27 08:15:24 home-t710 kernel: [11735.638866]  [<ffffffffa01b8000>] ? 0xffffffffa01b7fff
      Jun 27 08:15:24 home-t710 kernel: [11735.638871]  [<ffffffff8124e4c9>] __pci_register_driver+0x56/0xc1
      Jun 27 08:15:24 home-t710 kernel: [11735.638875]  [<ffffffffa01b8000>] ? 0xffffffffa01b7fff
      Jun 27 08:15:24 home-t710 kernel: [11735.638884]  [<ffffffffa01b8040>] bnad_module_init+0x40/0x60 [bna]
      Jun 27 08:15:24 home-t710 kernel: [11735.638892]  [<ffffffff81002099>] do_one_initcall+0x7f/0x136
      Jun 27 08:15:24 home-t710 kernel: [11735.638899]  [<ffffffff8108608b>] sys_init_module+0x88/0x1d0
      Jun 27 08:15:24 home-t710 kernel: [11735.638906]  [<ffffffff81489682>] system_call_fastpath+0x16/0x1b
      Jun 27 08:15:24 home-t710 kernel: [11735.639642] bnad_pci_probe : (0xffff880427f3e000, 0xffffffffa020f3e0) PCI Func : (3)
      Jun 27 08:15:24 home-t710 kernel: [11735.639665] bna 0000:82:00.3: PCI INT A -> GSI 66 (level, low) -> IRQ 66
      Jun 27 08:15:24 home-t710 kernel: [11735.639735] bar0 mapped to ffffc90014400000, len 262144
      Signed-off-by: NShyam Iyer <shyam_iyer@dell.com>
      Acked-by: NRasesh Mody <rmody@brocade.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5f77898d
  13. 23 5月, 2011 2 次提交
    • P
      Add appropriate <linux/prefetch.h> include for prefetch users · 70c71606
      Paul Gortmaker 提交于
      After discovering that wide use of prefetch on modern CPUs
      could be a net loss instead of a win, net drivers which were
      relying on the implicit inclusion of prefetch.h via the list
      headers showed up in the resulting cleanup fallout.  Give
      them an explicit include via the following $0.02 script.
      
       =========================================
       #!/bin/bash
       MANUAL=""
       for i in `git grep -l 'prefetch(.*)' .` ; do
       	grep -q '<linux/prefetch.h>' $i
       	if [ $? = 0 ] ; then
       		continue
       	fi
      
       	(	echo '?^#include <linux/?a'
       		echo '#include <linux/prefetch.h>'
       		echo .
       		echo w
       		echo q
       	) | ed -s $i > /dev/null 2>&1
       	if [ $? != 0 ]; then
       		echo $i needs manual fixup
       		MANUAL="$i $MANUAL"
       	fi
       done
       echo ------------------- 8\<----------------------
       echo vi $MANUAL
       =========================================
      Signed-off-by: NPaul <paul.gortmaker@windriver.com>
      [ Fixed up some incorrect #include placements, and added some
        non-network drivers and the fib_trie.c case    - Linus ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      70c71606
    • P
      drivers/net: add prefetch header for prefetch users · c0cba59e
      Paul Gortmaker 提交于
      After discovering that wide use of prefetch on modern CPUs
      could be a net loss instead of a win, net drivers which were
      relying on the implicit inclusion of prefetch.h via the list
      headers showed up in the resulting cleanup fallout.  Give
      them an explicit include via the following $0.02 script.
      
       =========================================
       #!/bin/bash
       MANUAL=""
       for i in `git grep -l 'prefetch(.*)' .` ; do
       	grep -q '<linux/prefetch.h>' $i
       	if [ $? = 0 ] ; then
       		continue
       	fi
      
       	(	echo '?^#include <linux/?a'
       		echo '#include <linux/prefetch.h>'
       		echo .
       		echo w
       		echo q
       	) | ed -s $i > /dev/null 2>&1
       	if [ $? != 0 ]; then
       		echo $i needs manual fixup
       		MANUAL="$i $MANUAL"
       	fi
       done
       echo ------------------- 8\<----------------------
       echo vi $MANUAL
       =========================================
      Signed-off-by: NPaul <paul.gortmaker@windriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c0cba59e
  14. 15 4月, 2011 1 次提交
  15. 13 4月, 2011 1 次提交
  16. 03 2月, 2011 1 次提交
  17. 26 12月, 2010 5 次提交
  18. 21 10月, 2010 1 次提交
  19. 06 10月, 2010 2 次提交
  20. 13 9月, 2010 1 次提交
  21. 07 9月, 2010 1 次提交
  22. 03 9月, 2010 1 次提交