Re: [PATCH 12/14] fs/binfmt_aout.c: Use time_* macros
14 Şub 2008 Per tarihinde, Geert Uytterhoeven şunları yazmıştı: > To me these constructs look like good candidates for replacement by > printk_ratelimit()? > > Gr{oetje,eeting}s, What about something like following? Use printk_ratelimit() instead of jiffies based arithmetic, suggested by Geert Uytterhoeven Signed-off-by: S.Çağlar Onur <[EMAIL PROTECTED]> fs/binfmt_aout.c | 12 +++- 1 files changed, 3 insertions(+), 9 deletions(-) diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index a1bb224..ba4cddb 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c @@ -372,21 +372,17 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs) flush_icache_range(text_addr, text_addr+ex.a_text+ex.a_data); } else { - static unsigned long error_time, error_time2; if ((ex.a_text & 0xfff || ex.a_data & 0xfff) && - (N_MAGIC(ex) != NMAGIC) && (jiffies-error_time2) > 5*HZ) + (N_MAGIC(ex) != NMAGIC) && printk_ratelimit()) { printk(KERN_NOTICE "executable not page aligned\n"); - error_time2 = jiffies; } - if ((fd_offset & ~PAGE_MASK) != 0 && - (jiffies-error_time) > 5*HZ) + if ((fd_offset & ~PAGE_MASK) != 0 && printk_ratelimit()) { printk(KERN_WARNING "fd_offset is not page aligned. Please convert program: %s\n", bprm->file->f_path.dentry->d_name.name); - error_time = jiffies; } if (!bprm->file->f_op->mmap||((fd_offset & ~PAGE_MASK) != 0)) { @@ -495,15 +491,13 @@ static int load_aout_library(struct file *file) start_addr = ex.a_entry & 0xf000; if ((N_TXTOFF(ex) & ~PAGE_MASK) != 0) { - static unsigned long error_time; loff_t pos = N_TXTOFF(ex); - if ((jiffies-error_time) > 5*HZ) + if (printk_ratelimit()) { printk(KERN_WARNING "N_TXTOFF is not page aligned. Please convert library: %s\n", file->f_path.dentry->d_name.name); - error_time = jiffies; } down_write(>mm->mmap_sem); do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); Cheers -- S.Çağlar Onur <[EMAIL PROTECTED]> http://cekirdek.pardus.org.tr/~caglar/ Linux is like living in a teepee. No Windows, no Gates and an Apache in house! -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 12/14] fs/binfmt_aout.c: Use time_* macros
On Thu, 14 Feb 2008, S.�~Ga�~_lar Onur wrote: > The functions time_before, time_before_eq, time_after, and time_after_eq are > more robust for comparing jiffies against other values. > > So following patch implements usage of the time_after() macro, defined at > linux/jiffies.h, which deals with wrapping correctly > > Cc: [EMAIL PROTECTED] > Signed-off-by: S.Çağlar Onur <[EMAIL PROTECTED]> > --- > fs/binfmt_aout.c |7 --- > 1 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c > index a1bb224..72757fe 100644 > --- a/fs/binfmt_aout.c > +++ b/fs/binfmt_aout.c > @@ -6,6 +6,7 @@ > > #include > > +#include > #include > #include > #include > @@ -374,14 +375,14 @@ static int load_aout_binary(struct linux_binprm * bprm, > struct pt_regs * regs) > } else { > static unsigned long error_time, error_time2; > if ((ex.a_text & 0xfff || ex.a_data & 0xfff) && > - (N_MAGIC(ex) != NMAGIC) && (jiffies-error_time2) > 5*HZ) > + (N_MAGIC(ex) != NMAGIC) && time_after(jiffies, error_time2 > + 5 * HZ)) > { > printk(KERN_NOTICE "executable not page aligned\n"); > error_time2 = jiffies; > } > > > if ((fd_offset & ~PAGE_MASK) != 0 && > - (jiffies-error_time) > 5*HZ) > + time_after(jiffies, error_time + 5 * HZ)) > { > printk(KERN_WARNING > "fd_offset is not page aligned. Please convert > program: %s\n", > @@ -498,7 +499,7 @@ static int load_aout_library(struct file *file) > static unsigned long error_time; > loff_t pos = N_TXTOFF(ex); > > - if ((jiffies-error_time) > 5*HZ) > + if (time_after(jiffies ,error_time + 5 * HZ)) > { > printk(KERN_WARNING > "N_TXTOFF is not page aligned. Please convert > library: %s\n", To me these constructs look like good candidates for replacement by printk_ratelimit()? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [EMAIL PROTECTED] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
[PATCH 12/14] fs/binfmt_aout.c: Use time_* macros
The functions time_before, time_before_eq, time_after, and time_after_eq are more robust for comparing jiffies against other values. So following patch implements usage of the time_after() macro, defined at linux/jiffies.h, which deals with wrapping correctly Cc: [EMAIL PROTECTED] Signed-off-by: S.Çağlar Onur <[EMAIL PROTECTED]> --- fs/binfmt_aout.c |7 --- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index a1bb224..72757fe 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c @@ -6,6 +6,7 @@ #include +#include #include #include #include @@ -374,14 +375,14 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs) } else { static unsigned long error_time, error_time2; if ((ex.a_text & 0xfff || ex.a_data & 0xfff) && - (N_MAGIC(ex) != NMAGIC) && (jiffies-error_time2) > 5*HZ) + (N_MAGIC(ex) != NMAGIC) && time_after(jiffies, error_time2 + 5 * HZ)) { printk(KERN_NOTICE "executable not page aligned\n"); error_time2 = jiffies; } if ((fd_offset & ~PAGE_MASK) != 0 && - (jiffies-error_time) > 5*HZ) + time_after(jiffies, error_time + 5 * HZ)) { printk(KERN_WARNING "fd_offset is not page aligned. Please convert program: %s\n", @@ -498,7 +499,7 @@ static int load_aout_library(struct file *file) static unsigned long error_time; loff_t pos = N_TXTOFF(ex); - if ((jiffies-error_time) > 5*HZ) + if (time_after(jiffies ,error_time + 5 * HZ)) { printk(KERN_WARNING "N_TXTOFF is not page aligned. Please convert library: %s\n", -- 1.5.3.7 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 12/14] fs/binfmt_aout.c: Use time_* macros
The functions time_before, time_before_eq, time_after, and time_after_eq are more robust for comparing jiffies against other values. So following patch implements usage of the time_after() macro, defined at linux/jiffies.h, which deals with wrapping correctly Cc: [EMAIL PROTECTED] Signed-off-by: S.Çağlar Onur [EMAIL PROTECTED] --- fs/binfmt_aout.c |7 --- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index a1bb224..72757fe 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c @@ -6,6 +6,7 @@ #include linux/module.h +#include linux/jiffies.h #include linux/time.h #include linux/kernel.h #include linux/mm.h @@ -374,14 +375,14 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs) } else { static unsigned long error_time, error_time2; if ((ex.a_text 0xfff || ex.a_data 0xfff) - (N_MAGIC(ex) != NMAGIC) (jiffies-error_time2) 5*HZ) + (N_MAGIC(ex) != NMAGIC) time_after(jiffies, error_time2 + 5 * HZ)) { printk(KERN_NOTICE executable not page aligned\n); error_time2 = jiffies; } if ((fd_offset ~PAGE_MASK) != 0 - (jiffies-error_time) 5*HZ) + time_after(jiffies, error_time + 5 * HZ)) { printk(KERN_WARNING fd_offset is not page aligned. Please convert program: %s\n, @@ -498,7 +499,7 @@ static int load_aout_library(struct file *file) static unsigned long error_time; loff_t pos = N_TXTOFF(ex); - if ((jiffies-error_time) 5*HZ) + if (time_after(jiffies ,error_time + 5 * HZ)) { printk(KERN_WARNING N_TXTOFF is not page aligned. Please convert library: %s\n, -- 1.5.3.7 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 12/14] fs/binfmt_aout.c: Use time_* macros
On Thu, 14 Feb 2008, S.�~Ga�~_lar Onur wrote: The functions time_before, time_before_eq, time_after, and time_after_eq are more robust for comparing jiffies against other values. So following patch implements usage of the time_after() macro, defined at linux/jiffies.h, which deals with wrapping correctly Cc: [EMAIL PROTECTED] Signed-off-by: S.Çağlar Onur [EMAIL PROTECTED] --- fs/binfmt_aout.c |7 --- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index a1bb224..72757fe 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c @@ -6,6 +6,7 @@ #include linux/module.h +#include linux/jiffies.h #include linux/time.h #include linux/kernel.h #include linux/mm.h @@ -374,14 +375,14 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs) } else { static unsigned long error_time, error_time2; if ((ex.a_text 0xfff || ex.a_data 0xfff) - (N_MAGIC(ex) != NMAGIC) (jiffies-error_time2) 5*HZ) + (N_MAGIC(ex) != NMAGIC) time_after(jiffies, error_time2 + 5 * HZ)) { printk(KERN_NOTICE executable not page aligned\n); error_time2 = jiffies; } if ((fd_offset ~PAGE_MASK) != 0 - (jiffies-error_time) 5*HZ) + time_after(jiffies, error_time + 5 * HZ)) { printk(KERN_WARNING fd_offset is not page aligned. Please convert program: %s\n, @@ -498,7 +499,7 @@ static int load_aout_library(struct file *file) static unsigned long error_time; loff_t pos = N_TXTOFF(ex); - if ((jiffies-error_time) 5*HZ) + if (time_after(jiffies ,error_time + 5 * HZ)) { printk(KERN_WARNING N_TXTOFF is not page aligned. Please convert library: %s\n, To me these constructs look like good candidates for replacement by printk_ratelimit()? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [EMAIL PROTECTED] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say programmer or something like that. -- Linus Torvalds
Re: [PATCH 12/14] fs/binfmt_aout.c: Use time_* macros
14 Şub 2008 Per tarihinde, Geert Uytterhoeven şunları yazmıştı: To me these constructs look like good candidates for replacement by printk_ratelimit()? Gr{oetje,eeting}s, What about something like following? Use printk_ratelimit() instead of jiffies based arithmetic, suggested by Geert Uytterhoeven Signed-off-by: S.Çağlar Onur [EMAIL PROTECTED] fs/binfmt_aout.c | 12 +++- 1 files changed, 3 insertions(+), 9 deletions(-) diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index a1bb224..ba4cddb 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c @@ -372,21 +372,17 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs) flush_icache_range(text_addr, text_addr+ex.a_text+ex.a_data); } else { - static unsigned long error_time, error_time2; if ((ex.a_text 0xfff || ex.a_data 0xfff) - (N_MAGIC(ex) != NMAGIC) (jiffies-error_time2) 5*HZ) + (N_MAGIC(ex) != NMAGIC) printk_ratelimit()) { printk(KERN_NOTICE executable not page aligned\n); - error_time2 = jiffies; } - if ((fd_offset ~PAGE_MASK) != 0 - (jiffies-error_time) 5*HZ) + if ((fd_offset ~PAGE_MASK) != 0 printk_ratelimit()) { printk(KERN_WARNING fd_offset is not page aligned. Please convert program: %s\n, bprm-file-f_path.dentry-d_name.name); - error_time = jiffies; } if (!bprm-file-f_op-mmap||((fd_offset ~PAGE_MASK) != 0)) { @@ -495,15 +491,13 @@ static int load_aout_library(struct file *file) start_addr = ex.a_entry 0xf000; if ((N_TXTOFF(ex) ~PAGE_MASK) != 0) { - static unsigned long error_time; loff_t pos = N_TXTOFF(ex); - if ((jiffies-error_time) 5*HZ) + if (printk_ratelimit()) { printk(KERN_WARNING N_TXTOFF is not page aligned. Please convert library: %s\n, file-f_path.dentry-d_name.name); - error_time = jiffies; } down_write(current-mm-mmap_sem); do_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); Cheers -- S.Çağlar Onur [EMAIL PROTECTED] http://cekirdek.pardus.org.tr/~caglar/ Linux is like living in a teepee. No Windows, no Gates and an Apache in house! -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/