)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
