diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2019-05-31 18:48:45 -0400 | 
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-05-31 18:48:45 -0400 | 
| commit | 24e8a2ca1f74574ad2ed1ac7af0260dd90fd911e (patch) | |
| tree | c863dd43c84579d853f3a2ae0ee6ead46c967703 /include/linux/skbuff.h | |
| parent | 66f61c92889ff3ca365161fb29dd36d6354682ba (diff) | |
| parent | d724c9e54939a597592de3659541da11fc7aa112 (diff) | |
Merge tag 'kvm-ppc-fixes-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-master
PPC KVM fixes for 5.2
- Several bug fixes for the new XIVE-native code.
- Replace kvm->lock by other mutexes in several places where we hold a
  vcpu mutex, to avoid lock order inversions.
- Fix a lockdep warning on guest entry for radix-mode guests.
- Fix a bug causing user-visible corruption of SPRG3 on the host.
Diffstat (limited to 'include/linux/skbuff.h')
| -rw-r--r-- | include/linux/skbuff.h | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 6d58fa8a65fd..2ee5e63195c0 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h  | |||
| @@ -1434,10 +1434,12 @@ static inline void skb_zcopy_clear(struct sk_buff *skb, bool zerocopy) | |||
| 1434 | struct ubuf_info *uarg = skb_zcopy(skb); | 1434 | struct ubuf_info *uarg = skb_zcopy(skb); | 
| 1435 | 1435 | ||
| 1436 | if (uarg) { | 1436 | if (uarg) { | 
| 1437 | if (uarg->callback == sock_zerocopy_callback) { | 1437 | if (skb_zcopy_is_nouarg(skb)) { | 
| 1438 | /* no notification callback */ | ||
| 1439 | } else if (uarg->callback == sock_zerocopy_callback) { | ||
| 1438 | uarg->zerocopy = uarg->zerocopy && zerocopy; | 1440 | uarg->zerocopy = uarg->zerocopy && zerocopy; | 
| 1439 | sock_zerocopy_put(uarg); | 1441 | sock_zerocopy_put(uarg); | 
| 1440 | } else if (!skb_zcopy_is_nouarg(skb)) { | 1442 | } else { | 
| 1441 | uarg->callback(uarg, zerocopy); | 1443 | uarg->callback(uarg, zerocopy); | 
| 1442 | } | 1444 | } | 
| 1443 | 1445 | ||
| @@ -2691,7 +2693,8 @@ static inline int skb_orphan_frags(struct sk_buff *skb, gfp_t gfp_mask) | |||
| 2691 | { | 2693 | { | 
| 2692 | if (likely(!skb_zcopy(skb))) | 2694 | if (likely(!skb_zcopy(skb))) | 
| 2693 | return 0; | 2695 | return 0; | 
| 2694 | if (skb_uarg(skb)->callback == sock_zerocopy_callback) | 2696 | if (!skb_zcopy_is_nouarg(skb) && | 
| 2697 | skb_uarg(skb)->callback == sock_zerocopy_callback) | ||
| 2695 | return 0; | 2698 | return 0; | 
| 2696 | return skb_copy_ubufs(skb, gfp_mask); | 2699 | return skb_copy_ubufs(skb, gfp_mask); | 
| 2697 | } | 2700 | } | 
