• Herbert Xu's avatar
    [IPSEC]: Store idev entries · aabc9761
    Herbert Xu authored
    I found a bug that stopped IPsec/IPv6 from working.  About
    a month ago IPv6 started using rt6i_idev->dev on the cached socket dst
    entries.  If the cached socket dst entry is IPsec, then rt6i_idev will
    be NULL.
    
    Since we want to look at the rt6i_idev of the original route in this
    case, the easiest fix is to store rt6i_idev in the IPsec dst entry just
    as we do for a number of other IPv6 route attributes.  Unfortunately
    this means that we need some new code to handle the references to
    rt6i_idev.  That's why this patch is bigger than it would otherwise be.
    
    I've also done the same thing for IPv4 since it is conceivable that
    once these idev attributes start getting used for accounting, we
    probably need to dereference them for IPv4 IPsec entries too.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    aabc9761
xfrm_policy.c 30.1 KB