1. 01 5月, 2010 1 次提交
    • A
      e1000e: Fix oops caused by ASPM patch. · 0c75ba22
      Anton Blanchard 提交于
      Commit 6f461f6c
      ("e1000e: enable/disable ASPM L0s and L1 and ERT according to hardware errata")
      oopses on one of my ppc64 boxes with a NULL pointer (0x4a):
      
      Unable to handle kernel paging request for data at address 0x0000004a
      Faulting instruction address: 0xc0000000004d2f1c
      cpu 0xe: Vector: 300 (Data Access) at [c000000bec1833a0]
          pc: c0000000004d2f1c: .e1000e_disable_aspm+0xe0/0x150
          lr: c0000000004d2f0c: .e1000e_disable_aspm+0xd0/0x150
         dar: 4a
      
      [c000000bec1836d0] c00000000069b9d8 .e1000_probe+0x84/0xe8c
      [c000000bec1837b0] c000000000386d90 .local_pci_probe+0x4c/0x68
      [c000000bec183840] c0000000003872ac .pci_device_probe+0xfc/0x148
      [c000000bec183900] c000000000409e8c .driver_probe_device+0xe4/0x1d0
      [c000000bec1839a0] c00000000040a024 .__driver_attach+0xac/0xf4
      [c000000bec183a40] c000000000409124 .bus_for_each_dev+0x9c/0x10c
      [c000000bec183b00] c000000000409c1c .driver_attach+0x40/0x60
      [c000000bec183b90] c0000000004085dc .bus_add_driver+0x150/0x328
      [c000000bec183c40] c00000000040a58c .driver_register+0x100/0x1c4
      [c000000bec183cf0] c00000000038764c .__pci_register_driver+0x78/0x128
      
      Seems like pdev->bus->self == NULL. I haven't touched pci in a long time
      so I'm trying to remember what this means (no pcie bridge perhaps?)
      
      The patch below fixes the oops for me.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Reviewed-by: NBruce Allan <bruce.w.allan@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0c75ba22
  2. 29 4月, 2010 4 次提交
  3. 28 4月, 2010 12 次提交
  4. 27 4月, 2010 3 次提交
  5. 25 4月, 2010 1 次提交
  6. 24 4月, 2010 2 次提交
    • A
      gianfar: Fix potential oops during OF address translation · 7ce97d4f
      Anton Vorontsov 提交于
      gianfar driver may pass NULL pointer to the of_translate_address(),
      which may lead to a kernel oops. Fix this by using of_iomap(), which
      is also much simpler and shorter.
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ce97d4f
    • A
      fsl_pq_mdio: Fix kernel oops during OF address translation · 3b1fd3e5
      Anton Vorontsov 提交于
      Old P1020RDB device trees were not specifing tbipa address for
      MDIO nodes, which is now causing this kernel oops:
      
       ...
       eth2: TX BD ring size for Q[6]: 256
       eth2: TX BD ring size for Q[7]: 256
       Unable to handle kernel paging request for data at address 0x00000000
       Faulting instruction address: 0xc0015504
       Oops: Kernel access of bad area, sig: 11 [#1]
       ...
       NIP [c0015504] memcpy+0x3c/0x9c
       LR [c000a9f8] __of_translate_address+0xfc/0x21c
       Call Trace:
       [df839e00] [c000a94c] __of_translate_address+0x50/0x21c (unreliable)
       [df839e50] [c01a33e8] get_gfar_tbipa+0xb0/0xe0
       ...
      
      The old device trees are buggy, though having a dead ethernet is
      better than a dead kernel, so fix the issue by using of_iomap().
      
      Also, a somewhat similar issue exist in the probe() routine, though
      there the oops is only a possibility. Nonetheless, fix it too.
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3b1fd3e5
  7. 22 4月, 2010 5 次提交
  8. 20 4月, 2010 1 次提交
  9. 17 4月, 2010 3 次提交
  10. 14 4月, 2010 2 次提交
    • M
      tun: orphan an skb on tx · 0110d6f2
      Michael S. Tsirkin 提交于
      The following situation was observed in the field:
      tap1 sends packets, tap2 does not consume them, as a result
      tap1 can not be closed. This happens because
      tun/tap devices can hang on to skbs undefinitely.
      
      As noted by Herbert, possible solutions include a timeout followed by a
      copy/change of ownership of the skb, or always copying/changing
      ownership if we're going into a hostile device.
      
      This patch implements the second approach.
      
      Note: one issue still remaining is that since skbs
      keep reference to tun socket and tun socket has a
      reference to tun device, we won't flush backlog,
      instead simply waiting for all skbs to get transmitted.
      At least this is not user-triggerable, and
      this was not reported in practice, my assumption is
      other devices besides tap complete an skb
      within finite time after it has been queued.
      
      A possible solution for the second issue
      would not to have socket reference the device,
      instead, implement dev->destructor for tun, and
      wait for all skbs to complete there, but this
      needs some thought, probably too risky for 2.6.34.
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Tested-by: NYan Vugenfirer <yvugenfi@redhat.com>
      Acked-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0110d6f2
    • A
      forcedeth: fix tx limit2 flag check · 5c659322
      Ayaz Abdulla 提交于
      This is a fix for bug 572201 @ bugs.debian.org
      
      This patch fixes the TX_LIMIT feature flag. The previous logic check
      for TX_LIMIT2 also took into account a device that only had TX_LIMIT
      set.
      Reported-by: NStephen Mulcahu <stephen.mulcahy@deri.org>
      Reported-by: NBen Huchings <ben@decadent.org.uk>
      Signed-off-by: NAyaz Abdulla <aabdulla@nvidia.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      
      
      5c659322
  11. 13 4月, 2010 4 次提交
  12. 10 4月, 2010 1 次提交
  13. 09 4月, 2010 1 次提交