> -----Original Message-----
> From: linux-kernel-ow...@vger.kernel.org [mailto:linux-kernel-
> ow...@vger.kernel.org] On Behalf Of Pan Xinhui
> Sent: Thursday, July 23, 2015 4:54 AM
> To: linux-kernel@vger.kernel.org
> Subject: [PATCH] x86/mm/pat: Do a small optimization when dump PAT memtype
> list
...
> diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
> index 268b2c8..6302119 100644
> --- a/arch/x86/mm/pat.c
> +++ b/arch/x86/mm/pat.c
> @@ -1001,45 +1001,42 @@ EXPORT_SYMBOL_GPL(pgprot_writethrough);
> 
>  #if defined(CONFIG_DEBUG_FS) && defined(CONFIG_X86_PAT)
> 
> -static struct memtype *memtype_get_idx(loff_t pos)
> +static struct memtype *memtype_get_idx(struct memtype *entry, loff_t pos)
>  {
> -     struct memtype *print_entry;
>       int ret;
> 
> -     print_entry  = kzalloc(sizeof(struct memtype), GFP_KERNEL);
> -     if (!print_entry)
> -             return NULL;
> -
>       spin_lock(&memtype_lock);
> -     ret = rbt_memtype_copy_nth_element(print_entry, pos);
> +     ret = rbt_memtype_copy_nth_element(entry, pos);
>       spin_unlock(&memtype_lock);
> 
> -     if (!ret) {
> -             return print_entry;
> -     } else {
> -             kfree(print_entry);
> -             return NULL;
> -     }
> +     return ret ? NULL : entry;
>  }
> 
...
>  static void memtype_seq_stop(struct seq_file *seq, void *v)
>  {
> +     kfree(seq->private);
>  }
> 

Consider adding 
        seq->private = NULL; 
so the stale pointer isn't left around.  There's probably not
much risk of accessing it, but NULL is safer in case it is.

---
Robert Elliott, HP Server Storage
N�����r��y����b�X��ǧv�^�)޺{.n�+����{����zX����ܨ}���Ơz�&j:+v�������zZ+��+zf���h���~����i���z��w���?�����&�)ߢf��^jǫy�m��@A�a���
0��h���i

Reply via email to