1. 19 12月, 2009 2 次提交
  2. 09 12月, 2009 1 次提交
    • A
      gianfar: Fix build with CONFIG_NET_POLL_CONTROLLER=y · 43de004b
      Anton Vorontsov 提交于
      commit 46ceb60c ("gianfar: Add
      Multiple group Support") introduced the following build error
      with CONFIG_NET_POLL_CONTROLLER=y:
      
        CC      ggianfar.o
      ggianfar.c: In function 'gfar_netpoll':
      ggianfar.c:2653: error: invalid storage class for function 'gfar_interrupt'
      ggianfar.c:2652: warning: ISO C90 forbids mixed declarations and code
      ggianfar.c:2681: error: invalid storage class for function 'adjust_link'
      ggianfar.c:2764: error: invalid storage class for function 'gfar_set_multi'
      ggianfar.c:2855: error: invalid storage class for function 'gfar_clear_exact_match'
      ggianfar.c:2877: error: invalid storage class for function 'gfar_set_hash_for_addr'
      ggianfar.c:2898: error: invalid storage class for function 'gfar_set_mac_for_addr'
      ggianfar.c:2922: error: invalid storage class for function 'gfar_error'
      ggianfar.c:3020: warning: ISO C90 forbids mixed declarations and code
      ggianfar.c:3032: error: invalid storage class for function 'gfar_init'
      ggianfar.c:3037: error: invalid storage class for function 'gfar_exit'
      ggianfar.c:3041: error: initializer element is not constant
      ggianfar.c:3042: error: initializer element is not constant
      ggianfar.c:3042: warning: ISO C90 forbids mixed declarations and code
      ggianfar.c:3042: error: expected declaration or statement at end of input
      make[1]: *** [ggianfar.o] Error 1
      
      This patch fixes the issue.
      Reported-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      43de004b
  3. 12 11月, 2009 4 次提交
  4. 08 11月, 2009 1 次提交
    • A
      gianfar: Fix compiler and sparse warnings · 18294ad1
      Anton Vorontsov 提交于
      commit fba4ed03 ("gianfar: Add Multiple
      Queue Support") introduced the following warnings:
      
        CHECK   gianfar.c
      gianfar.c:333:8: warning: incorrect type in assignment (different address spaces)
      gianfar.c:333:8:    expected unsigned int [usertype] *baddr
      gianfar.c:333:8:    got unsigned int [noderef] <asn:2>*<noident>
      [... 67 lines skipped ...]
      gianfar.c:2565:3: warning: incorrect type in argument 1 (different type sizes)
      gianfar.c:2565:3:    expected unsigned long const *addr
      gianfar.c:2565:3:    got unsigned int *<noident>
        CC      gianfar.o
      gianfar.c: In function 'gfar_probe':
      gianfar.c:985: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:985: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:993: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:993: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c: In function 'gfar_configure_coalescing':
      gianfar.c:1680: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:1680: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:1688: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:1688: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c: In function 'gfar_poll':
      gianfar.c:2565: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:2565: warning: passing argument 1 of 'find_next_bit' from incompatible pointer type
      gianfar.c:2566: warning: passing argument 2 of 'test_bit' from incompatible pointer type
      gianfar.c:2585: warning: passing argument 2 of 'set_bit' from incompatible pointer type
      
      Following warnings left unfixed (looks like sparse doesn't like
      locks in loops, so __acquires/__releases() doesn't help):
      
      gianfar.c:441:40: warning: context imbalance in 'lock_rx_qs': wrong count at exit
      gianfar.c:441:40:    context '<noident>': wanted 0, got 1
      gianfar.c:449:40: warning: context imbalance in 'lock_tx_qs': wrong count at exit
      gianfar.c:449:40:    context '<noident>': wanted 0, got 1
      gianfar.c:458:3: warning: context imbalance in 'unlock_rx_qs': __context__ statement expected different context
      gianfar.c:458:3:    context '<noident>': wanted >= 0, got -1
      gianfar.c:466:3: warning: context imbalance in 'unlock_tx_qs': __context__ statement expected different context
      gianfar.c:466:3:    context '<noident>': wanted >= 0, got -1
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      18294ad1
  5. 03 11月, 2009 5 次提交
  6. 15 10月, 2009 1 次提交
  7. 13 10月, 2009 8 次提交
  8. 06 9月, 2009 1 次提交
    • D
      gianfar: Fix build. · d9d8e041
      David S. Miller 提交于
      Reported by Michael Guntsche <mike@it-loops.com>
      
      --------------------
      Commit
      38bddf04 gianfar: gfar_remove needs to call unregister_netdev()
      
      breaks the build of the gianfar driver because "dev" is undefined in
      this function. To quickly test rc9 I changed this to priv->ndev but I do
      not know if this is the correct one.
      --------------------
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d9d8e041
  9. 31 8月, 2009 1 次提交
    • T
      gianfar: gfar_remove needs to call unregister_netdev() · 38bddf04
      Toru UCHIYAMA 提交于
      This patch solves the problem that the Oops(BUG_ON) occurs by rmmod.
      
      	# rmmod gianfar_driver
      	------------[ cut here ]------------
      	Kernel BUG at c01fec48 [verbose debug info unavailable]
      	Oops: Exception in kernel mode, sig: 5 [#1]
      	MPC837x MDS
      	Modules linked in: gianfar_driver(-) usb_storage scsi_wait_scan
      	NIP: c01fec48 LR: c01febf4 CTR: c01feba8
      	REGS: dec5bd60 TRAP: 0700   Tainted: G        W   (2.6.31-rc2)
      	MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 22000424  XER: 20000000
      	TASK = dec4cac0[1135] 'rmmod' THREAD: dec5a000
      	GPR00: 00000002 dec5be10 dec4cac0 dfba1820 c035d444 c035d478 ffffffff 00000000
      	GPR08: 0000002b 00000001 dfba193c 00000001 22000424 10019b34 1ffcb000 00000000
      	GPR16: 10012008 00000000 bf82ebe0 100017ec bf82ebec bf82ebe8 bf82ebd0 00000880
      	GPR24: 00000000 bf82ebf0 c03532f0 c03532e4 c036b594 dfba183c dfba1800 dfba1820
      	NIP [c01fec48] free_netdev+0xa0/0xb8
      	LR [c01febf4] free_netdev+0x4c/0xb8
      	Call Trace:
      	[dec5be10] [c01febf4] free_netdev+0x4c/0xb8 (unreliable)
      	[dec5be30] [e105f290] gfar_remove+0x50/0x68 [gianfar_driver]
      	[dec5be40] [c01ec534] of_platform_device_remove+0x30/0x44
      	[dec5be50] [c0181760] __device_release_driver+0x68/0xc8
      	[dec5be60] [c0181868] driver_detach+0xa8/0xac
      	[dec5be80] [c0180814] bus_remove_driver+0x9c/0xd8
      	[dec5bea0] [c0181efc] driver_unregister+0x60/0x98
      	[dec5beb0] [c01ec650] of_unregister_driver+0x14/0x24
      	[dec5bec0] [e10631bc] gfar_exit+0x18/0x4bc [gianfar_driver]
      	[dec5bed0] [c0047584] sys_delete_module+0x16c/0x228
      	[dec5bf40] [c00116bc] ret_from_syscall+0x0/0x38
      	--- Exception: c01 at 0xff3669c
      	    LR = 0x10000f34
      	Instruction dump:
      	409e0024 a07e00c0 7c63f050 4be74429 80010024 bba10014 38210020 7c0803a6
      	4e800020 68000003 3160ffff 7d2b0110 <0f090000> 38000004 387e01f0 901e01d4
      	---[ end trace 8c595bcd37230a0f ]---
      	 localhost kernel: ------------[ cut here ]------------
      
      Signed-off-by: Toru UCHIYAMA uchiyama.toru@jp.fujitsu.com
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      38bddf04
  10. 10 8月, 2009 1 次提交
  11. 23 7月, 2009 1 次提交
    • A
      gianfar: Revive fixed link support · 1db780f8
      Anton Vorontsov 提交于
      Since commit fe192a49 ("Rework gianfar
      driver to use of_mdio infrastructure") the fixed-link support is
      broken, the driver oopses at init_phy():
      
        Unable to handle kernel paging request for data at address 0x000000e4
        Faulting instruction address: 0xc01cf298
        Oops: Kernel access of bad area, sig: 11 [#1]
        [...]
        NIP [c01cf298] init_phy+0x80/0xdc
        LR [c01cf250] init_phy+0x38/0xdc
        Call Trace:
        [cf81fe80] [c01d1cf8] gfar_enet_open+0x6c/0x19c
        [cf81fea0] [c024494c] dev_open+0xfc/0x134
        [cf81fec0] [c0242edc] dev_change_flags+0x84/0x1ac
        [cf81fee0] [c0399ee0] ic_open_devs+0x168/0x2d8
        [cf81ff20] [c039b2e8] ip_auto_config+0x90/0x2a4
        [cf81ff60] [c0003884] do_one_initcall+0x34/0x1a8
      
      This patch fixes the oops, and removes phy_node checks, and adds a call
      to of_phy_connect_fixed_link() if a phy isn't attached..
      
      Also, remove an old fixed-link code that we don't use any longer.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1db780f8
  12. 16 7月, 2009 1 次提交
  13. 13 7月, 2009 1 次提交
  14. 25 5月, 2009 1 次提交
  15. 28 4月, 2009 1 次提交
  16. 27 4月, 2009 1 次提交
  17. 15 4月, 2009 1 次提交
    • M
      gianfar: stop send queue before resetting gianfar · cbea2707
      Markus Brunner 提交于
      After a transmit timed out, the reset task will be called, which will free the
      allocated resources(stop_gfar). If gfar_poll will be called before the
      resources get allocated again gfar_clean_tx_ring will call
      dev_kfree_skb_any(NULL).
      
      Example crash:
      
      ops: Kernel access of bad area, sig: 11 [#1]
      PREEMPT RSBBA100
      Modules linked in:
      NIP: c01a10c4 LR: c013b254 CTR: c013c038
      REGS: c02e7d20 TRAP: 0300   Not tainted  (2.6.27.20)
      MSR: 00001032 <ME,IR,DR>  CR: 24000082  XER: 20000000
      DAR: 000000a0, DSISR: 20000000
      TASK = c02ce578[0] 'swapper' THREAD: c02e6000
      GPR00: 000000a0 c02e7dd0 c02ce578 00000000 00000040 00000001 c02ec1c0 
      00001032
      GPR08: c080d1e0 df9ea800 00000000 00000000 24000082 ffffffff 0404f000 
      00000000
      GPR16: ffffffbf ffffffff ffffffff ffdff7ff ffffffff c02d0fd4 00100100 
      00200200
      GPR24: c031220c 00000001 00000001 00000000 00000000 df849800 ff109000 
      df849b80
      NIP [c01a10c4] dev_kfree_skb_irq+0x18/0x70
      LR [c013b254] gfar_clean_tx_ring+0x70/0x11c
      Call Trace:
      [c02e7dd0] [c003e978] update_wall_time+0x730/0x744 (unreliable)
      [c02e7df0] [c013b254] gfar_clean_tx_ring+0x70/0x11c
      [c02e7e10] [c013c07c] gfar_poll+0x44/0x150
      [c02e7e30] [c01a064c] net_rx_action+0xa8/0x19c
      [c02e7e70] [c00251d4] __do_softirq+0x64/0xc0
      [c02e7e90] [c0006384] do_softirq+0x40/0x58
      [c02e7ea0] [c00250a8] irq_exit+0x40/0x9c
      [c02e7eb0] [c000642c] do_IRQ+0x90/0xac
      [c02e7ec0] [c0010ab4] ret_from_except+0x0/0x14
      --- Exception: 501 at cpu_idle+0x9c/0xf8
          LR = cpu_idle+0x9c/0xf8
      [c02e7f80] [c0009820] cpu_idle+0x58/0xf8 (unreliable)
      [c02e7fa0] [c01fb8c8] __got2_end+0x7c/0x90
      [c02e7fc0] [c026c794] start_kernel+0x2c0/0x2d4
      [c02e7ff0] [00003438] 0x3438
      Instruction dump:
      7fa00124 80010024 bba10014 38210020 7c0803a6 4e800020 9421ffe0 7c0802a6
      7c6b1b78 90010024 380300a0 bfa10014 <7d200028> 3129ffff 7d20012d 40a2fff4
      Kernel panic - not syncing: Fatal exception in interrupt
      
      This Patch calls netif_stop_queue before calling stop_gfar.
      Signed-off-by: NMarkus Brunner <super.firetwister@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cbea2707
  18. 29 3月, 2009 1 次提交
  19. 28 3月, 2009 1 次提交
  20. 27 3月, 2009 2 次提交
  21. 26 3月, 2009 1 次提交
  22. 22 3月, 2009 1 次提交
  23. 19 3月, 2009 1 次提交
  24. 14 3月, 2009 1 次提交