From f7d2d143c77764ba97f0927e92ecb9d121258a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Date: Sun, 14 Dec 2008 23:18:00 -0800 Subject: [PATCH] --- yaml --- r: 122703 b: refs/heads/master c: 037322abe6141e32e1b1dea86a9405d52c99be5d h: refs/heads/master i: 122701: 806fcfc9354bd16f99a076275a254feaf0c217ff 122699: 430c0367c8e38f6887cc2b4680b0d1a516a215bc 122695: 55c924469bdc8f089f454072c9521faa91f341e7 122687: d5475938321ce38e3a8f1d7bb2e66426d937d30f v: v3 --- [refs] | 2 +- trunk/net/bluetooth/rfcomm/tty.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 305681a904cf..aad9878e43a5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0eae1b98cf3022715b5a6ea5f1ac6b0bd7ac4edd +refs/heads/master: 037322abe6141e32e1b1dea86a9405d52c99be5d diff --git a/trunk/net/bluetooth/rfcomm/tty.c b/trunk/net/bluetooth/rfcomm/tty.c index 111c6c858247..d030c69cb5a3 100644 --- a/trunk/net/bluetooth/rfcomm/tty.c +++ b/trunk/net/bluetooth/rfcomm/tty.c @@ -298,18 +298,15 @@ static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc) out: write_unlock_bh(&rfcomm_dev_lock); - if (err < 0) { - kfree(dev); - return err; - } + if (err < 0) + goto free; dev->tty_dev = tty_register_device(rfcomm_tty_driver, dev->id, NULL); if (IS_ERR(dev->tty_dev)) { err = PTR_ERR(dev->tty_dev); list_del(&dev->list); - kfree(dev); - return err; + goto free; } dev_set_drvdata(dev->tty_dev, dev); @@ -321,6 +318,10 @@ static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc) BT_ERR("Failed to create channel attribute"); return dev->id; + +free: + kfree(dev); + return err; } static void rfcomm_dev_del(struct rfcomm_dev *dev)