[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>
This commit is contained in:
committed by
David S. Miller
parent
b826315813
commit
485fb2c998
@ -81,7 +81,7 @@ static int ircomm_lmp_connect_response(struct ircomm_cb *self,
|
||||
|
||||
/* Any userdata supplied? */
|
||||
if (userdata == NULL) {
|
||||
tx_skb = dev_alloc_skb(64);
|
||||
tx_skb = alloc_skb(64, GFP_ATOMIC);
|
||||
if (!tx_skb)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -115,7 +115,7 @@ static int ircomm_lmp_disconnect_request(struct ircomm_cb *self,
|
||||
IRDA_DEBUG(0, "%s()\n", __FUNCTION__ );
|
||||
|
||||
if (!userdata) {
|
||||
tx_skb = dev_alloc_skb(64);
|
||||
tx_skb = alloc_skb(64, GFP_ATOMIC);
|
||||
if (!tx_skb)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -121,7 +121,7 @@ int ircomm_param_request(struct ircomm_tty_cb *self, __u8 pi, int flush)
|
||||
|
||||
skb = self->ctrl_skb;
|
||||
if (!skb) {
|
||||
skb = dev_alloc_skb(256);
|
||||
skb = alloc_skb(256, GFP_ATOMIC);
|
||||
if (!skb) {
|
||||
spin_unlock_irqrestore(&self->spinlock, flags);
|
||||
return -ENOMEM;
|
||||
|
@ -759,8 +759,9 @@ static int ircomm_tty_write(struct tty_struct *tty,
|
||||
}
|
||||
} else {
|
||||
/* Prepare a full sized frame */
|
||||
skb = dev_alloc_skb(self->max_data_size+
|
||||
self->max_header_size);
|
||||
skb = alloc_skb(self->max_data_size+
|
||||
self->max_header_size,
|
||||
GFP_ATOMIC);
|
||||
if (!skb) {
|
||||
spin_unlock_irqrestore(&self->spinlock, flags);
|
||||
return -ENOBUFS;
|
||||
|
Reference in New Issue
Block a user