The patch titled git-semaphore-alpha-fix has been added to the -mm tree. Its filename is git-semaphore-alpha-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: git-semaphore-alpha-fix From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/asm-alpha/semaphore.h | 150 -------------------------------- 1 file changed, 1 insertion(+), 149 deletions(-) diff -puN include/asm-alpha/semaphore.h~git-semaphore-alpha-fix include/asm-alpha/semaphore.h --- a/include/asm-alpha/semaphore.h~git-semaphore-alpha-fix +++ a/include/asm-alpha/semaphore.h @@ -1,149 +1 @@ -#ifndef _ALPHA_SEMAPHORE_H -#define _ALPHA_SEMAPHORE_H - -/* - * SMP- and interrupt-safe semaphores.. - * - * (C) Copyright 1996 Linus Torvalds - * (C) Copyright 1996, 2000 Richard Henderson - */ - -#include <asm/current.h> -#include <asm/system.h> -#include <asm/atomic.h> -#include <linux/compiler.h> -#include <linux/wait.h> -#include <linux/rwsem.h> - -struct semaphore { - atomic_t count; - wait_queue_head_t wait; -}; - -#define __SEMAPHORE_INITIALIZER(name, n) \ -{ \ - .count = ATOMIC_INIT(n), \ - .wait = __WAIT_QUEUE_HEAD_INITIALIZER((name).wait), \ -} - -#define __DECLARE_SEMAPHORE_GENERIC(name,count) \ - struct semaphore name = __SEMAPHORE_INITIALIZER(name,count) - -#define DECLARE_MUTEX(name) __DECLARE_SEMAPHORE_GENERIC(name,1) - -static inline void sema_init(struct semaphore *sem, int val) -{ - /* - * Logically, - * *sem = (struct semaphore)__SEMAPHORE_INITIALIZER((*sem),val); - * except that gcc produces better initializing by parts yet. - */ - - atomic_set(&sem->count, val); - init_waitqueue_head(&sem->wait); -} - -static inline void init_MUTEX (struct semaphore *sem) -{ - sema_init(sem, 1); -} - -static inline void init_MUTEX_LOCKED (struct semaphore *sem) -{ - sema_init(sem, 0); -} - -extern void down(struct semaphore *); -extern void __down_failed(struct semaphore *); -extern int down_interruptible(struct semaphore *); -extern int __down_failed_interruptible(struct semaphore *); -extern int down_trylock(struct semaphore *); -extern void up(struct semaphore *); -extern void __up_wakeup(struct semaphore *); - -/* - * Hidden out of line code is fun, but extremely messy. Rely on newer - * compilers to do a respectable job with this. The contention cases - * are handled out of line in arch/alpha/kernel/semaphore.c. - */ - -static inline void __down(struct semaphore *sem) -{ - long count; - might_sleep(); - count = atomic_dec_return(&sem->count); - if (unlikely(count < 0)) - __down_failed(sem); -} - -static inline int __down_interruptible(struct semaphore *sem) -{ - long count; - might_sleep(); - count = atomic_dec_return(&sem->count); - if (unlikely(count < 0)) - return __down_failed_interruptible(sem); - return 0; -} - -/* - * down_trylock returns 0 on success, 1 if we failed to get the lock. - */ - -static inline int __down_trylock(struct semaphore *sem) -{ - long ret; - - /* "Equivalent" C: - - do { - ret = ldl_l; - --ret; - if (ret < 0) - break; - ret = stl_c = ret; - } while (ret == 0); - */ - __asm__ __volatile__( - "1: ldl_l %0,%1\n" - " subl %0,1,%0\n" - " blt %0,2f\n" - " stl_c %0,%1\n" - " beq %0,3f\n" - " mb\n" - "2:\n" - ".subsection 2\n" - "3: br 1b\n" - ".previous" - : "=&r" (ret), "=m" (sem->count) - : "m" (sem->count)); - - return ret < 0; -} - -static inline void __up(struct semaphore *sem) -{ - if (unlikely(atomic_inc_return(&sem->count) <= 0)) - __up_wakeup(sem); -} - -#if !defined(CONFIG_DEBUG_SEMAPHORE) -static inline void down(struct semaphore *sem) -{ - __down(sem); -} -static inline int down_interruptible(struct semaphore *sem) -{ - return __down_interruptible(sem); -} -static inline int down_trylock(struct semaphore *sem) -{ - return __down_trylock(sem); -} -static inline void up(struct semaphore *sem) -{ - __up(sem); -} -#endif - -#endif +#include <linux/semaphore.h> _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch include-asm-alpha-semaphoreh-use-static-inline-on-inlines.patch revert-x86-fix-call-to-set_cyc2ns_scale-from-time_cpufreq_notifier.patch revert-set-relay-file-can-not-be-read-by-pread2.patch git-acpi.patch git-acpi-revert-suspend-wakeup-code-in-c.patch acpi-enable-c3-power-state-on-dell-inspiron-8200.patch git-x86.patch arch-x86-mm-ioremapc-fix-printk-warnings.patch git-x86-fix-warning-in-arch-x86-kernel-vsmp_64c.patch git-kgdb-light.patch git-x86-hack-around-to-make-git-kgdb-build.patch git-x86-vs-git-kgdb-lite.patch git-alsa-tiwai.patch es1968-fix-jitter-on-some-maestro-cards-checkpatch-fixes.patch git-agpgart-export-agp_generic_alloc_pages.patch git-agpgart-fix-type-confusion.patch git-agpgart-drivers-char-agp-i460-agpc-hacks.patch cifs-suppress-warning.patch git-powerpc.patch pm-remove-destroy_suspended_device.patch pm-introduce-new-top-level-suspend-and-hibernation-callbacks-rev-7-fix.patch pm-new-suspend-and-hibernation-callbacks-for-pci-bus-type-rev-3-fix.patch git-drm.patch git-dvb.patch git-hwmon.patch git-gfs2-nmw.patch git-dlm-vs-git-gfs2-nwm.patch git-hid.patch git-hrt.patch time-close-small-window-for-vsyscall-time-inconsistencies-checkpatch-fixes.patch git-ia64.patch git-ieee1394.patch git-infiniband.patch git-infiniband-vs-gregkh-driver-ib-convert-struct-class_device-to-struct-device.patch gregkh-driver-ib-convert-struct-class_device-to-struct-device-vs-git-infiniband.patch maple-add-driver-for-sega-dreamcast-controller.patch touch-screen-driver-for-the-superh-migor-board-checkpatch-fixes.patch git-leds.patch git-libata-all.patch git-async-tx.patch git-mips.patch git-net.patch net-ipv6-ip6_inputc-fix-a-couple-of-warnings.patch drivers-atm-firestreamc-suppress-uninitialized-var-warning.patch drivers-net-bonding-bond_sysfsc-suppress-uninitialized-var-warning.patch ehea-fix-dlpar-memory-add-support-fix.patch sundance-set-carrier-status-on-link-change-events-checkpatch-fixes.patch update-smc91x-driver-with-arm-versatile-board-info.patch fs-nfs-callback_xdrc-suppress-uninitialiized-variable-warnings.patch git-nfsd.patch git-ocfs2.patch arch-parisc-kernel-unalignedc-use-time_-macros.patch drivers-pcmcia-soc_commonc-convert-soc_pcmcia_sockets_lock-into-a-mutex-and-make-it-static.patch git-selinux.patch revert-gregkh-pci-pci-arm-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-cris-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-frv-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-mips-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-mn10300-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-parisc-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-ppc-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-sh-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-sparc64-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-v850-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-xtensa-use-generic-pci_enable_resources.patch pci-hotplug-introduce-pci_slot-fix.patch pci-hotplug-introduce-pci_slot-fix-fix.patch pci-hotplug-introduce-pci_slot-fix-2.patch pci-hotplug-introduce-pci_slot-fix-99.patch pci-hotplug-acpi-pci-slot-detection-driver-fix.patch drivers-acpi-pci_slotc-fix-build-with-config_dmi=n.patch git-s390.patch git-sched.patch git-sh.patch sh-arch-sh-kernel-traps_32c-needs-asm-fpuh.patch git-scsi-misc.patch git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device.patch git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device-fix.patch scsi-fix-section-mismatch-in-aic94xx.patch drivers-scsi-mvsasc-fix-build-warnings.patch git-block-git-rejects.patch sparc32-export-empty_zero_page.patch git-unionfs.patch fix-gregkh-usb-usb-ohci-port-reset-paranoia-timeout.patch git-v9fs.patch git-vfs.patch git-watchdog.patch git-watchdog-git-rejects.patch xfs-suppress-uninitialized-var-warnings.patch git-cryptodev-misplaced-hunk.patch git-cryptodev-fix-conflict.patch git-cryptodev-fix-conflict-hack.patch git-xtensa.patch make-module_sect_attrs-private-to-kernel-modulec-checkpatch-fixes.patch git-semaphore-vs-git-x86.patch git-semaphore-git-rejects.patch git-semaphore-alpha-fix.patch ext4-is-busted-on-m68k.patch smc91x-driver-fix-bug-print-warning-only-in-interrupt-mode.patch remove-sparse-warning-for-mmzoneh-checkpatch-fixes.patch fix-invalidate_inode_pages2_range-to-not-clear-ret-checkpatch-fixes.patch mm-make-reserve_bootmem-can-crossed-the-nodes-checkpatch-fixes.patch mm-make-early_pfn_to_nid-a-c-function.patch vmalloc-show-vmalloced-areas-via-proc-vmallocinfo-checkpatch-fixes.patch vmalloc-show-vmalloced-areas-via-proc-vmallocinfo-fix-2.patch vmallocinfo-add-caller-information-checkpatch-fixes.patch page_mapping-add-ifdef-around-reference-to-swapper_space.patch smaps-account-swap-entries-sneak-in-a-coding-style-fix.patch mm-introduce-pte_special-pte-bit-fix.patch hugetlb-vmstat-events-for-huge-page-allocations-cleanup.patch mempolicy-use-struct-mempolicy-pointer-in-shmem_sb_info-fix.patch mempolicy-use-struct-mempolicy-pointer-in-shmem_sb_info-fix-fix.patch mempolicy-use-struct-mempolicy-pointer-in-shmem_sb_info-fix-fix-fix.patch vmscan-give-referenced-active-and-unmapped-pages-a-second-trip-around-the-lru.patch vm-dont-run-touch_buffer-during-buffercache-lookups.patch capabilities-implement-per-process-securebits-warning-fix.patch lsm-introduce-inode_getsecid-and-ipc_getsecid-hooks-checkpatch-fixes.patch lsm-audit-introduce-generic-audit-lsm-hooks-checkpatch-fixes.patch selinux-use-new-audit-hooks-remove-redundant-exports-checkpatch-fixes.patch audit-final-renamings-and-cleanup-checkpatch-fixes.patch arch-alpha-kernel-trapsc-use-time_-macros-fix.patch alpha-teach-the-compiler-that-bug-doesnt-return.patch make-dev-kmem-a-config-option-fix.patch misc-phantom-add-compat-ioctl-checkpatch-fixes.patch sysrq-add-show-backtrace-on-all-cpus-function-checkpatch-fixes.patch sysrq-add-show-backtrace-on-all-cpus-function-checkpatch-fixes-cleanup.patch codafs-fix-build-warning.patch lists-add-const-qualifier-to-first-arg-of-list_splice-operations-checkpatch-fixes.patch lib-swiotlbc-cleanups.patch fs-inodec-use-hlist_for_each_entry-checkpatch-fixes.patch add-rcu_assign_index-if-ever-needed-fix.patch add-warn_on_secs-macro-simplification-fix.patch add-warn_on_secs-macro-simplification-fix-fix.patch uart_get_baud_rate-stop-mangling-termios-fix.patch drivers-acpi-thermalc-fix-build-with-config_dmi=n.patch oprofile-change-cpu_buffer-from-array-to-per_cpu-variable-checkpatch-fixes.patch vt-notifier-extension-for-accessibility-checkpatch-fixes.patch kprobes-prevent-probing-of-preempt_schedule-fix.patch kprobes-prevent-probing-of-preempt_schedule-checkpatch-fixes.patch quota-various-style-cleanups-checkpatch-fixes.patch quota-quota-core-changes-for-quotaon-on-remount-quota-ext3-make-ext3-handle-quotaon-on-remount-checkpatch-fixes.patch quota-quota-core-changes-for-quotaon-on-remount-quota-ext4-make-ext4-handle-quotaon-on-remount-checkpatch-fixes.patch quota-convert-stub-functions-from-macros-into-inlines.patch rtc-isl1208-new-style-conversion-and-minor-bug-fixes-checkpatch-fixes.patch rtc-pcf8563-new-style-conversion-checkpatch-fixes.patch rtc-pcf8563-new-style-conversion-checkpatch-fixes-fix.patch rtc-x1205-new-style-conversion-checkpatch-fixes.patch gpiochip_reserve-fix.patch fb-add-support-for-foreign-endianness-force-it-on.patch fbcon-replace-mono_col-macro-with-static-inline-fix.patch pm-gxfb-add-hook-to-pm-console-layer-that-allows-disabling-of-suspend-vt-switch-fix.patch lxfb-add-power-management-functionality-fix.patch pnp-use-dev_printk-for-quirk-messages-fix.patch fat_valid_media-remove-pointless-test.patch documentation-build-source-files-in-documentation-sub-dir-disable.patch cgroup-api-files-update-cpusets-to-use-cgroup-structured-file-api-fix.patch cgroups-implement-device-whitelist-v6-checkpatch-fixes.patch cgroups-implement-device-whitelist-v6-cleanups.patch cgroups-implement-device-whitelist-v6-fix.patch add-a-document-describing-the-resource-counter-abstraction-v2-fix.patch memcgroup-implement-failcounter-reset-checkpatch-fixes.patch workqueues-shrink-cpu_populated_map-when-cpu-dies-fix.patch ipc-use-ipc_buildid-directly-from-ipc_addid-cleanup.patch ipc-add-definitions-of-ushort_max-and-others-checkpatch-fixes.patch ipmi-run-to-completion-fixes-checkpatch-fixes.patch ipmi-style-fixes-in-the-system-interface-code-checkpatch-fixes.patch sxc-fix-printk-warnings-on-sparc32.patch elf-fix-shadowed-variables-in-fs-binfmt_elfc.patch sgi-altix-mmtimer-allow-larger-number-of-timers-per-node-fix.patch sgi-altix-mmtimer-allow-larger-number-of-timers-per-node-fix-2.patch epcac-static-functions-and-integer-as-null-pointer-fixes-checkpatch-fixes.patch keys-add-keyctl-function-to-get-a-security-label-fix.patch procfs-task-exe-symlink-fix.patch proc-switch-to-proc_create.patch edd-add-default-mode-config_edd_off=n-override-with-edd=onoff-fix.patch mm-bdi-export-bdi-attributes-in-sysfs-ia64-fix.patch basic-braille-screen-reader-support-ppc-fix.patch hfs-fix-warning-with-64k-page_size.patch hfsplus-fix-warning-with-64k-page_size.patch alloc_uid-cleanup.patch add-macros-similar-to-min-max-min_t-max_t.patch rename-div64_64-to-div64_u64-fix.patch idr-create-idr_layer_cache-at-boot-time-fix.patch idr-create-idr_layer_cache-at-boot-time-fix-fix.patch edac-add-e752x-parameter-for-sysbus_parity-selection-checkpatch-fixes.patch reiser4.patch jens-broke-reiser4patch-added-to-mm-tree.patch page-owner-tracking-leak-detector.patch nr_blockdev_pages-in_interrupt-warning.patch slab-leaks3-default-y.patch put_bh-debug.patch shrink_slab-handle-bad-shrinkers.patch getblk-handle-2tb-devices.patch getblk-handle-2tb-devices-fix.patch undeprecate-pci_find_device.patch notify_change-callers-must-hold-i_mutex.patch profile-likely-unlikely-macros.patch profile-likely-unlikely-macros-fix.patch w1-build-fix.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