06 Jul, 2011

4 commits


05 Jul, 2011

19 commits


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

    FUJITA Tomonori
     
  • 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

    Yoshihiro Shimoda
     
  • 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

    Shan Wei
     

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 262144

    Signed-off-by: Shyam Iyer
    Acked-by: Rasesh Mody
    Signed-off-by: David S. Miller

    Shyam Iyer
     
  • Signed-off-by: Jitendra Kalsaria
    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Jitendra Kalsaria
     
  • 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

    Jitendra Kalsaria
     
  • 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

    Jitendra Kalsaria
     
  • 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

    Arnd Bergmann
     
  • David S. Miller
     

01 Jul, 2011

8 commits