diff options
author | Samuel Ortiz <samuel@sortiz.org> | 2006-07-21 17:50:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-07-21 17:50:41 -0400 |
commit | 485fb2c998a37d5c3c6aa082aa451e66db90f34a (patch) | |
tree | 6adc0e5c935072d82143e7354bc633eac7feed9b /net/irda/ircomm | |
parent | b82631581372dc00b3507cedc3ad47af29efe962 (diff) |
[IrDA]: Use alloc_skb() in IrDA TX path
As pointed out by Christoph Hellwig, dev_alloc_skb() is not intended to be
used for allocating TX sk_buff. The IrDA stack was exclusively calling
dev_alloc_skb() on the TX path, and this patch fixes that.
Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/irda/ircomm')
-rw-r--r-- | net/irda/ircomm/ircomm_lmp.c | 4 | ||||
-rw-r--r-- | net/irda/ircomm/ircomm_param.c | 2 | ||||
-rw-r--r-- | net/irda/ircomm/ircomm_tty.c | 5 |
3 files changed, 6 insertions, 5 deletions
diff --git a/net/irda/ircomm/ircomm_lmp.c b/net/irda/ircomm/ircomm_lmp.c index d9097207aed3..959874b6451f 100644 --- a/net/irda/ircomm/ircomm_lmp.c +++ b/net/irda/ircomm/ircomm_lmp.c | |||
@@ -81,7 +81,7 @@ static int ircomm_lmp_connect_response(struct ircomm_cb *self, | |||
81 | 81 | ||
82 | /* Any userdata supplied? */ | 82 | /* Any userdata supplied? */ |
83 | if (userdata == NULL) { | 83 | if (userdata == NULL) { |
84 | tx_skb = dev_alloc_skb(64); | 84 | tx_skb = alloc_skb(64, GFP_ATOMIC); |
85 | if (!tx_skb) | 85 | if (!tx_skb) |
86 | return -ENOMEM; | 86 | return -ENOMEM; |
87 | 87 | ||
@@ -115,7 +115,7 @@ static int ircomm_lmp_disconnect_request(struct ircomm_cb *self, | |||
115 | IRDA_DEBUG(0, "%s()\n", __FUNCTION__ ); | 115 | IRDA_DEBUG(0, "%s()\n", __FUNCTION__ ); |
116 | 116 | ||
117 | if (!userdata) { | 117 | if (!userdata) { |
118 | tx_skb = dev_alloc_skb(64); | 118 | tx_skb = alloc_skb(64, GFP_ATOMIC); |
119 | if (!tx_skb) | 119 | if (!tx_skb) |
120 | return -ENOMEM; | 120 | return -ENOMEM; |
121 | 121 | ||
diff --git a/net/irda/ircomm/ircomm_param.c b/net/irda/ircomm/ircomm_param.c index 6009bab05091..a39f5735a90b 100644 --- a/net/irda/ircomm/ircomm_param.c +++ b/net/irda/ircomm/ircomm_param.c | |||
@@ -121,7 +121,7 @@ int ircomm_param_request(struct ircomm_tty_cb *self, __u8 pi, int flush) | |||
121 | 121 | ||
122 | skb = self->ctrl_skb; | 122 | skb = self->ctrl_skb; |
123 | if (!skb) { | 123 | if (!skb) { |
124 | skb = dev_alloc_skb(256); | 124 | skb = alloc_skb(256, GFP_ATOMIC); |
125 | if (!skb) { | 125 | if (!skb) { |
126 | spin_unlock_irqrestore(&self->spinlock, flags); | 126 | spin_unlock_irqrestore(&self->spinlock, flags); |
127 | return -ENOMEM; | 127 | return -ENOMEM; |
diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c index b400f27851fc..cde3b84d4a0e 100644 --- a/net/irda/ircomm/ircomm_tty.c +++ b/net/irda/ircomm/ircomm_tty.c | |||
@@ -759,8 +759,9 @@ static int ircomm_tty_write(struct tty_struct *tty, | |||
759 | } | 759 | } |
760 | } else { | 760 | } else { |
761 | /* Prepare a full sized frame */ | 761 | /* Prepare a full sized frame */ |
762 | skb = dev_alloc_skb(self->max_data_size+ | 762 | skb = alloc_skb(self->max_data_size+ |
763 | self->max_header_size); | 763 | self->max_header_size, |
764 | GFP_ATOMIC); | ||
764 | if (!skb) { | 765 | if (!skb) { |
765 | spin_unlock_irqrestore(&self->spinlock, flags); | 766 | spin_unlock_irqrestore(&self->spinlock, flags); |
766 | return -ENOBUFS; | 767 | return -ENOBUFS; |