)]}'
{
  "commit": "4be2c95d1f7706ca0e74499f2bd118e1cee19669",
  "tree": "97e8e316b9072ea84cb0afa5a161b1d1b10640cd",
  "parents": [
    "4e06fd14d5fa78826397c891654a37e5a36ee827"
  ],
  "author": {
    "name": "Jeff Mahoney",
    "email": "jeffm@suse.com",
    "time": "Tue Dec 21 17:24:30 2010 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Dec 22 19:43:34 2010 -0800"
  },
  "message": "taskstats: pad taskstats netlink response for aligment issues on ia64\n\nThe taskstats structure is internally aligned on 8 byte boundaries but the\nlayout of the aggregrate reply, with two NLA headers and the pid (each 4\nbytes), actually force the entire structure to be unaligned.  This causes\nthe kernel to issue unaligned access warnings on some architectures like\nia64.  Unfortunately, some software out there doesn\u0027t properly unroll the\nNLA packet and assumes that the start of the taskstats structure will\nalways be 20 bytes from the start of the netlink payload.  Aligning the\nstart of the taskstats structure breaks this software, which we don\u0027t\nwant.  So, for now the alignment only happens on architectures that\nrequire it and those users will have to update to fixed versions of those\npackages.  Space is reserved in the packet only when needed.  This ifdef\nshould be removed in several years e.g.  2012 once we can be confident\nthat fixed versions are installed on most systems.  We add the padding\nbefore the aggregate since the aggregate is already a defined type.\n\nCommit 85893120 (\"delayacct: align to 8 byte boundary on 64-bit systems\")\npreviously addressed the alignment issues by padding out the pid field.\nThis was supposed to be a compatible change but the circumstances\ndescribed above mean that it wasn\u0027t.  This patch backs out that change,\nsince it was a hack, and introduces a new NULL attribute type to provide\nthe padding.  Padding the response with 4 bytes avoids allocating an\naligned taskstats structure and copying it back.  Since the structure\nweighs in at 328 bytes, it\u0027s too big to do it on the stack.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nReported-by: Brian Rogers \u003cbrian@xyzw.org\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Guillaume Chazarain \u003cguichaz@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a2976a6de033df2b4247f69b48f56f44abed3378",
      "old_mode": 33188,
      "old_path": "Documentation/accounting/getdelays.c",
      "new_id": "e9c77788a39d8f2c5c807b59295be6c3f1b3fea6",
      "new_mode": 33188,
      "new_path": "Documentation/accounting/getdelays.c"
    },
    {
      "type": "modify",
      "old_id": "341dddb55090853430c39bd76a081bc2125c8fe5",
      "old_mode": 33188,
      "old_path": "include/linux/taskstats.h",
      "new_id": "2466e550a41d40beefe6aa1b5ed4560ac076bc29",
      "new_mode": 33188,
      "new_path": "include/linux/taskstats.h"
    },
    {
      "type": "modify",
      "old_id": "c8231fb1570831d78215ab9967958a1663424ed0",
      "old_mode": 33188,
      "old_path": "kernel/taskstats.c",
      "new_id": "3308fd7f1b52f170e4da5dd7e26749aca652ef1b",
      "new_mode": 33188,
      "new_path": "kernel/taskstats.c"
    }
  ]
}
