Blackfin arch: handle case of d_path() returning error in decode_address()
authorTim Pepper <lnxninja@linux.vnet.ibm.com>
Mon, 27 Oct 2008 04:18:36 +0000 (12:18 +0800)
committerBryan Wu <cooloney@kernel.org>
Mon, 27 Oct 2008 04:18:36 +0000 (12:18 +0800)
d_path() can return an error.  Most of its callers do something or other to
make up something sane in that case.  Do similar for blackfin's
decode_address() call to d_path().

Signed-off-by: Tim Pepper <lnxninja@linux.vnet.ibm.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
arch/blackfin/kernel/traps.c

index 1aa2c788e228399f3ab00912fc50296e052cbf71..0003616d02a230b9e6ff6846c59fcd631a158623 100644 (file)
@@ -147,9 +147,12 @@ static void decode_address(char *buf, unsigned long address)
                                char *name = p->comm;
                                struct file *file = vma->vm_file;
 
-                               if (file)
-                                       name = d_path(&file->f_path, _tmpbuf,
+                               if (file) {
+                                       char *d_name = d_path(&file->f_path, _tmpbuf,
                                                      sizeof(_tmpbuf));
+                                       if (!IS_ERR(d_name))
+                                               name = d_name;
+                               }
 
                                /* FLAT does not have its text aligned to the start of
                                 * the map while FDPIC ELF does ...