1. 03 Dec, 2008 2 commits
    • Michael Chan's avatar
      bnx2: Add workaround to handle missed MSI. · efba0180
      Michael Chan authored
      The bnx2 chips do not support per MSI vector masking.  On 5706/5708, new MSI
      address/data are stored only when the MSI enable bit is toggled.  As a result,
      SMP affinity no longer works in the latest kernel.  A more serious problem is
      that the driver will no longer receive interrupts when the MSI receiving CPU
      goes offline.
      
      The workaround in this patch only addresses the problem of CPU going offline.
      When that happens, the driver's timer function will detect that it is making
      no forward progress on pending interrupt events and will recover from it.
      
      Eric Dumazet reported the problem.
      
      We also found that if an interrupt is internally asserted while MSI and INTA
      are disabled, the chip will end up in the same state after MSI is re-enabled.
      The same workaround is needed for this problem. 
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Tested-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      efba0180
    • Wei Yongjun's avatar
      xfrm: Fix kernel panic when flush and dump SPD entries · d5654efd
      Wei Yongjun authored
      After flush the SPD entries, dump the SPD entries will cause kernel painc.
      
      Used the following commands to reproduct:
      
      - echo 'spdflush;' | setkey -c
      - echo 'spdadd 3ffe:501:ffff:ff01::/64 3ffe:501:ffff:ff04::/64  any -P out ipsec \
        ah/tunnel/3ffe:501:ffff:ff00:200:ff:fe00:b0b0-3ffe:501:ffff:ff02:200:ff:fe00:a1a1/require;\
        spddump;' | setkey -c
      - echo 'spdflush; spddump;' | setkey -c
      - echo 'spdadd 3ffe:501:ffff:ff01::/64 3ffe:501:ffff:ff04::/64  any -P out ipsec \
        ah/tunnel/3ffe:501:ffff:ff00:200:ff:fe00:b0b0-3ffe:501:ffff:ff02:200:ff:fe00:a1a1/require;\
        spddump;' | setkey -c
      
      This is because when flush the SPD entries, the SPD entry is not remove
      from the list.
      
      This patch fix the problem by remove the SPD entry from the list.
      Signed-off-by: default avatarWei Yongjun <yjwei@cn.fujitsu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d5654efd
  2. 02 Dec, 2008 38 commits