)]}'
{
  "commit": "67bad2fdb754dbef14596c0b5d28b3a12c8dfe84",
  "tree": "05c3cd5f809618319346f9642549460f95149f02",
  "parents": [
    "91219a3b20325689eb80f7598cce2dc745db171d"
  ],
  "author": {
    "name": "Ard Biesheuvel",
    "email": "ard.biesheuvel@linaro.org",
    "time": "Sat Feb 08 13:34:09 2014 +0100"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Tue Feb 18 12:38:37 2014 -0800"
  },
  "message": "cpu: add generic support for CPU feature based module autoloading\n\nThis patch adds support for advertising optional CPU features over udev\nusing the modalias, and for declaring compatibility with/dependency upon\nsuch a feature in a module.\n\nThe mapping between feature numbers and actual features should be provided\nby the architecture in a file called \u003casm/cpufeature.h\u003e which exports the\nfollowing functions/macros:\n- cpu_feature(FEAT), a preprocessor macro that maps token FEAT to a\n  numeric index;\n- bool cpu_have_feature(n), returning whether this CPU has support for\n  feature #n;\n- MAX_CPU_FEATURES, an upper bound for \u0027n\u0027 in the previous function.\n\nThe feature can then be enabled by setting CONFIG_GENERIC_CPU_AUTOPROBE\nfor the architecture.\n\nFor instance, a module that registers its module init function using\n\n  module_cpu_feature_match(FEAT_X, module_init_function)\n\nwill be probed automatically when the CPU\u0027s support for the \u0027FEAT_X\u0027\nfeature is advertised over udev, and will only allow the module to be\nloaded by hand if the \u0027FEAT_X\u0027 feature is supported.\n\nSigned-off-by: Ard Biesheuvel \u003card.biesheuvel@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec36e7772e576667f3e7784daca1735ac4eefd87",
      "old_mode": 33188,
      "old_path": "drivers/base/Kconfig",
      "new_id": "3f0d3732df7f53f91706a04f222bf811d1ec2df5",
      "new_mode": 33188,
      "new_path": "drivers/base/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "f48370dfc908e19a73a86cf817ad05128c0ed034",
      "old_mode": 33188,
      "old_path": "drivers/base/cpu.c",
      "new_id": "8a38bf8c792f4a4a4b9d7f52f284bbf375e3d9ce",
      "new_mode": 33188,
      "new_path": "drivers/base/cpu.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c4d4eb8ac9fe2bbd24c42646d95716a95e705859",
      "new_mode": 33188,
      "new_path": "include/linux/cpufeature.h"
    },
    {
      "type": "modify",
      "old_id": "45e921401b067b68c9912f82af1c19a1a8c6d048",
      "old_mode": 33188,
      "old_path": "include/linux/mod_devicetable.h",
      "new_id": "f2ac87c613a5d8a47a9820920ca88c6abb64cc57",
      "new_mode": 33188,
      "new_path": "include/linux/mod_devicetable.h"
    },
    {
      "type": "modify",
      "old_id": "bb5d115ca671c5b19073526fa815baa5f728fb2c",
      "old_mode": 33188,
      "old_path": "scripts/mod/devicetable-offsets.c",
      "new_id": "f282516acc7be7d26be68037d3381a66126b582d",
      "new_mode": 33188,
      "new_path": "scripts/mod/devicetable-offsets.c"
    },
    {
      "type": "modify",
      "old_id": "25e5cb0aaef6fd68fd77d15037a66f046e6c72e6",
      "old_mode": 33188,
      "old_path": "scripts/mod/file2alias.c",
      "new_id": "506146e5f4a895d45e7b58791436b1bf6d084e6a",
      "new_mode": 33188,
      "new_path": "scripts/mod/file2alias.c"
    }
  ]
}
