Commit 3d03059f authored by Arvind Yadav's avatar Arvind Yadav Committed by Thadeu Lima de Souza Cascardo

parisc: perf: Fix potential NULL pointer dereference

BugLink: http://bugs.launchpad.net/bugs/1724772

[ Upstream commit 74e3f6e6 ]

Fix potential NULL pointer dereference and clean up
coding style errors (code indent, trailing whitespaces).
Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Signed-off-by: default avatarSasha Levin <alexander.levin@verizon.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarStefan Bader <stefan.bader@canonical.com>
Signed-off-by: default avatarThadeu Lima de Souza Cascardo <cascardo@canonical.com>
parent 803dd301
...@@ -195,8 +195,8 @@ static int perf_config(uint32_t *image_ptr); ...@@ -195,8 +195,8 @@ static int perf_config(uint32_t *image_ptr);
static int perf_release(struct inode *inode, struct file *file); static int perf_release(struct inode *inode, struct file *file);
static int perf_open(struct inode *inode, struct file *file); static int perf_open(struct inode *inode, struct file *file);
static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, loff_t *ppos); static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, loff_t *ppos);
static ssize_t perf_write(struct file *file, const char __user *buf, size_t count, static ssize_t perf_write(struct file *file, const char __user *buf,
loff_t *ppos); size_t count, loff_t *ppos);
static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg); static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
static void perf_start_counters(void); static void perf_start_counters(void);
static int perf_stop_counters(uint32_t *raddr); static int perf_stop_counters(uint32_t *raddr);
...@@ -298,8 +298,8 @@ static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, loff_t ...@@ -298,8 +298,8 @@ static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, loff_t
* called on the processor that the download should happen * called on the processor that the download should happen
* on. * on.
*/ */
static ssize_t perf_write(struct file *file, const char __user *buf, size_t count, static ssize_t perf_write(struct file *file, const char __user *buf,
loff_t *ppos) size_t count, loff_t *ppos)
{ {
int err; int err;
size_t image_size; size_t image_size;
...@@ -809,6 +809,10 @@ static int perf_write_image(uint64_t *memaddr) ...@@ -809,6 +809,10 @@ static int perf_write_image(uint64_t *memaddr)
} }
runway = ioremap_nocache(cpu_device->hpa.start, 4096); runway = ioremap_nocache(cpu_device->hpa.start, 4096);
if (!runway) {
pr_err("perf_write_image: ioremap failed!\n");
return -ENOMEM;
}
/* Merge intrigue bits into Runway STATUS 0 */ /* Merge intrigue bits into Runway STATUS 0 */
tmp64 = __raw_readq(runway + RUNWAY_STATUS) & 0xffecfffffffffffful; tmp64 = __raw_readq(runway + RUNWAY_STATUS) & 0xffecfffffffffffful;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment