30 Sep, 2006

1 commit

  • Pass ticks to do_timer() and update_times(), and adjust x86_64 and s390
    timer interrupt handler with this change.

    Currently update_times() calculates ticks by "jiffies - wall_jiffies", but
    callers of do_timer() should know how many ticks to update. Passing ticks
    get rid of this redundant calculation. Also there are another redundancy
    pointed out by Martin Schwidefsky.

    This cleanup make a barrier added by
    5aee405c662ca644980c184774277fc6d0769a84 needless. So this patch removes
    it.

    As a bonus, this cleanup make wall_jiffies can be removed easily, since now
    wall_jiffies is always synced with jiffies. (This patch does not really
    remove wall_jiffies. It would be another cleanup patch)

    Signed-off-by: Atsushi Nemoto
    Cc: Martin Schwidefsky
    Cc: "Eric W. Biederman"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: john stultz
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Acked-by: Russell King
    Cc: Ian Molton
    Cc: Mikael Starvik
    Acked-by: David Howells
    Cc: Yoshinori Sato
    Cc: Hirokazu Takata
    Acked-by: Ralf Baechle
    Cc: Kyle McMartin
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Richard Curnow
    Cc: William Lee Irwin III
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Cc: Miles Bader
    Cc: Chris Zankel
    Acked-by: "Luck, Tony"
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Atsushi Nemoto
     

24 Sep, 2006

1 commit

  • Unfortunately, sparc64 doesn't have an easy way to do a "64 X 64 -->
    128" bit multiply like PowerPC and IA64 do. We were doing a
    "64 X 64 --> 64" bit multiple which causes overflow very quickly with
    a 30-bit quotient shift.

    So use a quotientshift count of 10 instead of 30, just like x86 and
    ARM do.

    This also fixes the wrapping of printk timestamp values every ~17
    seconds.

    Signed-off-by: David S. Miller

    David S. Miller
     

15 Jul, 2006

1 commit


06 Jul, 2006

1 commit


01 Jul, 2006

1 commit


30 Jun, 2006

4 commits


24 Jun, 2006

3 commits


20 Jun, 2006

1 commit

  • This is the first in a series of cleanups that will hopefully
    allow a seamless attempt at using the generic IRQ handling
    infrastructure in the Linux kernel.

    Define PIL_DEVICE_IRQ and vector all device interrupts through
    there.

    Get rid of the ugly pil0_dummy_{bucket,desc}, instead vector
    the timer interrupt directly to a specific handler since the
    timer interrupt is the only event that will be signaled on
    PIL 14.

    The irq_worklist is now in the per-cpu trap_block[].

    Signed-off-by: David S. Miller

    David S. Miller
     

29 Mar, 2006

1 commit


20 Mar, 2006

5 commits


18 Jan, 2006

1 commit

  • Ensure a consistent value is read from the STICK register by ensuring
    that both high and low are read without high changing due to a roll
    over of the low register.

    Various Debian/SPARC users (myself include) have noticed problems with
    Hummingbird based systems. The symptoms are that the system time is
    seen to jump forward 3 days, 6 hours, 11 minutes give or take a few
    seconds. In many cases the system then hangs some time afterwards.

    I've spotted a race condition in the code to read the STICK register.
    I could not work out why 3d, 6h, 11m is important but guess that it is
    due to the 2^32 jump of STICK (forwards on one read and then the next
    read will seem to be backwards) during a timer interrupt. I'm guessing
    that a change of -2^32 will get converted to a large unsigned
    increment after the arithmetic manipulation between STICK,
    nanoseconds, jiffies etc.

    I did a test where I modified __hbird_read_stick to artificially
    inject rollover faults forcefully every few seconds. With this I saw
    the clock jump over 6 times in 12 hours compared to once every month
    or so.

    Signed-off-by: Richard Mortimer
    Signed-off-by: David S. Miller

    Richard Mortimer
     

08 Nov, 2005

1 commit


31 Oct, 2005

1 commit


08 Sep, 2005

1 commit

  • This patch cleans up a commonly repeated set of changes to the NTP state
    variables by adding two helper inline functions:

    ntp_clear(): Clears the ntp state variables

    ntp_synced(): Returns 1 if the system is synced with a time server.

    This was compile tested for alpha, arm, i386, x86-64, ppc64, s390, sparc,
    sparc64.

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

    john stultz
     

11 Jul, 2005

1 commit


05 Jul, 2005

1 commit

  • This allows a PCI controller to shim into IRQ delivery
    so that DMA queues can be drained, if necessary.

    If some bus specific code needs to run before an IRQ
    handler is invoked, the bus driver simply needs to setup
    the function pointer in bucket->irq_info->pre_handler and
    the two args bucket->irq_info->pre_handler_arg[12].

    The Schizo PCI driver is converted over to use a pre-handler
    for the DMA write-sync processing it needs when a device
    is behind a PCI->PCI bus deeper than the top-level APB
    bridges.

    While we're here, clean up all of the action allocation
    and handling. Now, we allocate the irqaction as part of
    the bucket->irq_info area. There is an array of 4 irqaction
    (for PCI irq sharing) and a bitmask saying which entries
    are active.

    The bucket->irq_info is allocated at build_irq() time, not
    at request_irq() time. This simplifies request_irq() and
    free_irq() tremendously.

    The SMP dynamic IRQ retargetting code got removed in this
    change too. It was disabled for a few months now, and we
    can resurrect it in the future if we want.

    Signed-off-by: David S. Miller

    David S. Miller
     

25 Apr, 2005

1 commit

  • void * __iomem foo is not a pointer to iomem - it's an iomem variable
    containing void *. A pile of such guys in arch/sparc64/kernel/time.c,
    drivers/sbus/char/rtc.c and include/asm-sparc64/mostek.h turned into
    intended void __iomem *.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

22 Apr, 2005

1 commit

  • Provide support for drivers/char/rtc.c ioctls in the
    Mostek rtc driver as well as the Sparc specific RTCGET
    and RTCSET.

    This allows userspace to be much less messy. Currently
    util-linux and other spots jump through hoops trying
    various ioctl variants until it hits the right one whatever
    driver actually being used supports.

    Eventually all of this should move over to the genrtc.c
    driver, but not today...

    While we are here, fix up the register types for sparse.

    Thanks to Frans Pop for helping point out this issue.

    Signed-off-by: David S. Miller

    David S. Miller
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds