diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-15 10:06:42 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-15 10:06:42 +0100 |
commit | 4aa96ccf9ee35cdbd0d423e87a4d551019570218 (patch) | |
tree | dca6322681df2e8f33f65c07defce24db68f645c /drivers/misc/pti.c | |
parent | cb5fd904f0f14866ab76ec1f6ca3469896e4e2cf (diff) | |
parent | 8f2ffa00fb3c05ec0659cd7b056c4e8e106072f1 (diff) |
Merge branch 'kprobes-thumb' of git://git.yxit.co.uk/linux into devel-stable
Diffstat (limited to 'drivers/misc/pti.c')
-rw-r--r-- | drivers/misc/pti.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/misc/pti.c b/drivers/misc/pti.c index bb6f9255c17..374dfcfccd0 100644 --- a/drivers/misc/pti.c +++ b/drivers/misc/pti.c @@ -317,7 +317,8 @@ EXPORT_SYMBOL_GPL(pti_request_masterchannel); * a master, channel ID address * used to write to PTI HW. * - * @mc: master, channel apeture ID address to be released. + * @mc: master, channel apeture ID address to be released. This + * will de-allocate the structure via kfree(). */ void pti_release_masterchannel(struct pti_masterchannel *mc) { @@ -475,8 +476,10 @@ static int pti_tty_install(struct tty_driver *driver, struct tty_struct *tty) else pti_tty_data->mc = pti_request_masterchannel(2); - if (pti_tty_data->mc == NULL) + if (pti_tty_data->mc == NULL) { + kfree(pti_tty_data); return -ENXIO; + } tty->driver_data = pti_tty_data; } @@ -495,7 +498,7 @@ static void pti_tty_cleanup(struct tty_struct *tty) if (pti_tty_data == NULL) return; pti_release_masterchannel(pti_tty_data->mc); - kfree(tty->driver_data); + kfree(pti_tty_data); tty->driver_data = NULL; } @@ -581,7 +584,7 @@ static int pti_char_open(struct inode *inode, struct file *filp) static int pti_char_release(struct inode *inode, struct file *filp) { pti_release_masterchannel(filp->private_data); - kfree(filp->private_data); + filp->private_data = NULL; return 0; } |