> We can't update skb->truesize during arbitray skb->data reallocations, > because it could corrupt the socket accounting. > > On the other hand, if we provide ways for users to subvert the socket > buffer limits, we might as well not try to limit anything. Why don't we update the socket allocation when doing pskb_expand_head()? Sure, it could become negative, but is that so bad? > Take a look at some ethernet drivers that implement TSO in a way that > requires munging the IP headers for whatever reason. If they need to > COW the packet data in order to modify it, they always do this with > pskb_expand_head(skb, 0, 0, GFP_*) exactly so that they don't modify > the SKB data size, and exactly so that the skb->truesize value stays > accurate. We need more space though. Should we then just increase the built-in headroom? johannes
Attachment:
signature.asc
Description: This is a digitally signed message part