)]}'
{
  "log": [
    {
      "commit": "b9095fd8a7f41dc7ac0b0b7864f74766a3056f96",
      "tree": "85653322dfb5b0c2faef3973d9d480d8117e4454",
      "parents": [
        "c25bd29805f4d854c3a0b4176813f3c1bff569d3"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri May 02 16:18:42 2008 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri May 02 16:18:42 2008 -0700"
      },
      "message": "Make constants in kernel/timeconst.h fixed 64 bits\n\nForce constants in kernel/timeconst.h (except shift counts) to be 64 bits,\nusing U64_C() constructor macros, and eliminate constants that cannot\nbe represented at all in 64 bits.  This avoids warnings with some gcc\nversions.\n\nDrop generating 64-bit constants, since we have no real hope of\ngetting a full set (operation on 64-bit values requires a 128-bit\nintermediate result, which gcc only supports on 64-bit platforms, and\nonly with libgcc support on some.)  Note that the use of these\nconstants does not depend on if we are on a 32- or 64-bit architecture.\n\nThis resolves Bugzilla 10153.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "c98aa86df3169e5d6275305376043134caa69831",
      "tree": "2c6f7f675b62748c6db3bf7ce316b5977f12305c",
      "parents": [
        "96b5a46e2a72dc1829370c87053e0cd558d58bc0"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 12 13:52:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 12 14:29:26 2008 -0800"
      },
      "message": "timeconst.pl: correct reversal of USEC_TO_HZ and HZ_TO_USEC\n\nThe USEC_TO_HZ and HZ_TO_USEC constant sets were mislabelled, with\nseriously incorrect results.  This among other things manifested\nitself as cpufreq not working when a tickless kernel was configured.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nTested-by: Carlos R. Mafra \u003ccrmafra@ift.unesp.br\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdc807871d58285737d50dc6163d0feb72cb0dc2",
      "tree": "1a6d35f3537ed1a7460811549efd045ae97a0e6e",
      "parents": [
        "7ef3d2fd17c377ef64a2aa19677d17576606c3b4"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Feb 08 04:21:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:39 2008 -0800"
      },
      "message": "avoid overflows in kernel/time.c\n\nWhen the conversion factor between jiffies and milli- or microseconds is\nnot a single multiply or divide, as for the case of HZ \u003d\u003d 300, we currently\ndo a multiply followed by a divide.  The intervening result, however, is\nsubject to overflows, especially since the fraction is not simplified (for\nHZ \u003d\u003d 300, we multiply by 300 and divide by 1000).\n\nThis is exposed to the user when passing a large timeout to poll(), for\nexample.\n\nThis patch replaces the multiply-divide with a reciprocal multiplication on\n32-bit platforms.  When the input is an unsigned long, there is no portable\nway to do this on 64-bit platforms there is no portable way to do this\nsince it requires a 128-bit intermediate result (which gcc does support on\n64-bit platforms but may generate libgcc calls, e.g.  on 64-bit s390), but\nsince the output is a 32-bit integer in the cases affected, just simplify\nthe multiply-divide (*3/10 instead of *300/1000).\n\nThe reciprocal multiply used can have off-by-one errors in the upper half\nof the valid output range.  This could be avoided at the expense of having\nto deal with a potential 65-bit intermediate result.  Since the intent is\nto avoid overflow problems and most of the other time conversions are only\nsemiexact, the off-by-one errors were considered an acceptable tradeoff.\n\nAt Ralf Baechle\u0027s suggestion, this version uses a Perl script to compute\nthe necessary constants.  We already have dependencies on Perl for kernel\ncompiles.  This does, however, require the Perl module Math::BigInt, which\nis included in the standard Perl distribution starting with version 5.8.0.\nIn order to support older versions of Perl, include a table of canned\nconstants in the script itself, and structure the script so that\nMath::BigInt isn\u0027t required if pulling values from said table.\n\nRunning the script requires that the HZ value is available from the\nMakefile.  Thus, this patch also adds the Kconfig variable CONFIG_HZ to the\narchitectures which didn\u0027t already have it (alpha, cris, frv, h8300, m32r,\nm68k, m68knommu, sparc, v850, and xtensa.) It does *not* touch the sh or\nsh64 architectures, since Paul Mundt has dealt with those separately in the\nsh tree.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e,\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e,\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e,\nCc: Richard Henderson \u003crth@twiddle.net\u003e,\nCc: Michael Starvik \u003cstarvik@axis.com\u003e,\nCc: David Howells \u003cdhowells@redhat.com\u003e,\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e,\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e,\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e,\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e,\nCc: William L. Irwin \u003csparclinux@vger.kernel.org\u003e,\nCc: Chris Zankel \u003cchris@zankel.net\u003e,\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e,\nCc: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
