From patchwork Mon Nov 10 16:13:00 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Villac=C3=AD=C2=ADs_Lasso?= X-Patchwork-Id: 8021 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 579EFDDEDE for ; Tue, 11 Nov 2008 03:13:55 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753273AbYKJQNu (ORCPT ); Mon, 10 Nov 2008 11:13:50 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753211AbYKJQNu (ORCPT ); Mon, 10 Nov 2008 11:13:50 -0500 Received: from host-200-93-199-98.telconet.net ([200.93.199.98]:58441 "EHLO elastix.palosanto.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1752991AbYKJQNt (ORCPT ); Mon, 10 Nov 2008 11:13:49 -0500 Received: by elastix.palosanto.com (Postfix, from userid 501) id 63E401B08F21; Mon, 10 Nov 2008 11:13:48 -0500 (ECT) X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on elastix.palosanto.com X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.4 Received: from srv64.palosanto.com (unknown [192.168.1.64]) by elastix.palosanto.com (Postfix) with ESMTP id 186D91B08C82; Mon, 10 Nov 2008 11:13:47 -0500 (ECT) Message-ID: <49185D8C.90502@ceibo.fiec.espol.edu.ec> Date: Mon, 10 Nov 2008 11:13:00 -0500 From: =?ISO-8859-1?Q?Alex_Villac=ED=ADs_Lasso?= User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: irda-users@lists.sourceforge.net, netdev@vger.kernel.org Subject: [3/3] IRDA drivers should call irda_get_skb_cb Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The original patch by Samuel Ortiz, which applies without changes for the tx_extra implementation. Tested-by: Alex VillacĂ­s Lasso From 444d4cd5f7e13bfba44c08d6f205b67db9ff2bcc Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Mon, 27 Oct 2008 21:15:04 +0100 Subject: [PATCH] irda: irda drivers should call irda_get_skb_cb() Instead of accessing irda_skb_cb directly, irda drivers should call irda_get_skb_cb(). Signed-off-by: Samuel Ortiz --- drivers/net/irda/donauboe.c | 11 ++--------- drivers/net/irda/irda-usb.c | 21 +++++++++++++++------ 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/drivers/net/irda/donauboe.c b/drivers/net/irda/donauboe.c index 69d16b3..8e234c7 100644 --- a/drivers/net/irda/donauboe.c +++ b/drivers/net/irda/donauboe.c @@ -977,21 +977,14 @@ toshoboe_hard_xmit (struct sk_buff *skb, struct net_device *dev) __s32 speed; int mtt, len, ctl; unsigned long flags; - struct irda_skb_cb *cb = (struct irda_skb_cb *) skb->cb; self = (struct toshoboe_cb *) dev->priv; IRDA_ASSERT (self != NULL, return 0; ); IRDA_DEBUG (1, "%s.tx:%x(%x)%x\n", __func__ - ,skb->len,self->txpending,INB (OBOE_ENABLEH)); - if (!cb->magic) { - IRDA_DEBUG (2, "%s.Not IrLAP:%x\n", __func__, cb->magic); -#ifdef DUMP_PACKETS - _dumpbufs(skb->data,skb->len,'>'); -#endif - } - + ,skb->len,self->txpending,INB (OBOE_ENABLEH)); + /* change speed pending, wait for its execution */ if (self->new_speed) return -EBUSY; diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c index b5d6b9a..8ddfa5e 100644 --- a/drivers/net/irda/irda-usb.c +++ b/drivers/net/irda/irda-usb.c @@ -385,6 +385,7 @@ static void speed_bulk_callback(struct urb *urb) static int irda_usb_hard_xmit(struct sk_buff *skb, struct net_device *netdev) { struct irda_usb_cb *self = netdev->priv; + struct irda_skb_cb *cb; struct urb *urb = self->tx_urb; unsigned long flags; s32 speed; @@ -463,8 +464,9 @@ static int irda_usb_hard_xmit(struct sk_buff *skb, struct net_device *netdev) irda_usb_build_header(self, self->tx_buff, 0); } - /* FIXME: Make macro out of this one */ - ((struct irda_skb_cb *)skb->cb)->context = self; + /* FIXME: Make macro out of this one */ + cb = irda_get_skb_cb(skb); + cb->context = self; usb_fill_bulk_urb(urb, self->usbdev, usb_sndbulkpipe(self->usbdev, self->bulk_out_ep), @@ -554,10 +556,16 @@ static void write_bulk_callback(struct urb *urb) { unsigned long flags; struct sk_buff *skb = urb->context; - struct irda_usb_cb *self = ((struct irda_skb_cb *) skb->cb)->context; + struct irda_skb_cb *cb; + struct irda_usb_cb *self; IRDA_DEBUG(2, "%s()\n", __func__); + cb = irda_get_skb_cb(skb); + IRDA_ASSERT(cb != NULL, return;); + + self = cb->context; + /* We should always have a context */ IRDA_ASSERT(self != NULL, return;); /* We should always be called for the speed URB */ @@ -770,7 +778,7 @@ static void irda_usb_submit(struct irda_usb_cb *self, struct sk_buff *skb, struc IRDA_ASSERT(urb != NULL, return;); /* Save ourselves in the skb */ - cb = (struct irda_skb_cb *) skb->cb; + cb = irda_get_skb_cb(skb); cb->context = self; /* Reinitialize URB */ @@ -810,7 +818,7 @@ static void irda_usb_receive(struct urb *urb) IRDA_DEBUG(2, "%s(), len=%d\n", __func__, urb->actual_length); /* Find ourselves */ - cb = (struct irda_skb_cb *) skb->cb; + cb = irda_get_skb_cb(skb); IRDA_ASSERT(cb != NULL, return;); self = (struct irda_usb_cb *) cb->context; IRDA_ASSERT(self != NULL, return;); @@ -970,7 +978,8 @@ static void irda_usb_rx_defer_expired(unsigned long data) IRDA_DEBUG(2, "%s()\n", __func__); /* Find ourselves */ - cb = (struct irda_skb_cb *) skb->cb; + cb = irda_get_skb_cb(skb); + IRDA_ASSERT(cb != NULL, return;); self = (struct irda_usb_cb *) cb->context; IRDA_ASSERT(self != NULL, return;); -- 1.5.3.8