1. 13 1月, 2009 1 次提交
  2. 07 1月, 2009 1 次提交
    • S
      ibmveth: use consistent types · ff5bfc35
      Stephen Rothwell 提交于
      These variables are only used with an interface that just dumps their
      values into registers to be passed to the hypervisor. The arguments
      to that interface are declared to be "unsigned long", so make these
      variables match.  The macros are only used with these variables, so make
      them match as well.
      
      This code is currently only built for 64bit powerpc, so the transformation
      is really a noop.  If the interface was ever ported to 32 bit, it would
      almost certainly still use registers to pass the parameters and so
      "unsigned long" would still be appropriate.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ff5bfc35
  3. 29 12月, 2008 1 次提交
  4. 23 12月, 2008 1 次提交
  5. 13 11月, 2008 1 次提交
    • W
      netdevice: safe convert to netdev_priv() #part-2 · 4cf1653a
      Wang Chen 提交于
      We have some reasons to kill netdev->priv:
      1. netdev->priv is equal to netdev_priv().
      2. netdev_priv() wraps the calculation of netdev->priv's offset, obviously
         netdev_priv() is more flexible than netdev->priv.
      But we cann't kill netdev->priv, because so many drivers reference to it
      directly.
      
      This patch is a safe convert for netdev->priv to netdev_priv(netdev).
      Since all of the netdev->priv is only for read.
      But it is too big to be sent in one mail.
      I split it to 4 parts and make every part smaller than 100,000 bytes,
      which is max size allowed by vger.
      Signed-off-by: NWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4cf1653a
  6. 04 11月, 2008 1 次提交
  7. 28 10月, 2008 1 次提交
  8. 27 8月, 2008 1 次提交
    • S
      ibmveth: fix bad UDP checksums · 45e15bb7
      Santiago Leon 提交于
      This patch fixes a ibmveth bug where bad UDP checksums are being transmitted
      when checksum offloading is enabled.
      The hypervisor does checksum offloading only on TCP packets, so ibmveth calls
      skb_checksum_help() for any other protocol.  The bug happens because
      the packet is being modified after the DMA map, so we would need a memory
      barrier before making the hypervisor call.  Reordering the code so that the
      DMA map happens after skb_checksum_help() has the additional advantage of
      fixing a DMA map leak if skb_checksum_help() where to fail.
      Signed-off-by: NSantiago Leon <santil@us.ibm.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      45e15bb7
  9. 28 7月, 2008 1 次提交
    • S
      ibmveth: Fix multiple errors with dma_mapping_error conversion · c713e7cb
      Stephen Rothwell 提交于
      The addition of an argument to dma_mapping_error() in commit
      8d8bb39b "dma-mapping: add the device
      argument to dma_mapping_error()" left a bit of fallout:
      
      drivers/net/ibmveth.c:263: error: too few arguments to function 'dma_mapping_error'
      drivers/net/ibmveth.c:264: error: expected ')' before 'goto'
      drivers/net/ibmveth.c:284: error: expected expression before '}' token
      drivers/net/ibmveth.c:297: error: too few arguments to function 'dma_mapping_error'
      drivers/net/ibmveth.c:298: error: expected ')' before 'dma_unmap_single'
      drivers/net/ibmveth.c:306: error: expected expression before '}' token
      drivers/net/ibmveth.c:491: error: too few arguments to function 'dma_mapping_error'
      drivers/net/ibmveth.c:927: error: too few arguments to function 'dma_mapping_error'
      drivers/net/ibmveth.c:927: error: expected ')' before '{' token
      drivers/net/ibmveth.c:974: error: expected expression before '}' token
      drivers/net/ibmveth.c:914: error: label 'out' used but not defined m
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      c713e7cb
  10. 27 7月, 2008 1 次提交
    • F
      dma-mapping: add the device argument to dma_mapping_error() · 8d8bb39b
      FUJITA Tomonori 提交于
      Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
      architecture does:
      
      This enables us to cleanly fix the Calgary IOMMU issue that some devices
      are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).
      
      I think that per-device dma_mapping_ops support would be also helpful for
      KVM people to support PCI passthrough but Andi thinks that this makes it
      difficult to support the PCI passthrough (see the above thread).  So I
      CC'ed this to KVM camp.  Comments are appreciated.
      
      A pointer to dma_mapping_ops to struct dev_archdata is added.  If the
      pointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it's
      NULL, the system-wide dma_ops pointer is used as before.
      
      If it's useful for KVM people, I plan to implement a mechanism to register
      a hook called when a new pci (or dma capable) device is created (it works
      with hot plugging).  It enables IOMMUs to set up an appropriate
      dma_mapping_ops per device.
      
      The major obstacle is that dma_mapping_error doesn't take a pointer to the
      device unlike other DMA operations.  So x86 can't have dma_mapping_ops per
      device.  Note all the POWER IOMMUs use the same dma_mapping_error function
      so this is not a problem for POWER but x86 IOMMUs use different
      dma_mapping_error functions.
      
      The first patch adds the device argument to dma_mapping_error.  The patch
      is trivial but large since it touches lots of drivers and dma-mapping.h in
      all the architecture.
      
      This patch:
      
      dma_mapping_error() doesn't take a pointer to the device unlike other DMA
      operations.  So we can't have dma_mapping_ops per device.
      
      Note that POWER already has dma_mapping_ops per device but all the POWER
      IOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device
      argument.
      
      [akpm@linux-foundation.org: fix sge]
      [akpm@linux-foundation.org: fix svc_rdma]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix bnx2x]
      [akpm@linux-foundation.org: fix s2io]
      [akpm@linux-foundation.org: fix pasemi_mac]
      [akpm@linux-foundation.org: fix sdhci]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix sparc]
      [akpm@linux-foundation.org: fix ibmvscsi]
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Muli Ben-Yehuda <muli@il.ibm.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Avi Kivity <avi@qumranet.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d8bb39b
  11. 25 7月, 2008 2 次提交
  12. 29 4月, 2008 1 次提交
  13. 19 4月, 2008 1 次提交
  14. 26 3月, 2008 1 次提交
  15. 25 1月, 2008 2 次提交
  16. 13 10月, 2007 1 次提交
  17. 11 10月, 2007 13 次提交
  18. 08 8月, 2007 2 次提交
    • M
      drivers/net/ibmveth.c: memset fix · 9dc83afd
      Mariusz Kozlowski 提交于
      > >> 	Looks like memset() is zeroing wrong nr of bytes.
      > >
      > > Good catch, however, I think we can just remove this memset altogether
      > > since the memory gets allocated via kzalloc.
      >
      > Correct, that memset() is superfluous.
      
      Ok. Then this should do it.
      Signed-off-by: NMariusz Kozlowski <m.kozlowski@tuxland.pl>
      
       drivers/net/ibmveth.c |    3 +--
       1 file changed, 1 insertion(+), 2 deletions(-)
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      9dc83afd
    • B
      ibmveth: Fix rx pool deactivate oops · 76b9cfcc
      Brian King 提交于
      This fixes the following oops which can occur when trying to deallocate
      receive buffer pools using sysfs with the ibmveth driver.
      
      NIP: d00000000024f954 LR: d00000000024fa58 CTR: c0000000000d7478
      REGS: c00000000ffef9f0 TRAP: 0300   Not tainted  (2.6.22-ppc64)
      MSR: 8000000000009032 <EE,ME,IR,DR>  CR: 24242442  XER: 00000010
      DAR: 00000000000007f0, DSISR: 0000000042000000
      TASK = c000000002f91360[2967] 'bash' THREAD: c00000001398c000 CPU: 2
      GPR00: 0000000000000000 c00000000ffefc70 d000000000262d30 c00000001c4087a0
      GPR04: 00000003000000fe 0000000000000000 000000000000000f c000000000579d80
      GPR08: 0000000000365688 c00000001c408998 00000000000007f0 0000000000000000
      GPR12: d000000000251e88 c000000000579d80 00000000200957ec 0000000000000000
      GPR16: 00000000100b8808 00000000100feb30 0000000000000000 0000000010084828
      GPR20: 0000000000000000 000000001014d4d0 0000000000000010 c00000000ffefeb0
      GPR24: c00000001c408000 0000000000000000 c00000001c408000 00000000ffffb054
      GPR28: 00000000000000fe 0000000000000003 d000000000262700 c00000001c4087a0
      NIP [d00000000024f954] .ibmveth_remove_buffer_from_pool+0x38/0x108 [ibmveth]
      LR [d00000000024fa58] .ibmveth_rxq_harvest_buffer+0x34/0x78 [ibmveth]
      Call Trace:
      [c00000000ffefc70] [c0000000000280a8] .dma_iommu_unmap_single+0x14/0x28 (unreliable)
      [c00000000ffefd00] [d00000000024fa58] .ibmveth_rxq_harvest_buffer+0x34/0x78 [ibmveth]
      [c00000000ffefd80] [d000000000250e40] .ibmveth_poll+0xd8/0x434 [ibmveth]
      [c00000000ffefe40] [c00000000032da8c] .net_rx_action+0xdc/0x248
      [c00000000ffefef0] [c000000000068b4c] .__do_softirq+0xa8/0x164
      [c00000000ffeff90] [c00000000002789c] .call_do_softirq+0x14/0x24
      [c00000001398f6f0] [c00000000000c04c] .do_softirq+0x68/0xac
      [c00000001398f780] [c000000000068ca0] .irq_exit+0x54/0x6c
      [c00000001398f800] [c00000000000c8e4] .do_IRQ+0x170/0x1ac
      [c00000001398f890] [c000000000004790] hardware_interrupt_entry+0x18/0x1c
         Exception: 501 at .plpar_hcall_norets+0x24/0x94
          LR = .veth_pool_store+0x15c/0x298 [ibmveth]
      [c00000001398fb80] [d000000000250b2c] .veth_pool_store+0x5c/0x298 [ibmveth] (unreliable)
      [c00000001398fc30] [c000000000145530] .sysfs_write_file+0x140/0x1d8
      [c00000001398fcf0] [c0000000000de89c] .vfs_write+0x120/0x208
      [c00000001398fd90] [c0000000000df2c8] .sys_write+0x4c/0x8c
      [c00000001398fe30] [c0000000000086ac] syscall_exit+0x0/0x40
      Instruction dump:
      fba1ffe8 fbe1fff8 789d0022 f8010010 f821ff71 789c0020 1d3d00a8 7b8a1f24
      38000000 7c7f1b78 7d291a14 e9690128 <7c0a592a> e8030000 e9690120 80a90100
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      76b9cfcc
  19. 12 7月, 2007 1 次提交
    • T
      sysfs: kill unnecessary attribute->owner · 7b595756
      Tejun Heo 提交于
      sysfs is now completely out of driver/module lifetime game.  After
      deletion, a sysfs node doesn't access anything outside sysfs proper,
      so there's no reason to hold onto the attribute owners.  Note that
      often the wrong modules were accounted for as owners leading to
      accessing removed modules.
      
      This patch kills now unnecessary attribute->owner.  Note that with
      this change, userland holding a sysfs node does not prevent the
      backing module from being unloaded.
      
      For more info regarding lifetime rule cleanup, please read the
      following message.
      
        http://article.gmane.org/gmane.linux.kernel/510293
      
      (tweaked by Greg to not delete the field just yet, to make it easier to
      merge things properly.)
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7b595756
  20. 10 6月, 2007 2 次提交
    • B
      ibmveth: Automatically enable larger rx buffer pools for larger mtu · ce6eea58
      Brian King 提交于
      Currently, ibmveth maintains several rx buffer pools, which can
      be modified through sysfs. By default, pools are not allocated by
      default such that jumbo frames cannot be supported without first
      activating larger rx buffer pools. This results in failures when attempting
      to change the mtu. This patch makes ibmveth automatically allocate
      these larger buffer pools when the mtu is changed.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      ce6eea58
    • B
      ibmveth: Fix h_free_logical_lan error on pool resize · 4aa9c93e
      Brian King 提交于
      When attempting to activate additional rx buffer pools on an ibmveth interface that
      was not yet up, the error below was seen. The patch fixes this by only closing
      and opening the interface to activate the resize if the interface is already
      opened.
      
      (drivers/net/ibmveth.c:597 ua:30000004) ERROR: h_free_logical_lan failed with fffffffffffffffc, continuing with close
      Unable to handle kernel paging request for data at address 0x00000ff8
      Faulting instruction address: 0xd0000000002540e0
      Oops: Kernel access of bad area, sig: 11 [#1]
      SMP NR_CPUS=128 NUMA PSERIES LPAR
      Modules linked in: ip6t_REJECT xt_tcpudp ipt_REJECT xt_state iptable_mangle ipta
      ble_nat ip_nat iptable_filter ip6table_mangle ip_conntrack nfnetlink ip_tables i
      p6table_filter ip6_tables x_tables ipv6 apparmor aamatch_pcre loop dm_mod ibmvet
      h sg ibmvscsic sd_mod scsi_mod
      NIP: D0000000002540E0 LR: D0000000002540D4 CTR: 80000000001AF404
      REGS: c00000001cd27870 TRAP: 0300   Not tainted  (2.6.16.46-0.4-ppc64)
      MSR: 8000000000009032 <EE,ME,IR,DR>  CR: 24242422  XER: 00000007
      DAR: 0000000000000FF8, DSISR: 0000000040000000
      TASK = c00000001ca7b4e0[1636] 'sh' THREAD: c00000001cd24000 CPU: 0
      GPR00: D0000000002540D4 C00000001CD27AF0 D000000000265650 C00000001C936500
      GPR04: 8000000000009032 FFFFFFFFFFFFFFFF 0000000000000007 000000000002C2EF
      GPR08: FFFFFFFFFFFFFFFF 0000000000000000 C000000000652A10 C000000000652AE0
      GPR12: 0000000000004000 C0000000004A3300 00000000100A0000 0000000000000000
      GPR16: 00000000100B8808 00000000100C0F60 0000000000000000 0000000010084878
      GPR20: 0000000000000000 00000000100C0CB0 00000000100AF498 0000000000000002
      GPR24: 00000000100BA488 C00000001C936760 D000000000258DD0 C00000001C936000
      GPR28: 0000000000000000 C00000001C936500 D000000000265180 C00000001C936000
      NIP [D0000000002540E0] .ibmveth_close+0xc8/0xf4 [ibmveth]
      LR [D0000000002540D4] .ibmveth_close+0xbc/0xf4 [ibmveth]
      Call Trace:
      [C00000001CD27AF0] [D0000000002540D4] .ibmveth_close+0xbc/0xf4 [ibmveth] (unreliable)
      [C00000001CD27B80] [D0000000002545FC] .veth_pool_store+0xd0/0x260 [ibmveth]
      [C00000001CD27C40] [C00000000012E0E8] .sysfs_write_file+0x118/0x198
      [C00000001CD27CF0] [C0000000000CDAF0] .vfs_write+0x130/0x218
      [C00000001CD27D90] [C0000000000CE52C] .sys_write+0x4c/0x8c
      [C00000001CD27E30] [C00000000000871C] syscall_exit+0x0/0x40
      Instruction dump:
      419affd8 2fa30000 419e0020 e93d0000 e89e8040 38a00255 e87e81b0 80c90018
      48001531 e8410028 e93d00e0 7fa3eb78 <e8090ff8> f81d0430 4bfffdc9 38210090
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      4aa9c93e
  21. 28 4月, 2007 1 次提交
    • M
      Fix sparse errors in drivers/net/ibmveth.c · 493a684a
      Michael Ellerman 提交于
      drivers/net/ibmveth.c:96:46: error: marked inline, but without a definition
      drivers/net/ibmveth.c:96: warning: 'ibmveth_rxq_harvest_buffer' declared inline after being called
      drivers/net/ibmveth.c:96: warning: previous declaration of 'ibmveth_rxq_harvest_buffer' was here
      
      Just let the compiler decide, as it happens gcc 4.~ inlines it anyway.
      
      drivers/net/ibmveth.c:957:71: warning: Using plain integer as NULL pointer
      drivers/net/ibmveth.c:964:85: warning: Using plain integer as NULL pointer
      
      Split the long lines as well, ugly, but < 80 columns.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      493a684a
  22. 26 4月, 2007 1 次提交
  23. 13 2月, 2007 1 次提交
  24. 04 12月, 2006 1 次提交