]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
authorDavid Woodhouse <dwmw2@shinybook.infradead.org>
Sat, 29 Apr 2006 00:42:26 +0000 (01:42 +0100)
committerDavid Woodhouse <dwmw2@infradead.org>
Sat, 29 Apr 2006 00:42:26 +0000 (01:42 +0100)
1  2 
include/asm-i386/pgtable.h
include/asm-ia64/machvec.h
include/asm-ia64/sn/sn_sal.h
include/asm-ia64/unistd.h
include/asm-mips/bitops.h
include/asm-mips/mips-boards/generic.h
include/asm-powerpc/unistd.h
include/linux/netdevice.h
include/linux/signal.h
include/linux/syscalls.h

index 248bd80a69c5765101457e575399a147ffe39caa,672c3f76b9df9344caacbbdbc64d308d929bc04e..09697fec3d2b33a29ab990abe03505625a85400d
@@@ -1,6 -1,7 +1,6 @@@
  #ifndef _I386_PGTABLE_H
  #define _I386_PGTABLE_H
  
 -#include <linux/config.h>
  
  /*
   * The Linux memory management assumes a three-level page table setup. On
@@@ -203,12 -204,10 +203,10 @@@ extern unsigned long long __PAGE_KERNEL
  extern unsigned long pg0[];
  
  #define pte_present(x)        ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
- #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
  
  /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */
  #define pmd_none(x)   (!(unsigned long)pmd_val(x))
  #define pmd_present(x)        (pmd_val(x) & _PAGE_PRESENT)
- #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)
  #define       pmd_bad(x)      ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
  
  
@@@ -267,7 -266,7 +265,7 @@@ static inline pte_t ptep_get_and_clear_
        pte_t pte;
        if (full) {
                pte = *ptep;
-               *ptep = __pte(0);
+               pte_clear(mm, addr, ptep);
        } else {
                pte = ptep_get_and_clear(mm, addr, ptep);
        }
index 96d46dbfde47cfe7b43599b0618e16292a0246e3,a9c995a86c21e42482060eeda9fd68ce55078b07..0df72a134c8b80e26f2f04cc471e655ffddd3c75
@@@ -10,6 -10,7 +10,6 @@@
  #ifndef _ASM_IA64_MACHVEC_H
  #define _ASM_IA64_MACHVEC_H
  
 -#include <linux/config.h>
  #include <linux/types.h>
  
  /* forward declarations: */
@@@ -346,9 -347,11 +346,11 @@@ extern ia64_mv_dma_supported             swiotlb_d
  #endif
  #ifndef platform_pci_legacy_read
  # define platform_pci_legacy_read     ia64_pci_legacy_read
+ extern int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size);
  #endif
  #ifndef platform_pci_legacy_write
  # define platform_pci_legacy_write    ia64_pci_legacy_write
+ extern int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size);
  #endif
  #ifndef platform_inb
  # define platform_inb         __ia64_inb
index 8664c88a1ff56665ba6ab532e8b8fd902ef9ea9f,51aca022cf3906c632eb4c192e3070b211e1b16f..8c865e43f609ac1dfe2f5464ac7fd6e1edce8d43
@@@ -8,10 -8,11 +8,10 @@@
   * License.  See the file "COPYING" in the main directory of this archive
   * for more details.
   *
-  * Copyright (c) 2000-2005 Silicon Graphics, Inc.  All rights reserved.
+  * Copyright (c) 2000-2006 Silicon Graphics, Inc.  All rights reserved.
   */
  
  
 -#include <linux/config.h>
  #include <asm/sal.h>
  #include <asm/sn/sn_cpuid.h>
  #include <asm/sn/arch.h>
@@@ -84,6 -85,7 +84,7 @@@
  
  #define  SN_SAL_GET_PROM_FEATURE_SET             0x02000065
  #define  SN_SAL_SET_OS_FEATURE_SET               0x02000066
+ #define  SN_SAL_INJECT_ERROR                     0x02000067
  
  /*
   * Service-specific constants
@@@ -704,10 -706,8 +705,8 @@@ static inline in
  sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array)
  {
        struct ia64_sal_retval ret_stuff;
-       int cnodeid;
        unsigned long irq_flags;
  
-       cnodeid = nasid_to_cnodeid(get_node_number(paddr));
        local_irq_save(irq_flags);
        ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len,
                                (u64)nasid_array, perms, 0, 0, 0);
@@@ -1139,4 -1139,16 +1138,16 @@@ ia64_sn_set_os_feature(int feature
        return rv.status;
  }
  
+ static inline int
+ sn_inject_error(u64 paddr, u64 *data, u64 *ecc)
+ {
+       struct ia64_sal_retval ret_stuff;
+       unsigned long irq_flags;
+       local_irq_save(irq_flags);
+       ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data,
+                               (u64)ecc, 0, 0, 0, 0);
+       local_irq_restore(irq_flags);
+       return ret_stuff.status;
+ }
  #endif /* _ASM_IA64_SN_SN_SAL_H */
index 395e6b2998f2068eccc883814f5146646fb386c8,7107763168bfd4b82f2c5f5edf96978a2a2446f8..632f2eedf72c9fab463c74ce682485a576e7c077
  #define __NR_get_robust_list          1299
  #define __NR_sync_file_range          1300
  #define __NR_tee                      1301
+ #define __NR_vmsplice                 1302
  
  #ifdef __KERNEL__
  
 -#include <linux/config.h>
  
- #define NR_syscalls                   278 /* length of syscall table */
+ #define NR_syscalls                   279 /* length of syscall table */
  
  #define __ARCH_WANT_SYS_RT_SIGACTION
  
index 0e71df31f81ce7b43e324a9f37feff26d8760051,d2f444537e4b3266c67473e763752677c2a54538..098cec263681b47cb925266cdef2bc2034482253
@@@ -9,6 -9,7 +9,6 @@@
  #ifndef _ASM_BITOPS_H
  #define _ASM_BITOPS_H
  
 -#include <linux/config.h>
  #include <linux/compiler.h>
  #include <linux/types.h>
  #include <asm/bug.h>
@@@ -466,64 -467,56 +466,56 @@@ static inline unsigned long __ffs(unsig
  }
  
  /*
-  * ffs - find first bit set.
+  * fls - find last bit set.
   * @word: The word to search
   *
-  * Returns 1..SZLONG
-  * Returns 0 if no bit exists
+  * This is defined the same way as ffs.
+  * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
   */
- static inline unsigned long ffs(unsigned long word)
+ static inline int fls(int word)
  {
-       if (!word)
-               return 0;
+       __asm__ ("clz %0, %1" : "=r" (word) : "r" (word));
  
-       return __ffs(word) + 1;
+       return 32 - word;
  }
  
- /*
-  * ffz - find first zero in word.
-  * @word: The word to search
-  *
-  * Undefined if no zero exists, so code should check against ~0UL first.
-  */
- static inline unsigned long ffz(unsigned long word)
+ #if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPS64)
+ static inline int fls64(__u64 word)
  {
-       return __ffs (~word);
+       __asm__ ("dclz %0, %1" : "=r" (word) : "r" (word));
+       return 64 - word;
  }
+ #else
+ #include <asm-generic/bitops/fls64.h>
+ #endif
  
  /*
-  * fls - find last bit set.
+  * ffs - find first bit set.
   * @word: The word to search
   *
-  * Returns 1..SZLONG
-  * Returns 0 if no bit exists
+  * This is defined the same way as
+  * the libc and compiler builtin ffs routines, therefore
+  * differs in spirit from the above ffz (man ffs).
   */
- static inline unsigned long fls(unsigned long word)
+ static inline int ffs(int word)
  {
- #ifdef CONFIG_CPU_MIPS32
-       __asm__ ("clz %0, %1" : "=r" (word) : "r" (word));
-       return 32 - word;
- #endif
- #ifdef CONFIG_CPU_MIPS64
-       __asm__ ("dclz %0, %1" : "=r" (word) : "r" (word));
+       if (!word)
+               return 0;
  
-       return 64 - word;
- #endif
+       return fls(word & -word);
  }
  
  #else
  
  #include <asm-generic/bitops/__ffs.h>
  #include <asm-generic/bitops/ffs.h>
- #include <asm-generic/bitops/ffz.h>
  #include <asm-generic/bitops/fls.h>
+ #include <asm-generic/bitops/fls64.h>
  
  #endif /*defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64) */
  
- #include <asm-generic/bitops/fls64.h>
+ #include <asm-generic/bitops/ffz.h>
  #include <asm-generic/bitops/find.h>
  
  #ifdef __KERNEL__
index cad47ce8a7e9460097bd0d9f077c733b98c7a442,fa8b913cc3e0e0ba262d938ad1d8829df6443ed7..b98f1658cfd00a2aac65671daeba3a2e49cc86b9
@@@ -20,6 -20,7 +20,6 @@@
  #ifndef __ASM_MIPS_BOARDS_GENERIC_H
  #define __ASM_MIPS_BOARDS_GENERIC_H
  
 -#include <linux/config.h>
  #include <asm/addrspace.h>
  #include <asm/byteorder.h>
  #include <asm/mips-boards/bonito64.h>
@@@ -66,6 -67,7 +66,7 @@@
  #define MIPS_REVISION_CORID_CORE_FPGA2     7
  #define MIPS_REVISION_CORID_CORE_FPGAR2    8
  #define MIPS_REVISION_CORID_CORE_FPGA3     9
+ #define MIPS_REVISION_CORID_CORE_24K       10
  
  /**** Artificial corid defines ****/
  /*
index d471549e1b81a3db760540e2c9bbf07d9fc522e2,34325e2925964048ce4d65378fd75e8b5c1becca..ef932f1cddc3a9da4250b3c382b4f493a06dea33
  #define __NR_unshare          282
  #define __NR_splice           283
  #define __NR_tee              284
+ #define __NR_vmsplice         285
  
- #define __NR_syscalls         285
+ #define __NR_syscalls         286
  
  #ifdef __KERNEL__
  #define __NR__exit __NR_exit
@@@ -423,6 -424,7 +424,6 @@@ type name(type1 arg1, type2 arg2, type
  
  #ifdef __KERNEL__
  
 -#include <linux/config.h>
  #include <linux/types.h>
  #include <linux/compiler.h>
  #include <linux/linkage.h>
index c81aa0f76642ffa1c1d5a93717d3f24922ca2390,01db7b88a2b1c626f668085364ca6181ba9ca641..5128dd7634cb15fce52d09657519ab2cf0034316
@@@ -34,6 -34,7 +34,6 @@@
  #include <asm/cache.h>
  #include <asm/byteorder.h>
  
 -#include <linux/config.h>
  #include <linux/device.h>
  #include <linux/percpu.h>
  
@@@ -828,19 -829,21 +828,21 @@@ static inline void netif_rx_schedule(st
                __netif_rx_schedule(dev);
  }
  
- /* Try to reschedule poll. Called by dev->poll() after netif_rx_complete().
-  * Do not inline this?
-  */
+ static inline void  __netif_rx_reschedule(struct net_device *dev, int undo)
+ {
+       dev->quota += undo;
+       list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list);
+       __raise_softirq_irqoff(NET_RX_SOFTIRQ);
+ }
+ /* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */
  static inline int netif_rx_reschedule(struct net_device *dev, int undo)
  {
        if (netif_rx_schedule_prep(dev)) {
                unsigned long flags;
-               dev->quota += undo;
                local_irq_save(flags);
-               list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list);
-               __raise_softirq_irqoff(NET_RX_SOFTIRQ);
+               __netif_rx_reschedule(dev, undo);
                local_irq_restore(flags);
                return 1;
        }
diff --combined include/linux/signal.h
index 4b42df3860ed8fad44716ecf8f773d4e8dd0ff55,70739f51a09f5fe963c89c8bea9e8c1a3a97e36d..1e4ce7225eeef979c26cfc8a8cde48eba797dad2
@@@ -1,12 -1,12 +1,12 @@@
  #ifndef _LINUX_SIGNAL_H
  #define _LINUX_SIGNAL_H
  
 -#include <linux/list.h>
 -#include <linux/spinlock.h>
  #include <asm/signal.h>
  #include <asm/siginfo.h>
  
  #ifdef __KERNEL__
 +#include <linux/list.h>
 +#include <linux/spinlock.h>
  
  /*
   * These values of sa_flags are used only by the kernel as part of the
   *
   * SA_INTERRUPT is also used by the irq handling routines.
   * SA_SHIRQ is for shared interrupt support on PCI and EISA.
+  * SA_PROBEIRQ is set by callers when they expect sharing mismatches to occur
   */
- #define SA_PROBE              SA_ONESHOT
  #define SA_SAMPLE_RANDOM      SA_RESTART
  #define SA_SHIRQ              0x04000000
+ #define SA_PROBEIRQ           0x08000000
  /*
   * As above, these correspond to the IORESOURCE_IRQ_* defines in
   * linux/ioport.h to select the interrupt line behaviour.  When
diff --combined include/linux/syscalls.h
index 3bdc1970f8bdfdecd25a508199a2b1a308f4a7da,3996960fc5654e3da43c6b53259101f893bddd2f..70c64dbe4b8af4975925b897cddffc60e808d444
@@@ -53,6 -53,7 +53,6 @@@ struct mq_attr
  struct compat_stat;
  struct compat_timeval;
  
 -#include <linux/config.h>
  #include <linux/types.h>
  #include <linux/aio_abi.h>
  #include <linux/capability.h>
@@@ -573,6 -574,9 +573,9 @@@ asmlinkage long sys_splice(int fd_in, l
                           int fd_out, loff_t __user *off_out,
                           size_t len, unsigned int flags);
  
+ asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov,
+                            unsigned long nr_segs, unsigned int flags);
  asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags);
  
  asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes,