1. 23 7月, 2008 4 次提交
  2. 22 7月, 2008 1 次提交
  3. 21 7月, 2008 8 次提交
    • D
      sunhme: Remove stop/wake TX queue calls in set-multicast-list handler. · fd24c4af
      David S. Miller 提交于
      Based upon a bug report by Alexander Beregalov and commentary
      from Ben Hutchings.
      
      These are totally unnecessary, in particular because this
      driver's ->hard_start_xmit() handler takes the same driver
      spinlock that the set-multicast-list handler uses.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd24c4af
    • A
      ucc_geth: do not touch net queue in adjust_link phylib callback · ebbdbd7c
      Anton Vorontsov 提交于
      If the net queue has not been started, we'll get this nice oops
      and non-working ethernet:
      
      ------------[ cut here ]------------
      Kernel BUG at c01f4648 [verbose debug info unavailable]
      Oops: Exception in kernel mode, sig: 5 [#1]
      MPC836x RDK
      Modules linked in:
      NIP: c01f4648 LR: c01c0a10 CTR: c01c08e4
      REGS: cf839e40 TRAP: 0700   Not tainted  (2.6.26-05254-gc7b9969)
      MSR: 00021032 <ME,IR,DR>  CR: 22042044  XER: 00000000
      TASK = cf828c30[4] 'events/0' THREAD: cf838000
      GPR00: c01c0a10 cf839ef0 cf828c30 c035ceb0 cf8469a0 00000064 00000000 00000000
      GPR08: c035ceb0 00000001 00000001 cf99c280 22044044 7ca81020 0fffc000 00000000
      GPR16: 0fff2544 0fff63c0 00000000 0fff78e0 0ffa5580 00000004 00000000 00000000
      GPR24: 02082000 cf9d0000 d1068000 00009032 cf846800 cf846b80 00000001 00000014
      NIP [c01f4648] __netif_schedule+0x28/0x8c
      LR [c01c0a10] adjust_link+0x12c/0x1e4
      Call Trace:
      [cf839ef0] [c0380f50] 0xc0380f50 (unreliable)
      [cf839f10] [c01c0a10] adjust_link+0x12c/0x1e4
      [cf839f40] [c01c2628] phy_state_machine+0x2e0/0x448
      [cf839f60] [c00425e8] run_workqueue+0xc8/0x168
      [cf839f90] [c0042c6c] worker_thread+0x70/0xd0
      [cf839fd0] [c0046954] kthread+0x48/0x84
      [cf839ff0] [c0012488] kernel_thread+0x44/0x60
      Instruction dump:
      7c0803a6 4e800020 3d20c036 9421ffe0 7c0802a6 7c681b78 3929ceb0 7c694a78
      7d290034 90010024 bfa10014 5529d97e <0f090000> 39600002 38030024 7d200028
      ---[ end trace a57d367843bd2904 ]---
      
      Since the driver is using phylib (which is doing netif_carrier_on/off()),
      we should simply remove netif_tx_schedule_all() from adjust_link().
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ebbdbd7c
    • A
      gianfar: do not touch net queue in adjust_link phylib callback · afc07946
      Anton Vorontsov 提交于
      If the net queue has not been started, we'll get this nice oops
      and non-working ethernet:
      
      PHY: 0:01 - Link is Up - 1000/Full
      ------------[ cut here ]------------
      kernel BUG at net/core/dev.c:1328!
      Oops: Exception in kernel mode, sig: 5 [#1]
      MPC837x RDB
      Modules linked in:
      NIP: c02544a0 LR: c01a17d0 CTR: c01a16ac
      REGS: cf837e40 TRAP: 0700   Not tainted  (2.6.26-05253-g14b395e3)
      MSR: 00021032 <ME,IR,DR>  CR: 22042044  XER: 00000000
      TASK = cf819400[5] 'events/0' THREAD: cf836000
      GPR00: c01a17d0 cf837ef0 cf819400 c03d8d08 cf8469a0 00000064 00000000 00000000
      GPR08: c03d8d08 00000001 00000001 cf899ba0 22044044 00000000 0fffd000 00000000
      GPR16: 0fff3028 0fff6cf0 00000000 0fff8390 0ff494a0 00000004 00000000 00000000
      GPR24: c0361a00 00001058 cf9f6600 00009032 cf846800 cf846b80 00000001 00000014
      NIP [c02544a0] __netif_schedule+0x28/0x8c
      LR [c01a17d0] adjust_link+0x124/0x1cc
      Call Trace:
      [cf837ef0] [c03fb3a0] 0xc03fb3a0 (unreliable)
      [cf837f10] [c01a17d0] adjust_link+0x124/0x1cc
      [cf837f40] [c01a8e28] phy_state_machine+0x2e0/0x448
      [cf837f60] [c0040254] run_workqueue+0xc8/0x168
      [cf837f90] [c00408d8] worker_thread+0x70/0xd0
      [cf837fd0] [c0044630] kthread+0x48/0x84
      [cf837ff0] [c0012610] kernel_thread+0x44/0x60
      Instruction dump:
      7c0803a6 4e800020 3d20c03e 9421ffe0 7c0802a6 7c681b78 39298d08 7c694a78
      7d290034 90010024 bfa10014 5529d97e <0f090000> 39600002 38030024 7d200028
      ---[ end trace 13dfd73ee42d0c30 ]---
      
      Since the driver is using phylib (which is doing netif_carrier_on/off()),
      we should simply remove netif_tx_schedule_all() from adjust_link().
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      afc07946
    • D
      atl1: Do not wake queue before queue has been started. · 39d48157
      David S. Miller 提交于
      Based upon a bug report by Alexey Dobriyan, the patch is
      also tested by him and confirmed to fix the problem.
      
      Packet flow during link state events should not be done by
      waking and stopping the TX queue anyways, that is handled
      transparently by netif_carrier_{on,off}().
      
      So, remove the netif_{wake,stop}_queue() calls in the link
      check code, and add the necessary netif_start_queue() call
      to atl1_up().
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      39d48157
    • G
      m68k/Apollo: remove the unused APOLLO_ELPLUS option · 3fadd06e
      Geert Uytterhoeven 提交于
      Looking at older kernel sources the APOLLO_ELPLUS option was added
      somewhere during kernel 2.1, but even kernel 2.2.0 does not contain
      any driver that would be enabled through it...
      Reported-by: NRobert P. J. Day <rpjday@crashcourse.ca>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3fadd06e
    • P
      ariadne: use netstats in net_device structure · 038eddd9
      Paulius Zaleckas 提交于
      Use net_device_stats from net_device structure instead of local.
      Signed-off-by: NPaulius Zaleckas <paulius.zaleckas@teltonika.lt>
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      038eddd9
    • A
      4e4f64da
    • A
      tty: Ldisc revamp · a352def2
      Alan Cox 提交于
      Move the line disciplines towards a conventional ->ops arrangement.  For
      the moment the actual 'tty_ldisc' struct in the tty is kept as part of
      the tty struct but this can then be changed if it turns out that when it
      all settles down we want to refcount ldiscs separately to the tty.
      
      Pull the ldisc code out of /proc and put it with our ldisc code.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a352def2
  4. 19 7月, 2008 5 次提交
  5. 18 7月, 2008 12 次提交
  6. 17 7月, 2008 2 次提交
  7. 16 7月, 2008 1 次提交
    • I
      xen-netfront: fix xennet_release_tx_bufs() · 1ffb40b8
      Isaku Yamahata 提交于
      After restore on ia64 xen domain, kernel panics as follows.
      This patch fixes it.
      
      union skb_entry assumes sizeof(link->skb, pointer) ==
      sizeof(list->link, unsigned).
      However this isn't true on ia64. So  make link type unsigned long.
      And introduced two accesor.
      
      kernel unaligned access to 0xe0000000000000bd, ip=0xa0000001004c2ca0
      xenwatch[14]: error during unaligned kernel access
       -1 [1]
      Modules linked in:
      
      Pid: 14, CPU 0, comm:             xenwatch
      psr : 0000101008422010 ifs : 8000000000000307 ip  : [<a0000001004c2ca0>]    Not tainted (2.6.26-rc4xen-ia64-dirty)
      ip is at dev_kfree_skb_irq+0x20/0x1a0
      unat: 0000000000000000 pfs : 400000000000040b rsc : 0000000000000007
      rnat: 0000000000000000 bsps: 0000000000000000 pr  : 000000000000a941
      ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
      csd : 0000000000000000 ssd : 0000000000000000
      b0  : a0000001003efb70 b6  : a000000100070e40 b7  : a000000100070e40
      f6  : 1003e000000fcb75352b1 f7  : 1003e000000000014ff97
      f8  : 1003e00fcb74fc3454d80 f9  : 1003e0000000080000000
      f10 : 1003e0000000000001431 f11 : 1003e0000000000989680
      r1  : a000000100bfcf80 r2  : e0000000000000bd r3  : 000000000000308c
      r8  : 0000000000000000 r9  : e00000000fc31310 r10 : a000000100a13b28
      r11 : 0000000000000000 r12 : e00000000fd0fdf0 r13 : e00000000fd08000
      r14 : 0000000000000000 r15 : e00000000fcc8000 r16 : 0000000000000009
      r17 : e000010000104000 r18 : e000010000104000 r19 : a000000100a13b40
      r20 : a0000001009c23f0 r21 : a0000001009fd4d0 r22 : 0000000000004000
      r23 : 0000000000000000 r24 : fffffffffff04c10 r25 : 0000000000000002
      r26 : 0000000000000000 r27 : 0000000000000000 r28 : e00000000fd08bd4
      r29 : a0000001007570b8 r30 : a0000001009e5500 r31 : a0000001009e54a0
      
      Call Trace:
       [<a000000100026000>] show_stack+0x40/0xa0
                                      sp=e00000000fd0f670 bsp=e00000000fd08f68
       [<a000000100026a60>] show_regs+0x9a0/0x9e0
                                      sp=e00000000fd0f840 bsp=e00000000fd08f10
       [<a000000100037680>] die+0x260/0x3a0
                                      sp=e00000000fd0f840 bsp=e00000000fd08ec8
       [<a000000100037810>] die_if_kernel+0x50/0x80
                                      sp=e00000000fd0f840 bsp=e00000000fd08e98
       [<a00000010003eb40>] ia64_handle_unaligned+0x2ea0/0x2fc0
                                      sp=e00000000fd0f840 bsp=e00000000fd08df0
       [<a00000010001ca30>] ia64_prepare_handle_unaligned+0x30/0x60
                                      sp=e00000000fd0fa10 bsp=e00000000fd08df0
       [<a00000010005d100>] paravirt_leave_kernel+0x0/0x40
                                      sp=e00000000fd0fc20 bsp=e00000000fd08df0
       [<a0000001004c2ca0>] dev_kfree_skb_irq+0x20/0x1a0
                                      sp=e00000000fd0fdf0 bsp=e00000000fd08db8
       [<a0000001003efb70>] xennet_release_tx_bufs+0xd0/0x120
                                      sp=e00000000fd0fdf0 bsp=e00000000fd08d78
       [<a0000001003f14c0>] backend_changed+0xc40/0xf80
                                      sp=e00000000fd0fdf0 bsp=e00000000fd08d08
       [<a00000010034bd50>] otherend_changed+0x190/0x1c0
                                      sp=e00000000fd0fe00 bsp=e00000000fd08cc8
       [<a000000100349530>] xenwatch_thread+0x310/0x3c0
                                      sp=e00000000fd0fe00 bsp=e00000000fd08ca0
       [<a0000001000cb040>] kthread+0xe0/0x160
                                      sp=e00000000fd0fe30 bsp=e00000000fd08c68
       [<a000000100024450>] kernel_thread_helper+0x30/0x60
                                      sp=e00000000fd0fe30 bsp=e00000000fd08c40
       [<a00000010001a8a0>] start_kernel_thread+0x20/0x40
                                      sp=e00000000fd0fe30 bsp=e00000000fd08c40
      Kernel panic - not syncing: Aiee, killing interrupt handler!
      Signed-off-by: NIsaku Yamahata <yamahata@valinux.co.jp>
      Cc: Stephen Tweedie <sct@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Mark McLoughlin <markmc@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1ffb40b8
  8. 15 7月, 2008 7 次提交
    • P
      mmc,sdio: helper function for transfer padding · ad3868b2
      Pierre Ossman 提交于
      There are a lot of crappy controllers out there that cannot handle
      all the request sizes that the MMC/SD/SDIO specifications require.
      In case the card driver can pad the data to overcome the problems,
      this commit adds a helper that calculates how much that padding
      should be.
      
      A corresponding helper is also added for SDIO, but it can also deal
      with all the complexities of splitting up a large transfer efficiently.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      ad3868b2
    • J
      wireless: fix warnings from QoS patch · 0b57664c
      Johannes Berg 提交于
      When I removed the special "default" meaning from the QoS
      parameters, I forgot to update drivers and this lead to
      warnings because some drivers were checking for the special
      values and putting in defaults. This fixes that by removing
      the default special-casing completely.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0b57664c
    • D
      netdev: Do not use TX lock to protect address lists. · b9e40857
      David S. Miller 提交于
      Now that we have a specific lock to protect the network
      device unicast and multicast lists, remove extraneous
      grabs of the TX lock in cases where the code only needs
      address list protection.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b9e40857
    • D
      netdev: Add netdev->addr_list_lock protection. · e308a5d8
      David S. Miller 提交于
      Add netif_addr_{lock,unlock}{,_bh}() helpers.
      
      Use them to protect operations that operate on or read
      the network device unicast and multicast address lists.
      
      Also use them in cases where the code simply wants to
      block calls into the driver's ->set_rx_mode() and
      ->set_multicast_list() methods.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e308a5d8
    • V
      mlx4_core: Use MOD_STAT_CFG command to get minimal page size · 2d928651
      Vladimir Sokolovsky 提交于
      There was a bug in some versions of the mlx4 driver in
      mlx4_alloc_fmr(), which hardcoded the minimum acceptable page_shift to
      be 12.  However, new ConnectX firmware can support a minimum
      page_shift of 9 (log_pg_sz of 9 returned by QUERY_DEV_LIM) -- so with
      old drivers, ib_fmr_alloc() would fail for ULPs using the device
      minimum when creating FMRs.
      
      To preserve firmware compatibility with released mlx4 drivers, the
      firmware will continue to return 12 as before for log_page_sz in
      QUERY_DEV_CAP for these drivers.  However, to enable new drivers to
      take advantage of the available smaller page size, the mlx4 driver now
      first sets the log_pg_sz to the device minimum by setting a
      log_page_sz value to 0 via the MOD_STAT_CFG command and then reading
      the real minimum via QUERY_DEV_CAP.
      Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il>
      Signed-off-by: NVladimir Sokolovsky <vlad@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      2d928651
    • S
      RDMA/cxgb3: Fixes for zero STag · 4ab928f6
      Steve Wise 提交于
      Handling the zero STag in receive work request requires some extra
      logic in the driver:
      
       - Only set the QP_PRIV bit for kernel mode QPs.
      
      - Add a zero STag build function for recv wrs. The uP needs a PBL
        allocated and passed down in the recv WR so it can construct a HW
        PBL for the zero STag S/G entries.  Note: we need to place a few
        restrictions on zero STag usage because of this:
      
        1) all SGEs in a recv WR must either be zero STag or not.  No mixing.
      
        2) an individual SGE length cannot exceed 128MB for a zero-stag SGE.
           This should be OK since it's not really practical to allocate
           such a large chunk of pinned contiguous DMA mapped memory.
      
      - Add an optimized non-zero-STag recv wr format for kernel users.
        This is needed to optimize both zero and non-zero STag cracking in
        the recv path for kernel users.
      
       - Remove the iwch_ prefix from the static build functions.
      
       - Bump required FW version.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      4ab928f6
    • R
      IB/mlx4: Add support for blocking multicast loopback packets · 521e575b
      Ron Livne 提交于
      Add support for handling the IB_QP_CREATE_MULTICAST_BLOCK_LOOPBACK
      flag by using the per-multicast group loopback blocking feature of
      mlx4 hardware.
      Signed-off-by: NRon Livne <ronli@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      521e575b