Re: [PATCH 1/3] debugfs: pass NULL as the last parameter of debugfs_print_regs32()
2012/10/27 Greg KH : > On Sat, Oct 27, 2012 at 01:55:42AM +0800, Yan Hong wrote: >> Pass NULL instead of empty string to debugfs_print_regs32() when >> prefix is not used, according to the intention of the code. > > Is this solving a problem? Is it wrong as-is? Is it causing an issue > today? > > thanks, > > greg k-h Hmmm ... this function is rarely used, and maybe over-designed. The 'prefix' feature can be actually removed -- nobody uses it. As to the empty string, it looks like a typo to me. Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/3] debugfs: pass NULL as the last parameter of debugfs_print_regs32()
2012/10/27 Greg KH gre...@linuxfoundation.org: On Sat, Oct 27, 2012 at 01:55:42AM +0800, Yan Hong wrote: Pass NULL instead of empty string to debugfs_print_regs32() when prefix is not used, according to the intention of the code. Is this solving a problem? Is it wrong as-is? Is it causing an issue today? thanks, greg k-h Hmmm ... this function is rarely used, and maybe over-designed. The 'prefix' feature can be actually removed -- nobody uses it. As to the empty string, it looks like a typo to me. Thanks -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/3] proc: return -ENOMEM when inode allocation failed
2012/9/5 Cong Wang : >>> Why the !memcmp() case is related with ENOMEM ?? >> >> >> We are presetting 'error' here. The following proc_get_inode() will try >> to get an inode, either from inode cache or allocate a new one (and fill >> it). >> >> If we get a NULL inode, that means allocation failed. That's how >> ENOMEM involved. > > > Then the following patch is probably better than yours: > > > diff --git a/fs/proc/generic.c b/fs/proc/generic.c > index b3647fe..6b22913 100644 > --- a/fs/proc/generic.c > +++ b/fs/proc/generic.c > @@ -427,12 +427,16 @@ struct dentry *proc_lookup_de(struct proc_dir_entry > *de, struct inode *dir, > > if (!memcmp(dentry->d_name.name, de->name, de->namelen)) { > pde_get(de); > spin_unlock(_subdir_lock); > - error = -EINVAL; > inode = proc_get_inode(dir->i_sb, de); > + if (!inode) { > + error = -ENOMEM; > + goto out_put; > + } > goto out_unlock; > } > } > spin_unlock(_subdir_lock); > + > out_unlock: > > if (inode) { > @@ -440,6 +444,8 @@ out_unlock: > d_add(dentry, inode); > return NULL; > } > +out_put: > + > if (de) > pde_put(de); > return ERR_PTR(error); > > Change so many lines to save a assignment to 'error' ... That's a stye issue. I prefer a simple change, though your change seems OK to me. Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/3] proc: return -ENOMEM when inode allocation failed
2012/9/5 Cong Wang xiyou.wangc...@gmail.com: Why the !memcmp() case is related with ENOMEM ?? We are presetting 'error' here. The following proc_get_inode() will try to get an inode, either from inode cache or allocate a new one (and fill it). If we get a NULL inode, that means allocation failed. That's how ENOMEM involved. Then the following patch is probably better than yours: diff --git a/fs/proc/generic.c b/fs/proc/generic.c index b3647fe..6b22913 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -427,12 +427,16 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir, if (!memcmp(dentry-d_name.name, de-name, de-namelen)) { pde_get(de); spin_unlock(proc_subdir_lock); - error = -EINVAL; inode = proc_get_inode(dir-i_sb, de); + if (!inode) { + error = -ENOMEM; + goto out_put; + } goto out_unlock; } } spin_unlock(proc_subdir_lock); + out_unlock: if (inode) { @@ -440,6 +444,8 @@ out_unlock: d_add(dentry, inode); return NULL; } +out_put: + if (de) pde_put(de); return ERR_PTR(error); Change so many lines to save a assignment to 'error' ... That's a stye issue. I prefer a simple change, though your change seems OK to me. Thanks -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/3] proc: return -ENOMEM when inode allocation failed
2012/9/4 Cong Wang : > On 09/03/2012 10:14 PM, yan wrote: >> >> Signed-off-by: yan > > > Please provide a changelog to explain why we need this patch. I think the title is self explained. >> --- >> fs/proc/generic.c |2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/fs/proc/generic.c b/fs/proc/generic.c >> index b3647fe..9e8f631 100644 >> --- a/fs/proc/generic.c >> +++ b/fs/proc/generic.c >> @@ -427,7 +427,7 @@ struct dentry *proc_lookup_de(struct proc_dir_entry >> *de, struct inode *dir, >> if (!memcmp(dentry->d_name.name, de->name, de->namelen)) { >> pde_get(de); >> spin_unlock(_subdir_lock); >> - error = -EINVAL; >> + error = -ENOMEM; > > > Why the !memcmp() case is related with ENOMEM ?? We are presetting 'error' here. The following proc_get_inode() will try to get an inode, either from inode cache or allocate a new one (and fill it). If we get a NULL inode, that means allocation failed. That's how ENOMEM involved. Thank you for your reply. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] proc: use kzalloc instead of kmalloc and memset
2012/9/4 Ryan Mallon > > On 04/09/12 00:14, yan wrote: > > Signed-off-by: yan > > --- > > fs/proc/generic.c |3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/fs/proc/generic.c b/fs/proc/generic.c > > index 9e8f631..38de015 100644 > > --- a/fs/proc/generic.c > > +++ b/fs/proc/generic.c > > @@ -616,10 +616,9 @@ static struct proc_dir_entry *__proc_create(struct > > proc_dir_entry **parent, > > > > len = strlen(fn); > > > > - ent = kmalloc(sizeof(struct proc_dir_entry) + len + 1, > > GFP_KERNEL); > > + ent = kzalloc(sizeof(struct proc_dir_entry) + len + 1, > > GFP_KERNEL); > > if (!ent) goto out; > > > > - memset(ent, 0, sizeof(struct proc_dir_entry)); > > memcpy(ent->name, fn, len + 1); > > ent->namelen = len; > > ent->mode = mode; > > Note that this change results in slightly different behaviour. Before > your change only sizeof(struct proc_dir_entry) is zero'ed by memset, and > then the name is filled in (the len + 1 part). After your change the > structure and the name field are both zeroed, so the name field is being > written to twice. The cost is probably negligible though. Oh, I didn't notice that actually. Thank you. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/3] proc: use kzalloc instead of kmalloc and memset
2012/9/4 Ryan Mallon rmal...@gmail.com On 04/09/12 00:14, yan wrote: Signed-off-by: yan clouds@gmail.com --- fs/proc/generic.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/proc/generic.c b/fs/proc/generic.c index 9e8f631..38de015 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -616,10 +616,9 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent, len = strlen(fn); - ent = kmalloc(sizeof(struct proc_dir_entry) + len + 1, GFP_KERNEL); + ent = kzalloc(sizeof(struct proc_dir_entry) + len + 1, GFP_KERNEL); if (!ent) goto out; - memset(ent, 0, sizeof(struct proc_dir_entry)); memcpy(ent-name, fn, len + 1); ent-namelen = len; ent-mode = mode; Note that this change results in slightly different behaviour. Before your change only sizeof(struct proc_dir_entry) is zero'ed by memset, and then the name is filled in (the len + 1 part). After your change the structure and the name field are both zeroed, so the name field is being written to twice. The cost is probably negligible though. Oh, I didn't notice that actually. Thank you. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/3] proc: return -ENOMEM when inode allocation failed
2012/9/4 Cong Wang xiyou.wangc...@gmail.com: On 09/03/2012 10:14 PM, yan wrote: Signed-off-by: yan clouds@gmail.com Please provide a changelog to explain why we need this patch. I think the title is self explained. --- fs/proc/generic.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/proc/generic.c b/fs/proc/generic.c index b3647fe..9e8f631 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -427,7 +427,7 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir, if (!memcmp(dentry-d_name.name, de-name, de-namelen)) { pde_get(de); spin_unlock(proc_subdir_lock); - error = -EINVAL; + error = -ENOMEM; Why the !memcmp() case is related with ENOMEM ?? We are presetting 'error' here. The following proc_get_inode() will try to get an inode, either from inode cache or allocate a new one (and fill it). If we get a NULL inode, that means allocation failed. That's how ENOMEM involved. Thank you for your reply. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/