(please keep me on CC when replying)
There's no need to check for NULL before calling kfree() on a pointer, and
since kfree() takes a void* argument there's no need to cast pointers to
other types before passing them to kfree().
This patch cleans that up in drivers/bluetooth/
Please apply.
Signed-off-by: Jesper Juhl <[email protected]>
---
drivers/bluetooth/bpa10x.c | 7 ++-----
drivers/bluetooth/hci_usb.c | 6 ++----
drivers/bluetooth/hci_vhci.c | 8 +++-----
3 files changed, 7 insertions(+), 14 deletions(-)
diff -upr linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/bpa10x.c linux-2.6.12-rc3-mm3/drivers/bluetooth/bpa10x.c
--- linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/bpa10x.c 2005-03-02 08:38:17.000000000 +0100
+++ linux-2.6.12-rc3-mm3/drivers/bluetooth/bpa10x.c 2005-05-10 20:53:56.000000000 +0200
@@ -367,11 +367,8 @@ static inline void bpa10x_free_urb(struc
if (!urb)
return;
- if (urb->setup_packet)
- kfree(urb->setup_packet);
-
- if (urb->transfer_buffer)
- kfree(urb->transfer_buffer);
+ kfree(urb->setup_packet);
+ kfree(urb->transfer_buffer);
usb_free_urb(urb);
}
diff -upr linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_usb.c linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_usb.c
--- linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_usb.c 2005-04-30 18:24:53.000000000 +0200
+++ linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_usb.c 2005-05-10 20:56:17.000000000 +0200
@@ -387,10 +387,8 @@ static void hci_usb_unlink_urbs(struct h
urb = &_urb->urb;
BT_DBG("%s freeing _urb %p type %d urb %p",
husb->hdev->name, _urb, _urb->type, urb);
- if (urb->setup_packet)
- kfree(urb->setup_packet);
- if (urb->transfer_buffer)
- kfree(urb->transfer_buffer);
+ kfree(urb->setup_packet);
+ kfree(urb->transfer_buffer);
_urb_free(_urb);
}
diff -upr linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_vhci.c linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_vhci.c
--- linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_vhci.c 2005-04-30 18:24:53.000000000 +0200
+++ linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_vhci.c 2005-05-10 20:58:23.000000000 +0200
@@ -78,12 +78,10 @@ static int hci_vhci_close(struct hci_dev
static void hci_vhci_destruct(struct hci_dev *hdev)
{
- struct hci_vhci_struct *vhci;
+ if (!hdev)
+ return;
- if (!hdev) return;
-
- vhci = (struct hci_vhci_struct *) hdev->driver_data;
- kfree(vhci);
+ kfree(hdev->driver_data)
}
static int hci_vhci_send_frame(struct sk_buff *skb)
On Tuesday 10 May 2005 23:05, Jesper Juhl wrote:
> There's no need to check for NULL before calling kfree() on a pointer, and
> since kfree() takes a void* argument there's no need to cast pointers to
> other types before passing them to kfree().
> + kfree(hdev->driver_data)
This won't compile.
On Tue, 10 May 2005, Alexey Dobriyan wrote:
> On Tuesday 10 May 2005 23:05, Jesper Juhl wrote:
>
> > There's no need to check for NULL before calling kfree() on a pointer, and
> > since kfree() takes a void* argument there's no need to cast pointers to
> > other types before passing them to kfree().
>
> > + kfree(hdev->driver_data)
>
> This won't compile.
>
Ouch. You are right.
I usually compile test patches, but I have to admit I didn't this time.
Sorry about that. Fixed patch below.
Signed-off-by: Jesper Juhl <[email protected]>
---
diff -upr linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/bpa10x.c linux-2.6.12-rc3-mm3/drivers/bluetooth/bpa10x.c
--- linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/bpa10x.c 2005-03-02 08:38:17.000000000 +0100
+++ linux-2.6.12-rc3-mm3/drivers/bluetooth/bpa10x.c 2005-05-10 20:53:56.000000000 +0200
@@ -367,11 +367,8 @@ static inline void bpa10x_free_urb(struc
if (!urb)
return;
- if (urb->setup_packet)
- kfree(urb->setup_packet);
-
- if (urb->transfer_buffer)
- kfree(urb->transfer_buffer);
+ kfree(urb->setup_packet);
+ kfree(urb->transfer_buffer);
usb_free_urb(urb);
}
diff -upr linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_usb.c linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_usb.c
--- linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_usb.c 2005-04-30 18:24:53.000000000 +0200
+++ linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_usb.c 2005-05-10 20:56:17.000000000 +0200
@@ -387,10 +387,8 @@ static void hci_usb_unlink_urbs(struct h
urb = &_urb->urb;
BT_DBG("%s freeing _urb %p type %d urb %p",
husb->hdev->name, _urb, _urb->type, urb);
- if (urb->setup_packet)
- kfree(urb->setup_packet);
- if (urb->transfer_buffer)
- kfree(urb->transfer_buffer);
+ kfree(urb->setup_packet);
+ kfree(urb->transfer_buffer);
_urb_free(_urb);
}
diff -upr linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_vhci.c linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_vhci.c
--- linux-2.6.12-rc3-mm3-orig/drivers/bluetooth/hci_vhci.c 2005-04-30 18:24:53.000000000 +0200
+++ linux-2.6.12-rc3-mm3/drivers/bluetooth/hci_vhci.c 2005-05-10 21:46:48.000000000 +0200
@@ -78,12 +78,10 @@ static int hci_vhci_close(struct hci_dev
static void hci_vhci_destruct(struct hci_dev *hdev)
{
- struct hci_vhci_struct *vhci;
+ if (!hdev)
+ return;
- if (!hdev) return;
-
- vhci = (struct hci_vhci_struct *) hdev->driver_data;
- kfree(vhci);
+ kfree(hdev->driver_data);
}
static int hci_vhci_send_frame(struct sk_buff *skb)
Hi Jesper,
> > > There's no need to check for NULL before calling kfree() on a pointer, and
> > > since kfree() takes a void* argument there's no need to cast pointers to
> > > other types before passing them to kfree().
> >
> > > + kfree(hdev->driver_data)
> >
> > This won't compile.
> >
> Ouch. You are right.
> I usually compile test patches, but I have to admit I didn't this time.
> Sorry about that. Fixed patch below.
the hci_vhci.c change is not needed, because I have a pending update for
that driver that already fixes this. The other two hunks are in my tree
now.
Regards
Marcel