1. 07 Apr, 2009 4 commits
  2. 04 Apr, 2009 7 commits
    • Michael Chan's avatar
      bnx2: Use request_firmware() · 57579f76
      Michael Chan authored
      Based on original patch by Ben Hutchings <ben@decadent.org.uk> and
      Bastian Blank <waldi@debian.org>, with the following main changes:
      
      Separated the mips firmware and rv2p firmware into different files
      to make it easier to update them separately.
      
      Added some code to fixup the rv2p code with run-time information
      such as PAGE_SIZE.
      
      Update version to 2.0.0.
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      57579f76
    • Michael Buesch's avatar
      b44: Fix sizes passed to b44_sync_dma_desc_for_{device,cpu}() · 5d4d9e8a
      Michael Buesch authored
      > > ------------[ cut here ]------------
      > > WARNING: at lib/dma-debug.c:539 check_sync+0xe9/0x341() (Not tainted)
      > > Hardware name: HP Compaq nx6110 (PY501EA#AB9)
      > > b44 0000:02:0e.0: DMA-API: device driver tries to sync DMA memory it has not
      > > allocated [device address=0x0000000075941040] [size=1566 bytes]
      > > Modules linked in: llc bnep l2cap bluetooth autofs4 lm90 hwmon i2c_i801 sunrpc
      > > ipv6 cpufreq_ondemand acpi_cpufreq uinput snd_intel8x0m snd_intel8x0
      > > snd_ac97_codec snd_seq_dummy ac97_bus snd_seq_oss snd_seq_midi_event snd_seq
      > > snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm b44 ssb firewire_ohci
      > > snd_timer ipw2200 iTCO_wdt mii firewire_core snd iTCO_vendor_support libipw
      > > yenta_socket crc_itu_t lib80211 rsrc_nonstatic soundcore snd_page_alloc joydev
      > > pcspkr wmi serio_raw ata_generic pata_acpi i915 drm i2c_algo_bit i2c_core video
      > > output [last unloaded: scsi_wait_scan]
      > > Pid: 2418, comm: S58ntpd Not tainted 2.6.29-16.fc10.i686.PAE #1
      > > Call Trace:
      > >  [<c04396d1>] warn_slowpath+0x7c/0xbd
      > >  [<c0457fe1>] ? register_lock_class+0x17/0x290
      > >  [<c0458d61>] ? mark_lock+0x1e/0x349
      > >  [<c0556448>] ? _raw_spin_unlock+0x74/0x78
      > >  [<c0458d61>] ? mark_lock+0x1e/0x349
      > >  [<c055a060>] ? check_sync+0x37/0x341
      > >  [<c055a112>] check_sync+0xe9/0x341
      > >  [<c0711245>] ? _spin_unlock_irqrestore+0x45/0x55
      > >  [<c04592db>] ? trace_hardirqs_on+0xb/0xd
      > >  [<c055a4d1>] debug_dma_sync_single_for_device+0x2f/0x39
      > >  [<f828f722>] dma_sync_single_for_device+0x4a/0x59 [b44]
      > >  [<f828f76f>] ssb_dma_sync_single_for_device+0x3e/0x48 [b44]
      > >  [<f8291d1e>] b44_recycle_rx+0x18c/0x196 [b44]
      > >  [<f8291f9f>] b44_poll+0x277/0x3c0 [b44]
      > >  [<c0687bb9>] net_rx_action+0xa1/0x1ca
      > >  [<c043e30a>] __do_softirq+0x9d/0x154
      > >  [<c043e413>] do_softirq+0x52/0x7e
      > >  [<c043e56f>] irq_exit+0x49/0x77
      > >  [<c040b22e>] do_IRQ+0x97/0xad
      > >  [<c0409dac>] common_interrupt+0x2c/0x34
      
      I don't know if this is related, but the following patch seems to fix some DMA
      mapping bug. Can somebody comment who does understand the code better than me?
      
      (completely untested)
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5d4d9e8a
    • Eric Dumazet's avatar
      socket: use percpu_add() while updating sockets_in_use · 4e69489a
      Eric Dumazet authored
      sock_alloc() currently uses following code to update sockets_in_use
      
      get_cpu_var(sockets_in_use)++;
      put_cpu_var(sockets_in_use);
      
      This translates to :
      
      c0436274:       b8 01 00 00 00          mov    $0x1,%eax
      c0436279:       e8 42 40 df ff          call   c022a2c0 <add_preempt_count>
      c043627e:       bb 20 4f 6a c0          mov    $0xc06a4f20,%ebx
      c0436283:       e8 18 ca f0 ff          call   c0342ca0 <debug_smp_processor_id>
      c0436288:       03 1c 85 60 4a 65 c0    add    -0x3f9ab5a0(,%eax,4),%ebx
      c043628f:       ff 03                   incl   (%ebx)
      c0436291:       b8 01 00 00 00          mov    $0x1,%eax
      c0436296:       e8 75 3f df ff          call   c022a210 <sub_preempt_count>
      c043629b:       89 e0                   mov    %esp,%eax
      c043629d:       25 00 e0 ff ff          and    $0xffffe000,%eax
      c04362a2:       f6 40 08 08             testb  $0x8,0x8(%eax)
      c04362a6:       75 07                   jne    c04362af <sock_alloc+0x7f>
      c04362a8:       8d 46 d8                lea    -0x28(%esi),%eax
      c04362ab:       5b                      pop    %ebx
      c04362ac:       5e                      pop    %esi
      c04362ad:       c9                      leave
      c04362ae:       c3                      ret
      c04362af:       e8 cc 5d 09 00          call   c04cc080 <preempt_schedule>
      c04362b4:       8d 74 26 00             lea    0x0(%esi,%eiz,1),%esi
      c04362b8:       eb ee                   jmp    c04362a8 <sock_alloc+0x78>
      
      While percpu_add(sockets_in_use, 1) translates to a single instruction :
      
      c0436275:   64 83 05 20 5f 6a c0    addl   $0x1,%fs:0xc06a5f20
      Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4e69489a
    • Alex Williamson's avatar
      virtio_net: Set the mac config only when VIRITO_NET_F_MAC · 62994b2d
      Alex Williamson authored
      VIRTIO_NET_F_MAC indicates the presence of the mac field in config
      space, not the validity of the value it contains.  Allow the mac to be
      changed at runtime, but only push the change into config space with the
      VIRTIO_NET_F_MAC feature present.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@hp.com>
      Acked-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      62994b2d
    • Jaswinder Singh Rajput's avatar
      myri_sbus: use request_firmware · cd36e9ef
      Jaswinder Singh Rajput authored
      Firmware blob looks like this...
      
              __be16 lanai4_data_size
              unsigned char lanai4_code[]
      Signed-off-by: default avatarJaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd36e9ef
    • Jesse Brandeburg's avatar
      e1000: fix loss of multicast packets · 81c52285
      Jesse Brandeburg authored
      e1000 (and e1000e, igb, ixgbe, ixgb) all do a series of
      operations each time a multicast address is added.  The flow goes
      something like
      
      1) stack adds one multicast address
      2) stack passes whole current list of unicast and multicast
         addresses to driver
      3) driver clears entire list in hardware
      4) driver programs each multicast address using iomem in a loop
      
      This was causing multicast packets to be lost during the
      reprogramming process.
      
      reference with test program:
      http://kerneltrap.org/mailarchive/linux-netdev/2009/3/14/5160514/thread
      
      Thanks to Dave Boutcher for his report and test program.
      
      This driver fix prepares an array all at once in memory and
      programs it in one shot to the hardware, not requiring an "erase"
      cycle.
      Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81c52285
    • Alexander Beregalov's avatar
      vxge: should include tcp.h · 2b05e002
      Alexander Beregalov authored
      Fix this build error:
      
      drivers/net/vxge/vxge-main.c: In function 'vxge_get_vpath_no':
      drivers/net/vxge/vxge-main.c:695: error: dereferencing pointer to
      incomplete type
      ...
      Signed-off-by: default avatarAlexander Beregalov <a.beregalov@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2b05e002
  3. 02 Apr, 2009 29 commits