06 Jul, 2011
4 commits
-
Convert a printk with a static to pr__once
Add and use DRV_DESCRIPTION to reduce string duplication.
Remove now unused version.Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
If the rx ring is completely empty, then the device may never fire an rx
interrupt. Unfortunately, the rx interrupt is what triggers populating the
rx ring with fresh buffers, so this will cause networking to lock up.This patch replenishes the skb in recv descriptor as soon as it is
peeled off while processing rx completions. If the skb/buffer
allocation fails, existing one is recycled and the packet in hand is
dropped. This way none of the RX desc is ever left empty, thus avoiding
starvationSigned-off-by: Scott J. Goldman
Signed-off-by: Shreyas N Bhatewara
Signed-off-by: David S. Miller
05 Jul, 2011
19 commits
-
Clear warning message "MDC/MDIO access timeout" during first driver load by setting MDIO clock.
This warning has no significant meaning, since it occurs prior to the first PHY initialization.Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Add autogrEEEn support on BCM84833 and 54618se, which allows to reduce power consumption.
Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
When driver is unloaded, disable PMD in addition to TX laser, provided that the management firmware will be able to enable it back.
Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Add hardware PHY reset action for BCM578xx when fan failure occur.
The new bnx2x_warpcore_hw_reset warps bnx2x_warpcore_power_module to fit the .hw_reset function template of the phy structure.Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Add CL37 BAM support according to configuration.
Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Change 1G copper PHY BCM54616S to BCM54618SE since we only have HW with latter one of the two.
Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Set the source MAC address for PFC packets and update its status during PMF migration.
Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
The MAC address was set using the signed char sockaddr->sa_addr
field and thus the address could be corrupted through sign extension.Signed-off-by: Kristoffer Glembo
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
b44_tx() is run from softirq handler, it can use dev_kfree_skb() instead
of dev_kfree_skb_irq()Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller
04 Jul, 2011
3 commits
-
This silences dma-debug warnings:
https://lkml.org/lkml/2011/6/30/341
------------[ cut here ]------------
WARNING: at /home/jimc/projects/lx/linux-2.6/lib/dma-debug.c:820
check_unmap+0x1fe/0x56a()
natsemi 0000:00:06.0: DMA-API: device driver frees DMA memory with
different size [device address=0x0000000006ef0040] [map size=1538
bytes] [unmap size=1522 bytes]
Modules linked in: pc8736x_gpio pc87360 hwmon_vid scx200_gpio nsc_gpio
scx200_hrt scx200_acb i2c_core arc4 rtl8180 mac80211 eeprom_93cx6
cfg80211 pcspkr rfkill scx200 ide_gd_mod ide_pci_generic ohci_hcd
usbcore sc1200 ide_core
Pid: 870, comm: collector Not tainted 3.0.0-rc5-sk-00080-gca56a95 #1
Call Trace:
[] warn_slowpath_common+0x4a/0x5f
[] ? check_unmap+0x1fe/0x56a
[] warn_slowpath_fmt+0x26/0x2a
[] check_unmap+0x1fe/0x56a
[] debug_dma_unmap_page+0x53/0x5b
[] pci_unmap_single+0x4d/0x57
[] natsemi_poll+0x343/0x5ca
[] ? try_to_wake_up+0xea/0xfc
[] ? spin_unlock_irq.clone.28+0x18/0x23
[] net_rx_action+0x3f/0xe5
[] __do_softirq+0x5b/0xd1
[] ? local_bh_enable+0xa/0xa
[] ? irq_exit+0x34/0x75
[] ? do_IRQ+0x66/0x79
[] ? common_interrupt+0x29/0x30
[] ? finish_task_switch.clone.118+0x31/0x72
[] ? schedule+0x3b2/0x3f1
[] ? hrtimer_start_range_ns+0x10/0x12
[] ? hrtimer_start_expires+0x1c/0x24
[] ? schedule_hrtimeout_range_clock+0x8e/0xb4
[] ? update_rmtp+0x68/0x68
[] ? schedule_hrtimeout_range+0xa/0xc
[] ? poll_schedule_timeout+0x27/0x3e
[] ? do_select+0x488/0x4cd
[] ? finish_task_switch.clone.118+0x43/0x72
[] ? need_resched+0x14/0x1e
[] ? poll_freewait+0x74/0x74
[] ? need_resched+0x14/0x1e
[] ? schedule+0x3e1/0x3f1
[] ? irq_exit+0x47/0x75
[] ? need_resched+0x14/0x1e
[] ? preempt_schedule_irq+0x44/0x4a
[] ? need_resched+0x17/0x19
[] ? put_dec_full+0x7b/0xaa
[] ? blkdev_ioctl+0x434/0x618
[] ? put_dec+0x2f/0x6d
[] ? number.clone.1+0x10b/0x1d0
[] ? preempt_schedule_irq+0x44/0x4a
[] ? need_resched+0x17/0x19
[] ? vsnprintf+0x225/0x264
[] ? vsnprintf+0x7f/0x264
[] ? seq_printf+0x22/0x40
[] ? do_task_stat+0x582/0x5a3
[] ? poll_schedule_timeout+0x27/0x3e
[] ? core_sys_select+0x11f/0x1a3
[] ? poll_schedule_timeout+0x27/0x3e
[] ? proc_tgid_stat+0xd/0xf
[] ? recalc_sigpending+0x32/0x35
[] ? __set_task_blocked+0x64/0x6a
[] ? timespec_add_safe+0x24/0x48
[] ? spin_unlock_irq.clone.16+0x18/0x23
[] ? sys_pselect6+0xe5/0x13e
[] ? syscall_call+0x7/0xb
[] ? rpc_clntdir_depopulate+0x26/0x30
---[ end trace 180dcac41a50938b ]---Reported-by: Jim Cromie
Signed-off-by: FUJITA Tomonori
Tested-by: Jim Cromie
Signed-off-by: David S. Miller -
It is a function of SuperH architecture. There is no good to use
the function on a driver generally. So, the driver uses
dma_map_single() instead of __flush_purge_region.Signed-off-by: Yoshihiro Shimoda
Signed-off-by: David S. Miller -
Offload setting of vlan device requires
vlan_features to be initialized.Signed-off-by: Shan Wei
Acked-by: Francois Romieu
Signed-off-by: David S. Miller
02 Jul, 2011
6 commits
-
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] [] __might_sleep+0xeb/0xf0
Jun 27 08:15:24 home-t710 kernel: [11735.638766] [] ? netif_wake_queue+0x3d/0x3d [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638773] [] kmem_cache_alloc_trace+0x43/0xd8
Jun 27 08:15:24 home-t710 kernel: [11735.638782] [] ? netif_wake_queue+0x3d/0x3d [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638787] [] request_threaded_irq+0xa1/0x113
Jun 27 08:15:24 home-t710 kernel: [11735.638798] [] bnad_pci_probe+0x612/0x8e5 [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638807] [] ? netif_wake_queue+0x3d/0x3d [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638816] [] ? _raw_spin_unlock_irqrestore+0x17/0x19
Jun 27 08:15:24 home-t710 kernel: [11735.638822] [] local_pci_probe+0x44/0x75
Jun 27 08:15:24 home-t710 kernel: [11735.638826] [] pci_device_probe+0xd0/0xff
Jun 27 08:15:24 home-t710 kernel: [11735.638832] [] driver_probe_device+0x131/0x213
Jun 27 08:15:24 home-t710 kernel: [11735.638836] [] __driver_attach+0x5a/0x7e
Jun 27 08:15:24 home-t710 kernel: [11735.638840] [] ? driver_probe_device+0x213/0x213
Jun 27 08:15:24 home-t710 kernel: [11735.638844] [] bus_for_each_dev+0x53/0x89
Jun 27 08:15:24 home-t710 kernel: [11735.638848] [] driver_attach+0x1e/0x20
Jun 27 08:15:24 home-t710 kernel: [11735.638852] [] bus_add_driver+0xd1/0x224
Jun 27 08:15:24 home-t710 kernel: [11735.638858] [] ? 0xffffffffa01b7fff
Jun 27 08:15:24 home-t710 kernel: [11735.638862] [] driver_register+0x98/0x105
Jun 27 08:15:24 home-t710 kernel: [11735.638866] [] ? 0xffffffffa01b7fff
Jun 27 08:15:24 home-t710 kernel: [11735.638871] [] __pci_register_driver+0x56/0xc1
Jun 27 08:15:24 home-t710 kernel: [11735.638875] [] ? 0xffffffffa01b7fff
Jun 27 08:15:24 home-t710 kernel: [11735.638884] [] bnad_module_init+0x40/0x60 [bna]
Jun 27 08:15:24 home-t710 kernel: [11735.638892] [] do_one_initcall+0x7f/0x136
Jun 27 08:15:24 home-t710 kernel: [11735.638899] [] sys_init_module+0x88/0x1d0
Jun 27 08:15:24 home-t710 kernel: [11735.638906] [] 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 262144Signed-off-by: Shyam Iyer
Acked-by: Rasesh Mody
Signed-off-by: David S. Miller -
Signed-off-by: Jitendra Kalsaria
Signed-off-by: Ron Mercer
Signed-off-by: David S. Miller -
Precedence of the printk should be at higher level so chip fatal
errors are always reported.Signed-off-by: Jitendra Kalsaria
Signed-off-by: Ron Mercer
Signed-off-by: David S. Miller -
When we are in a recover process from a chip fatal error,
driver should skip over execution of mailbox commands during
resetting chip.Signed-off-by: Jitendra Kalsaria
Signed-off-by: Ron Mercer
Signed-off-by: David S. Miller -
Lockdep found a locking inconsistency in the mkiss_close function:
> kernel: [ INFO: inconsistent lock state ]
> kernel: 2.6.39.1 #3
> kernel: ---------------------------------
> kernel: inconsistent {IN-SOFTIRQ-R} -> {SOFTIRQ-ON-W} usage.
> kernel: ax25ipd/2813 [HC0[0]:SC0[0]:HE1:SE1] takes:
> kernel: (disc_data_lock){+++?.-}, at: [] mkiss_close+0x1b/0x90 [mkiss]
> kernel: {IN-SOFTIRQ-R} state was registered at:The message hints that disc_data_lock is aquired with softirqs disabled,
but does not itself disable softirqs, which can in rare circumstances
lead to a deadlock.
The same problem is present in the 6pack driver, this patch fixes both
by using write_lock_bh instead of write_lock.Reported-by: Bernard F6BVP
Tested-by: Bernard F6BVP
Signed-off-by: Arnd Bergmann
Acked-by: Ralf Baechle
Cc: stable@kernel.org
Signed-off-by: David S. Miller
01 Jul, 2011
8 commits
-
There is no need to check for the address being a multicast address in
the netdev_for_each_mc_addr loop, so remove it.Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
It may be set in the card while the driver is probed by kdump kernel after a
crash.Signed-off-by: Sathya Perla
Signed-off-by: David S. Miller -
On some skews, the BE card sends pause frames (and not drop pkts) if there are
no more posted buffers available for packet reception. This behaviour has a
side effect: When an interface is disabled, buffers are no longer posted on the
corresponding RX rings. All broadcast and multicast traffic being received on
the port will quickly fill up the PMEM and cause pause push back. As the PMEM
is shared by both the ports, all traffic being received on the other (enabled)
port also gets stalled.
The fix is to destroy RX rings when the interface is disabled. If there is no
RX ring match in the RXF lookup, the packets are discarded and so don't hog the
PMEM.
The RXQ creation cmd must now use MCC instead of MBOX as they are are called
post MCC queue creation.Signed-off-by: Sathya Perla
Signed-off-by: David S. Miller -
Some (older)versions of cards/fw may not recognize certain cmds and
return illegal/unsupported errors. As long as the driver can handle
this gracefully there is no need to log an error msg.
Also finetuned 2 existing error log messages.Signed-off-by: Sathya Perla
Signed-off-by: David S. Miller -
o Add external loopback test in self test:
- Send set external loopback mode request to fw.
To quiscent other storage functions.
- Perform test
- Send unset loopback mode request to fw.o Rename ilb to lb.
o Update driver version 5.0.20.Signed-off-by: Sucheta Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
There is no need to check for the address being a multicast address in
the netdev_for_each_mc_addr loop, so remove it.Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller -
There is no need to check for the address being a multicast address in
the netdev_for_each_mc_addr loop, so remove it.Signed-off-by: Tobias Klauser
Signed-off-by: David S. Miller