| To: | kaber@xxxxxxxxx (Patrick McHardy) |
|---|---|
| Subject: | Re: kfree_skb: unnecessary check ? |
| From: | kuznet@xxxxxxxxxxxxx |
| Date: | Thu, 20 Jun 2002 00:26:30 +0400 (MSD) |
| Cc: | netdev@xxxxxxxxxxx |
| In-reply-to: | <3D10B6FE.1050602@xxxxxxxxx> from "Patrick McHardy" at Jun 19, 2 09:15:00 pm |
| Sender: | owner-netdev@xxxxxxxxxxx |
Hello!
> Is atomic_dec_and_test really necessary ? atomic_dec_and_test only
> returns true if its argument has hit zero, so it was 1 before.
> If atomic_dec is only a bit cheaper than atomic_dec_and_test (which i
> guess it is), wouldn't it make more sense to use something like this:
Does the prefix "atomic" not scare you? :-)
> static inline void kfree_skb(struct sk_buff *skb)
> {
> if (atomic_read(&skb->users) == 1)
> __kfree(skb);
> else
> atomic_dec(&skb->users);
> }
else if (atomic_dec_and_test(&skb->users))
__kfree_skb(skb);
If you still do not understand think why it does not look like:
static inline void kfree_skb(struct sk_buff *skb)
{
int users = skb->users;
if (users == 1)
__kfree(skb);
else
skb->users = users - 1;
}
Alexey
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: how to report network device errors to userspace?, Donald Becker |
|---|---|
| Next by Date: | Re: how to report network device errors to userspace?, Chris Friesen |
| Previous by Thread: | Re: kfree_skb: unnecessary check ?, Thomas 'Dent' Mirlacher |
| Next by Thread: | Re: kfree_skb: unnecessary check ?, Patrick McHardy |
| Indexes: | [Date] [Thread] [Top] [All Lists] |