[PATCH review for 4.4 41/47] parisc: perf: Fix potential NULL pointer dereference

2017-09-19 Thread Levin, Alexander (Sasha Levin)
From: Arvind Yadav 

[ Upstream commit 74e3f6e63da6c8e8246fba1689e040bc926b4a1a ]

Fix potential NULL pointer dereference and clean up
coding style errors (code indent, trailing whitespaces).

Signed-off-by: Arvind Yadav 
Signed-off-by: Helge Deller 
Signed-off-by: Sasha Levin 
---
 arch/parisc/kernel/perf.c | 94 ---
 1 file changed, 49 insertions(+), 45 deletions(-)

diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c
index 518f4f5f1f43..d63d42533133 100644
--- a/arch/parisc/kernel/perf.c
+++ b/arch/parisc/kernel/perf.c
@@ -39,7 +39,7 @@
  *  the PDC INTRIGUE calls.  This is done to eliminate bugs introduced
  *  in various PDC revisions.  The code is much more maintainable
  *  and reliable this way vs having to debug on every version of PDC
- *  on every box. 
+ *  on every box.
  */
 
 #include 
@@ -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_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_write(struct file *file, const char __user *buf, size_t 
count, 
-   loff_t *ppos);
+static ssize_t perf_write(struct file *file, const char __user *buf,
+   size_t count, loff_t *ppos);
 static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
 static void perf_start_counters(void);
 static int perf_stop_counters(uint32_t *raddr);
@@ -222,7 +222,7 @@ extern void perf_intrigue_disable_perf_counters (void);
 /*
  * configure:
  *
- * Configure the cpu with a given data image.  First turn off the counters, 
+ * Configure the cpu with a given data image.  First turn off the counters,
  * then download the image, then turn the counters back on.
  */
 static int perf_config(uint32_t *image_ptr)
@@ -234,7 +234,7 @@ static int perf_config(uint32_t *image_ptr)
error = perf_stop_counters(raddr);
if (error != 0) {
printk("perf_config: perf_stop_counters = %ld\n", error);
-   return -EINVAL; 
+   return -EINVAL;
}
 
 printk("Preparing to write image\n");
@@ -242,7 +242,7 @@ printk("Preparing to write image\n");
error = perf_write_image((uint64_t *)image_ptr);
if (error != 0) {
printk("perf_config: DOWNLOAD = %ld\n", error);
-   return -EINVAL; 
+   return -EINVAL;
}
 
 printk("Preparing to start counters\n");
@@ -254,7 +254,7 @@ printk("Preparing to start counters\n");
 }
 
 /*
- * Open the device and initialize all of its memory.  The device is only 
+ * Open the device and initialize all of its memory.  The device is only
  * opened once, but can be "queried" by multiple processes that know its
  * file descriptor.
  */
@@ -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
  * on.
  */
-static ssize_t perf_write(struct file *file, const char __user *buf, size_t 
count, 
-   loff_t *ppos)
+static ssize_t perf_write(struct file *file, const char __user *buf,
+   size_t count, loff_t *ppos)
 {
int err;
size_t image_size;
@@ -307,11 +307,11 @@ static ssize_t perf_write(struct file *file, const char 
__user *buf, size_t coun
uint32_t interface_type;
uint32_t test;
 
-   if (perf_processor_interface == ONYX_INTF) 
+   if (perf_processor_interface == ONYX_INTF)
image_size = PCXU_IMAGE_SIZE;
-   else if (perf_processor_interface == CUDA_INTF) 
+   else if (perf_processor_interface == CUDA_INTF)
image_size = PCXW_IMAGE_SIZE;
-   else 
+   else
return -EFAULT;
 
if (!capable(CAP_SYS_ADMIN))
@@ -331,22 +331,22 @@ static ssize_t perf_write(struct file *file, const char 
__user *buf, size_t coun
 
/* First check the machine type is correct for
   the requested image */
-if (((perf_processor_interface == CUDA_INTF) &&
-  (interface_type != CUDA_INTF)) ||
-   ((perf_processor_interface == ONYX_INTF) &&
-  (interface_type != ONYX_INTF))) 
+   if (((perf_processor_interface == CUDA_INTF) &&
+   (interface_type != CUDA_INTF)) ||
+   ((perf_processor_interface == ONYX_INTF) &&
+   (interface_type != ONYX_INTF)))
return -EINVAL;
 
/* Next check to make sure the requested image
   is valid */
-   if (((interface_type == CUDA_INTF) && 
+   if (((interface_type == CUDA_INTF) &&
   (test >= MAX_CUDA_IMAGES)) ||
-   ((interface_type == ONYX_INTF) && 
-  (test >= MAX_ONYX_IMAGES))) 
+   

[PATCH review for 4.4 41/47] parisc: perf: Fix potential NULL pointer dereference

2017-09-19 Thread Levin, Alexander (Sasha Levin)
From: Arvind Yadav 

[ Upstream commit 74e3f6e63da6c8e8246fba1689e040bc926b4a1a ]

Fix potential NULL pointer dereference and clean up
coding style errors (code indent, trailing whitespaces).

Signed-off-by: Arvind Yadav 
Signed-off-by: Helge Deller 
Signed-off-by: Sasha Levin 
---
 arch/parisc/kernel/perf.c | 94 ---
 1 file changed, 49 insertions(+), 45 deletions(-)

diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c
index 518f4f5f1f43..d63d42533133 100644
--- a/arch/parisc/kernel/perf.c
+++ b/arch/parisc/kernel/perf.c
@@ -39,7 +39,7 @@
  *  the PDC INTRIGUE calls.  This is done to eliminate bugs introduced
  *  in various PDC revisions.  The code is much more maintainable
  *  and reliable this way vs having to debug on every version of PDC
- *  on every box. 
+ *  on every box.
  */
 
 #include 
@@ -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_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_write(struct file *file, const char __user *buf, size_t 
count, 
-   loff_t *ppos);
+static ssize_t perf_write(struct file *file, const char __user *buf,
+   size_t count, loff_t *ppos);
 static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
 static void perf_start_counters(void);
 static int perf_stop_counters(uint32_t *raddr);
@@ -222,7 +222,7 @@ extern void perf_intrigue_disable_perf_counters (void);
 /*
  * configure:
  *
- * Configure the cpu with a given data image.  First turn off the counters, 
+ * Configure the cpu with a given data image.  First turn off the counters,
  * then download the image, then turn the counters back on.
  */
 static int perf_config(uint32_t *image_ptr)
@@ -234,7 +234,7 @@ static int perf_config(uint32_t *image_ptr)
error = perf_stop_counters(raddr);
if (error != 0) {
printk("perf_config: perf_stop_counters = %ld\n", error);
-   return -EINVAL; 
+   return -EINVAL;
}
 
 printk("Preparing to write image\n");
@@ -242,7 +242,7 @@ printk("Preparing to write image\n");
error = perf_write_image((uint64_t *)image_ptr);
if (error != 0) {
printk("perf_config: DOWNLOAD = %ld\n", error);
-   return -EINVAL; 
+   return -EINVAL;
}
 
 printk("Preparing to start counters\n");
@@ -254,7 +254,7 @@ printk("Preparing to start counters\n");
 }
 
 /*
- * Open the device and initialize all of its memory.  The device is only 
+ * Open the device and initialize all of its memory.  The device is only
  * opened once, but can be "queried" by multiple processes that know its
  * file descriptor.
  */
@@ -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
  * on.
  */
-static ssize_t perf_write(struct file *file, const char __user *buf, size_t 
count, 
-   loff_t *ppos)
+static ssize_t perf_write(struct file *file, const char __user *buf,
+   size_t count, loff_t *ppos)
 {
int err;
size_t image_size;
@@ -307,11 +307,11 @@ static ssize_t perf_write(struct file *file, const char 
__user *buf, size_t coun
uint32_t interface_type;
uint32_t test;
 
-   if (perf_processor_interface == ONYX_INTF) 
+   if (perf_processor_interface == ONYX_INTF)
image_size = PCXU_IMAGE_SIZE;
-   else if (perf_processor_interface == CUDA_INTF) 
+   else if (perf_processor_interface == CUDA_INTF)
image_size = PCXW_IMAGE_SIZE;
-   else 
+   else
return -EFAULT;
 
if (!capable(CAP_SYS_ADMIN))
@@ -331,22 +331,22 @@ static ssize_t perf_write(struct file *file, const char 
__user *buf, size_t coun
 
/* First check the machine type is correct for
   the requested image */
-if (((perf_processor_interface == CUDA_INTF) &&
-  (interface_type != CUDA_INTF)) ||
-   ((perf_processor_interface == ONYX_INTF) &&
-  (interface_type != ONYX_INTF))) 
+   if (((perf_processor_interface == CUDA_INTF) &&
+   (interface_type != CUDA_INTF)) ||
+   ((perf_processor_interface == ONYX_INTF) &&
+   (interface_type != ONYX_INTF)))
return -EINVAL;
 
/* Next check to make sure the requested image
   is valid */
-   if (((interface_type == CUDA_INTF) && 
+   if (((interface_type == CUDA_INTF) &&
   (test >= MAX_CUDA_IMAGES)) ||
-   ((interface_type == ONYX_INTF) && 
-  (test >= MAX_ONYX_IMAGES))) 
+   ((interface_type == ONYX_INTF) &&
+  (test >= MAX_ONYX_IMAGES)))