11 Jan, 2006

40 commits

  • Signed-of-by: Anil S Keshavamurthy

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keshavamurthy Anil S
     
  • The following patch (against 2.6.15-rc5-mm3) fixes a kprobes build break
    due to changes introduced in the kprobe locking in 2.6.15-rc5-mm3. In
    addition, the patch reverts back the open-coding of kprobe_mutex.

    Signed-off-by: Ananth N Mavinakayanahalli
    Acked-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ananth N Mavinakayanahalli
     
  • Currently arch_remove_kprobes() is only implemented/required for x86_64 and
    powerpc. All other architecture like IA64, i386 and sparc64 implementes a
    dummy function which is being called from arch independent kprobes.c file.

    This patch removes the dummy functions and replaces it with
    #define arch_remove_kprobe(p, s) do { } while(0)

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Based on some feedback from Oleg Nesterov, I have made few changes to
    previously posted patch.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keshavamurthy Anil S
     
  • Since Kprobes runtime exception handlers is now lock free as this code path is
    now using RCU to walk through the list, there is no need for the
    register/unregister{_kprobe} to use spin_{lock/unlock}_isr{save/restore}. The
    serialization during registration/unregistration is now possible using just a
    mutex.

    In the above process, this patch also fixes a minor memory leak for x86_64 and
    powerpc.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • The arch specific kprobes.h files never gets included when CONFIG_KPROBES is
    turned off. Hence check for CONFIG_KPROBES is not appropriate here in this
    arch specific kprobes.h files.

    Also the below defined function kprobes_exception_notify() is not needed when
    CONFIG_KPROBES is off.

    Compile tested for both CONFIG_KPROBES=y and N.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Kernel/kprobes.c defines get_insn_slot() and free_insn_slot() which are
    currently required _only_ for x86_64 and powerpc (which has no-exec support).

    FYI, get{free}_insn_slot() functions manages the memory page which is mapped
    as executable, required for instruction emulation.

    This patch moves those two functions under __ARCH_WANT_KPROBES_INSN_SLOT and
    defines __ARCH_WANT_KPROBES_INSN_SLOT in arch specific kprobes.h file.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anil S Keshavamurthy
     
  • Remove getnstimestamp() in favor of ktime.h's ktime_get_ts()

    Signed-off-by: Matt Helsley
    Cc: john stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     
  • Use ktime_get_ts() to take the timestamp instead of getnstimestamp(). This
    patch prepares to remove getnstimestamp() by switching its only user to a
    different function with almost exactly the same code.

    Signed-off-by: Matt Helsley
    Cc: john stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     
  • This series removes the getnstimestamp() function from kernel/time.c in favor
    of kernel/hrtimer.c's ktime_get_ts() function which currently does exactly the
    same thing: retrieves a high-resolution (ns) timespec structure and performs
    the wall_to_monotonic adjustment.

    This patch:

    Export ktime_get_ts() to be used as a timestamp function since it uses
    getnstimefoday() and does the wall_to_monotonic adjustment.

    Signed-off-by: Matt Helsley
    Cc: john stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     
  • - convert posix-timers.c to use hrtimers

    - remove the now obsolete abslist code

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Switch clock_nanosleep to use the new nanosleep functions in hrtimer.c

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • convert sys_nanosleep() to use hrtimer_nanosleep()

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • introduce the hrtimer_nanosleep() and hrtimer_nanosleep_real() APIs. Not yet
    used by any code.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • switch itimers to a hrtimers-based implementation

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • add hrtimer docbook and design document

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • hrtimer subsystem core. It is initialized at bootup and expired by the timer
    interrupt, but is otherwise not utilized by any other subsystem yet.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • - introduce ktime_t: nanosecond-resolution time format.

    - eliminate the plain s64 scalar type, and always use the union.
    This simplifies the arithmetics. Idea from Roman Zippel.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • - introduce the nsec_t type

    - basic nsec conversion routines: timespec_to_ns(), timeval_to_ns(),
    ns_to_timespec(), ns_to_timeval().

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Check if the timespec which is provided from user space is normalized.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • add timespec_valid(ts) [returns false if the timespec is denorm]

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • style/whitespace/macro cleanups of posix-timers.h

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • add const arguments to the posix-timers.h API functions

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • style and whitespace cleanup of the rest of time.h.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • clean up the CLOCK_ portions of time.h

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • remove unused CLOCK_ constants from time.h

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • This is now uninlined, but some modules use it.

    Make it a non-GPL export, since the inlined mktime() was also available that
    way.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • add 'const' to mktime arguments, and clean it up a bit

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • mktime() and set_normalized_timespec() are large inline functions used in many
    places: deinline them.

    From: George Anzinger, off-by-1 bugfix

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • make posix-timers.c use the generic calc64.h facility

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • move div_long_long_rem() from jiffies.h into a new calc64.h include file, as
    it is a general math function useful for other things than the jiffy code.
    Convert it to an inline function

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • Most arches copied the i386 ioctl.h. Combine them into a generic header.

    Signed-off-by: Brian Gerst
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brian Gerst
     
  • These days ioctl32.h is only used for communication of fs/compat.c and
    fs/compat_ioctl.c and doesn't contain anything of interest to drivers.

    Remove inclusion in various drivers.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Turn noatime and nodiratime into per-mount instead of per-sb flags.

    After all the preparations this is a rather trivial patch. The mount code
    needs to treat the two options as per-mount instead of per-superblock, and
    touch_atime needs to be changed to check the new MNT_ flags in addition to
    the MS_ flags that are kept for filesystems that are always
    noatime/nodiratime but not user settable anymore. Besides that core code
    only nfs needed an update because it's leaving atime updates to the server
    and thus sets the S_NOATIME flag on every inode, but needs to know whether
    it's a real noatime mount for an getattr optimization.

    While we're at it I've killed the IS_NOATIME/IS_NODIRATIME macros that were
    only used by touch_atime.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • MS_NOATIME implies MS_NODIRATIME

    Signed-off-by: Christoph Hellwig
    Cc: Eric Van Hensbergen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • MS_RDONLU implies not atime updates at all, no need for the MS_NOATIME and
    MS_NODIRATIME flags.

    Signed-off-by: Christoph Hellwig
    Cc: Anton Altaparmakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Now that all these entries in the arch ioctl32.c files are gone [1], we can
    build fs/compat_ioctl.c as a normal object and kill tons of cruft. We need a
    special do_ioctl32_pointer handler for s390 so the compat_ptr call is done.
    This is not needed but harmless on all other architectures. Also remove some
    superflous includes in fs/compat_ioctl.c

    Tested on ppc64.

    [1] parisc still had it's PPP handler left, which is not fully correct
    for ppp and besides that ppp uses the generic SIOCPRIV ioctl so it'd
    kick in for all netdevice users. We can introduce a proper handler
    in one of the next patch series by adding a compat_ioctl method to
    struct net_device but for now let's just kill it - parisc doesn't
    compile in mainline anyway and I don't want this to block this
    patchset.

    Signed-off-by: Christoph Hellwig
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Add a compat_ioctl method to the dasd driver so the last entries in
    arch/s390/kernel/compat_ioctl.c can go away. Unlike the previous attempt this
    one does not replace the ioctl method with an unlocked_ioctl method so that
    the ioctl_by_bdev calls in s390 partition code continue to work.

    Signed-off-by: Christoph Hellwig
    Cc: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • This patch implements generic handling of RTC_IRQP_READ32, RTC_IRQP_SET32,
    RTC_EPOCH_READ32 and RTC_EPOCH_SET32 in fs/compat_ioctl.c. It's based on the
    x86_64 code which needed a little massaging to be endian-clean.

    parisc used COMPAT_IOCTL or generic w_long handlers for these whichce is wrong
    and can't work because the ioctls encode sizeof(unsigned long) in their ioctl
    number. parisc also duplicated COMPAT_IOCTL entries for other rtc ioctls
    which I remove in this patch, too.

    Signed-off-by: Christoph Hellwig
    Acked-by: Matthew Wilcox
    Acked-by: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • The comment in compat.c is wrong, every architecture provides a
    get_compat_sigevent() for the IPC compat code already.

    This basically moves the x86_64 version to common code and removes all the
    others.

    Signed-off-by: Christoph Hellwig
    Acked-by: Paul Mackerras
    Cc: Arnd Bergmann
    Cc: Benjamin Herrenschmidt
    Cc: Martin Schwidefsky
    Cc: "David S. Miller"
    Acked-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig