The patch titled profile-likely-unlikely-macros-tidy has been added to the -mm tree. Its filename is profile-likely-unlikely-macros-tidy.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this From: Andrew Morton <akpm@xxxxxxxx> Cc: Daniel Walker <dwalker@xxxxxxxxxx> CC: Hua Zhong <hzhong@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- include/linux/compiler.h | 30 +++++++++++++-------------- lib/likely_prof.c | 41 +++++++++++++++++++------------------ Kconfig.debug | 0 Makefile | 0 4 files changed, 37 insertions(+), 34 deletions(-) diff -puN include/linux/compiler.h~profile-likely-unlikely-macros-tidy include/linux/compiler.h --- 25/include/linux/compiler.h~profile-likely-unlikely-macros-tidy Wed Apr 26 15:23:15 2006 +++ 25-akpm/include/linux/compiler.h Wed Apr 26 15:23:15 2006 @@ -65,22 +65,22 @@ struct likeliness { extern int do_check_likely(struct likeliness *likeliness, int exp); -# define LP_UNSEEN 4 +#define LP_UNSEEN 4 -# define __check_likely(exp, is_likely) \ - ({ \ - static __attribute__((__section__(".likely.data"))) \ - struct likeliness likeliness = { \ - .func = __func__, \ - .file = __FILE__, \ - .line = __LINE__, \ - .type = is_likely | LP_UNSEEN, \ - }; \ - do_check_likely(&likeliness, !!(exp)); \ +#define __check_likely(exp, is_likely) \ + ({ \ + static __attribute__((__section__(".likely.data"))) \ + struct likeliness likeliness = { \ + .func = __func__, \ + .file = __FILE__, \ + .line = __LINE__, \ + .type = is_likely | LP_UNSEEN, \ + }; \ + do_check_likely(&likeliness, !!(exp)); \ }) -# define likely(x) __check_likely(x, 1) -# define unlikely(x) __check_likely(x, 0) +#define likely(x) __check_likely(x, 1) +#define unlikely(x) __check_likely(x, 0) #else /* * Generic compiler-dependent macros required for kernel @@ -88,8 +88,8 @@ extern int do_check_likely(struct likeli * specific implementations come from the above header files */ -# define likely(x) __builtin_expect(!!(x), 1) -# define unlikely(x) __builtin_expect(!!(x), 0) +#define likely(x) __builtin_expect(!!(x), 1) +#define unlikely(x) __builtin_expect(!!(x), 0) #endif /* Optimization barrier */ diff -puN lib/Kconfig.debug~profile-likely-unlikely-macros-tidy lib/Kconfig.debug diff -puN lib/likely_prof.c~profile-likely-unlikely-macros-tidy lib/likely_prof.c --- 25/lib/likely_prof.c~profile-likely-unlikely-macros-tidy Wed Apr 26 15:23:15 2006 +++ 25-akpm/lib/likely_prof.c Wed Apr 26 15:23:15 2006 @@ -14,15 +14,16 @@ #include <linux/fs.h> #include <linux/seq_file.h> #include <linux/proc_fs.h> + #include <asm/bug.h> #include <asm/atomic.h> static struct likeliness *likeliness_head; -volatile unsigned long likely_lock = 0; - int do_check_likely(struct likeliness *likeliness, int ret) { + static unsigned long likely_lock; + if (ret) likeliness->count[1]++; else @@ -30,13 +31,11 @@ int do_check_likely(struct likeliness *l if (likeliness->type & LP_UNSEEN) { /* - * We don't simple use a spinlock because - * internally to the spinlock there is a - * call to unlikely which causes recursion. - * We opted for this method because we - * didn't need a preempt/irq disable and it - * was a bit cleaner then using internal __raw - * spinlock calls . + * We don't simple use a spinlock because internally to the + * spinlock there is a call to unlikely which causes recursion. + * We opted for this method because we didn't need a preempt/irq + * disable and it was a bit cleaner then using internal __raw + * spinlock calls. */ if (!test_and_set_bit(0, &likely_lock)) { if (likeliness->type & LP_UNSEEN) { @@ -58,8 +57,10 @@ static void * lp_seq_start(struct seq_fi if (!*pos) { seq_printf(out, "Likely Profiling Results\n"); - seq_printf(out, " --------------------------------------------------------------------\n"); - seq_printf(out, "[+- ] Type | # True | # False | Function:Filename@Line\n"); + seq_printf(out, " --------------------------------------------" + "------------------------\n"); + seq_printf(out, "[+- ] Type | # True | # False | Function:" + "Filename@Line\n"); out->private = likeliness_head; } @@ -67,9 +68,9 @@ static void * lp_seq_start(struct seq_fi return out->private; } -static void * lp_seq_next(struct seq_file *out, void *p, loff_t *pos) +static void *lp_seq_next(struct seq_file *out, void *p, loff_t *pos) { - struct likeliness * entry = p; + struct likeliness *entry = p; if (entry->next) { ++(*pos); @@ -77,13 +78,14 @@ static void * lp_seq_next(struct seq_fil } else out->private = NULL; - return (out->private); + return out->private; } static int lp_seq_show(struct seq_file *out, void *p) { - struct likeliness * entry = p; - int true = entry->count[1], false = entry->count[0]; + struct likeliness *entry = p; + int true = entry->count[1]; + int false = entry->count[0]; if (!entry->type) { if (true > false) @@ -92,8 +94,7 @@ static int lp_seq_show(struct seq_file * seq_printf(out, " "); seq_printf(out, "unlikely "); - } - else { + } else { if (true < false) seq_printf(out, "-"); else @@ -108,7 +109,9 @@ static int lp_seq_show(struct seq_file * return 0; } -static void lp_seq_stop(struct seq_file *m, void *p) { } +static void lp_seq_stop(struct seq_file *m, void *p) +{ +} struct seq_operations likely_profiling_ops = { .start = lp_seq_start, diff -puN lib/Makefile~profile-likely-unlikely-macros-tidy lib/Makefile _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch config_net=n-build-fix.patch request_irq-remove-warnings-from-irq-probing.patch git-acpi.patch acpi-update-asus_acpi-driver-registration-fix.patch acpi-memory-hotplug-cannot-manage-_crs-with-plural-resoureces.patch catch-notification-of-memory-add-event-of-acpi-via-container-driver-register-start-func-for-memory-device.patch catch-notification-of-memory-add-event-of-acpi-via-container-driveravoid-redundant-call-add_memory.patch remove-for_each_cpu.patch sony_apci-resume.patch powernow-k8-crash-workaround.patch git-dvb.patch dvb-core-ule-fixes-and-rfc4326-additions-kernel-2616-tidy.patch sparc32-vivi-fix.patch git-dvb-compat-build-fix.patch bt866-build-fix.patch connector-exports.patch opencores-i2c-bus-driver-tidy.patch git-gfs2.patch git-libata-all.patch git-mtd.patch git-netdev-all.patch pci-error-recovery-e1000-network-device-driver.patch git-powerpc.patch powerpc-pseries-avoid-crash-in-pci-code-if-mem-system-not-up-tidy.patch gregkh-pci-pci-64-bit-resources-drivers-others-changes-amba-fix.patch git-scsi-misc.patch git-scsi-rc-fixes.patch enable-advansys-driver.patch advansys-warning-workaround.patch scsi-clean-up-warnings-in-advansys-driver-fix.patch fix-sco-on-some-bluetooth-adapters-tidy.patch git-watchdog.patch pg_uncached-is-ia64-only.patch migration-remove-unnecessary-pageswapcache-checks-fix.patch wait_table-and-zonelist-initializing-for-memory-hotadd-wait_table-initialization-fixes.patch preserve-write-permissions-in-migration-entries-fix.patch read-write-migration-entries-make-mprotect-convert-write-migration-fix.patch read-write-migration-entries-make-mprotect-convert-write-migration-fix-fix.patch read-write-migration-entries-make-mprotect-convert-write-migration-fix-fix-fix.patch slab-cleanup-kmem_getpages-fix.patch slab-stop-using-list_for_each-fix.patch pgdat-allocation-for-new-node-add-specify-node-id-tidy.patch pgdat-allocation-for-new-node-add-get-node-id-by-acpi-tidy.patch pgdat-allocation-for-new-node-add-generic-alloc-node_data-tidy.patch pgdat-allocation-for-new-node-add-export-kswapd-start-func-tidy.patch mm-introduce-remap_vmalloc_range-fix.patch acx1xx-wireless-driver.patch x86-x86_64-avoid-irq0-ioapic-pin-collision-tidy.patch s390-dasd-device-identifiers-fix.patch prune_one_dentry-tweaks.patch mmput-might-sleep.patch jbd-avoid-kfree-null.patch ext3_clear_inode-avoid-kfree-null.patch leds-amstrad-delta-led-support-tidy.patch hangcheck-remove-monotomic_clock-on-x86.patch pi-futex-futex-code-cleanups-fix.patch reiser4.patch savagefb-add-state-save-and_restore-hooks-tidy.patch kgdb-core-lite-add-reboot-command.patch kgdb-8250-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch revert-tty-buffering-comment-out-debug-code.patch slab-leaks3-default-y.patch x86-kmap_atomic-debugging.patch profile-likely-unlikely-macros-tidy.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html