)]}'
{
  "commit": "613655fa39ff6957754fa8ceb8559980920eb8ee",
  "tree": "ad19600cb81207b24188683d7fc4ae88013339d1",
  "parents": [
    "609146fdb319cebce93be550938ab852f7bade90"
  ],
  "author": {
    "name": "Arnd Bergmann",
    "email": "arnd@arndb.de",
    "time": "Wed Jun 02 14:28:52 2010 +0200"
  },
  "committer": {
    "name": "Arnd Bergmann",
    "email": "arnd@arndb.de",
    "time": "Tue Oct 05 15:01:04 2010 +0200"
  },
  "message": "drivers: autoconvert trivial BKL users to private mutex\n\nAll these files use the big kernel lock in a trivial\nway to serialize their private file operations,\ntypically resulting from an earlier semi-automatic\npushdown from VFS.\n\nNone of these drivers appears to want to lock against\nother code, and they all use the BKL as the top-level\nlock in their file operations, meaning that there\nis no lock-order inversion problem.\n\nConsequently, we can remove the BKL completely,\nreplacing it with a per-file mutex in every case.\nUsing a scripted approach means we can avoid\ntypos.\n\nThese drivers do not seem to be under active\nmaintainance from my brief investigation. Apologies\nto those maintainers that I have missed.\n\nfile\u003d$1\nname\u003d$2\nif grep -q lock_kernel ${file} ; then\n    if grep -q \u0027include.*linux.mutex.h\u0027 ${file} ; then\n            sed -i \u0027/include.*\u003clinux\\/smp_lock.h\u003e/d\u0027 ${file}\n    else\n            sed -i \u0027s/include.*\u003clinux\\/smp_lock.h\u003e.*$/include \u003clinux\\/mutex.h\u003e/g\u0027 ${file}\n    fi\n    sed -i ${file} \\\n        -e \"/^#include.*linux.mutex.h/,$ {\n                1,/^\\(static\\|int\\|long\\)/ {\n                     /^\\(static\\|int\\|long\\)/istatic DEFINE_MUTEX(${name}_mutex);\n\n} }\"  \\\n    -e \"s/\\(un\\)*lock_kernel\\\u003e[ ]*()/mutex_\\1lock(\\\u0026${name}_mutex)/g\" \\\n    -e \u0027/[      ]*cycle_kernel_lock();/d\u0027\nelse\n    sed -i -e \u0027/include.*\\\u003csmp_lock.h\\\u003e/d\u0027 ${file}  \\\n                -e \u0027/cycle_kernel_lock()/d\u0027\nfi\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c397b3ddba9b8676293bf773edfa90b29cf3101d",
      "old_mode": 33188,
      "old_path": "drivers/block/paride/pg.c",
      "new_id": "bed29cb9e6d97f71a56921b25f09127592eb3634",
      "new_mode": 33188,
      "new_path": "drivers/block/paride/pg.c"
    },
    {
      "type": "modify",
      "old_id": "bc5825fdeaabcfa297e9d00ffe1be1e8ade921fe",
      "old_mode": 33188,
      "old_path": "drivers/block/paride/pt.c",
      "new_id": "e4dda282e0a62a64ef6e15508e5da91417f6840d",
      "new_mode": 33188,
      "new_path": "drivers/block/paride/pt.c"
    },
    {
      "type": "modify",
      "old_id": "033e1505fca9fe3ea2fee9b2b064578ad45637f4",
      "old_mode": 33188,
      "old_path": "drivers/char/apm-emulation.c",
      "new_id": "6a420baea2680ee9ef2c611f3ad1c56c1660a7a5",
      "new_mode": 33188,
      "new_path": "drivers/char/apm-emulation.c"
    },
    {
      "type": "modify",
      "old_id": "f4ae0e0fb631b522f1b02a0a4ea68e2f98df0897",
      "old_mode": 33188,
      "old_path": "drivers/char/applicom.c",
      "new_id": "e7ba774beda6b8598a47dd77faf52e5283437037",
      "new_mode": 33188,
      "new_path": "drivers/char/applicom.c"
    },
    {
      "type": "modify",
      "old_id": "170693c93c73d275fceb2c310c41df8a323c9297",
      "old_mode": 33188,
      "old_path": "drivers/char/ds1302.c",
      "new_id": "e3d72aa3cbd2fa1f322c62f4fc0da7e233b33b60",
      "new_mode": 33188,
      "new_path": "drivers/char/ds1302.c"
    },
    {
      "type": "modify",
      "old_id": "dbee8688f75ceafddfd80a5be5b7dcf8affd7140",
      "old_mode": 33188,
      "old_path": "drivers/char/ds1620.c",
      "new_id": "9aa1fd059aea47115113a7cc599350211f52db1c",
      "new_mode": 33188,
      "new_path": "drivers/char/ds1620.c"
    },
    {
      "type": "modify",
      "old_id": "8a1b28a10ef0af184e4ff4e03e9eaaf4783f97ca",
      "old_mode": 33188,
      "old_path": "drivers/char/dsp56k.c",
      "new_id": "b3c756227e39d5c90ffe3e76da86cf579f43a4fb",
      "new_mode": 33188,
      "new_path": "drivers/char/dsp56k.c"
    },
    {
      "type": "modify",
      "old_id": "e3859d4eaead6e67552cdc3d2f24412a8a31067b",
      "old_mode": 33188,
      "old_path": "drivers/char/dtlk.c",
      "new_id": "8dd040a945d444ded631729d367e2d59f8e4014d",
      "new_mode": 33188,
      "new_path": "drivers/char/dtlk.c"
    },
    {
      "type": "modify",
      "old_id": "82b5a88a82d77d5351d1b1d413c4b123a382544f",
      "old_mode": 33188,
      "old_path": "drivers/char/generic_nvram.c",
      "new_id": "0e941b57482e7d1021d409320e9184148888412b",
      "new_mode": 33188,
      "new_path": "drivers/char/generic_nvram.c"
    },
    {
      "type": "modify",
      "old_id": "b6c2cc167c11fd39ce485f72281c79fa4e98bdd7",
      "old_mode": 33188,
      "old_path": "drivers/char/genrtc.c",
      "new_id": "2aa69f97360d01ff894e76ce017b30ec9dcba44e",
      "new_mode": 33188,
      "new_path": "drivers/char/genrtc.c"
    },
    {
      "type": "modify",
      "old_id": "4cd8b227c11f378336d46601318eae5471f6ec66",
      "old_mode": 33188,
      "old_path": "drivers/char/i8k.c",
      "new_id": "3bc0eef88717136342564976a8e18aa534732284",
      "new_mode": 33188,
      "new_path": "drivers/char/i8k.c"
    },
    {
      "type": "modify",
      "old_id": "d4b71e8d0d23a13648be2e55f60f606f55b99edd",
      "old_mode": 33188,
      "old_path": "drivers/char/ip2/ip2main.c",
      "new_id": "dfbdf49d1e8047b3d27ab2e80566f0fa5e64ebb7",
      "new_mode": 33188,
      "new_path": "drivers/char/ip2/ip2main.c"
    },
    {
      "type": "modify",
      "old_id": "938a3a2738866c71e42b7d8112b29966cdf3417c",
      "old_mode": 33188,
      "old_path": "drivers/char/lp.c",
      "new_id": "598d278db0588137138cdebfa533ce508114c2ba",
      "new_mode": 33188,
      "new_path": "drivers/char/lp.c"
    },
    {
      "type": "modify",
      "old_id": "83bef4efe37636869f418756462516d00a4f3ccd",
      "old_mode": 33188,
      "old_path": "drivers/char/mbcs.c",
      "new_id": "1aeaaba680d22e1e943995efeff6b0ed671c5fe8",
      "new_mode": 33188,
      "new_path": "drivers/char/mbcs.c"
    },
    {
      "type": "modify",
      "old_id": "ea7c99fa978f9e8d2877ba8a783daeef5214cc5c",
      "old_mode": 33188,
      "old_path": "drivers/char/mmtimer.c",
      "new_id": "fe4697844ec10bebe9132fb1c121aa3b2653db5c",
      "new_mode": 33188,
      "new_path": "drivers/char/mmtimer.c"
    },
    {
      "type": "modify",
      "old_id": "a4ec50c950722410e9cd6dc99b72b76edf11fb2b",
      "old_mode": 33188,
      "old_path": "drivers/char/mwave/mwavedd.c",
      "new_id": "e5df26b56d593cabbf5f7fac6a03b0be4ecf8add",
      "new_mode": 33188,
      "new_path": "drivers/char/mwave/mwavedd.c"
    },
    {
      "type": "modify",
      "old_id": "66d2917b003f6361080e063323d88dca49fd623f",
      "old_mode": 33188,
      "old_path": "drivers/char/nvram.c",
      "new_id": "166f1e7aaa7ee844c4a36b8950cb9f343e0f5c82",
      "new_mode": 33188,
      "new_path": "drivers/char/nvram.c"
    },
    {
      "type": "modify",
      "old_id": "043a1c7b86beefb3438976f3512230b9571278c3",
      "old_mode": 33188,
      "old_path": "drivers/char/nwflash.c",
      "new_id": "a12f52400dbc5ed6ef65885ff7dc80052ed49ad6",
      "new_mode": 33188,
      "new_path": "drivers/char/nwflash.c"
    },
    {
      "type": "modify",
      "old_id": "ec73d9f6d9ed92c9fa527718ff44871bd7d64669",
      "old_mode": 33188,
      "old_path": "drivers/char/pcmcia/cm4000_cs.c",
      "new_id": "7d091b68d247aa27429f0431963e2a0b744a2003",
      "new_mode": 33188,
      "new_path": "drivers/char/pcmcia/cm4000_cs.c"
    },
    {
      "type": "modify",
      "old_id": "815cde1d0570e86d4ba0e8970ef60248997a3302",
      "old_mode": 33188,
      "old_path": "drivers/char/pcmcia/cm4040_cs.c",
      "new_id": "04c0a895740ebb9ed09ff03400360cf3bcb7e194",
      "new_mode": 33188,
      "new_path": "drivers/char/pcmcia/cm4040_cs.c"
    },
    {
      "type": "modify",
      "old_id": "02abfddce45a192ceccae3d71f3008ba7d329767",
      "old_mode": 33188,
      "old_path": "drivers/char/ppdev.c",
      "new_id": "723152d978a9482ac3c1e48c2724894a9d6cceb4",
      "new_mode": 33188,
      "new_path": "drivers/char/ppdev.c"
    },
    {
      "type": "modify",
      "old_id": "d58c2eb07f07aaad25a568095ccaab7d3e53f686",
      "old_mode": 33188,
      "old_path": "drivers/char/rio/rio_linux.c",
      "new_id": "e06a5977fdb2933db756c8af5ff8c652d598748d",
      "new_mode": 33188,
      "new_path": "drivers/char/rio/rio_linux.c"
    },
    {
      "type": "modify",
      "old_id": "32b74de18f5face7e590ac25fc955aef373c6247",
      "old_mode": 33188,
      "old_path": "drivers/char/snsc.c",
      "new_id": "208e25731dfe386daa7b858f436d81aeb26ee712",
      "new_mode": 33188,
      "new_path": "drivers/char/snsc.c"
    },
    {
      "type": "modify",
      "old_id": "f8bc79f6de34875cba7ac1e74e9110ff3c236d53",
      "old_mode": 33188,
      "old_path": "drivers/char/toshiba.c",
      "new_id": "f8f09ab0b170403c180913926c5ec2977b264484",
      "new_mode": 33188,
      "new_path": "drivers/char/toshiba.c"
    },
    {
      "type": "modify",
      "old_id": "42f7fa442ff80653c3cbabf9c80bd1b2e05de28d",
      "old_mode": 33188,
      "old_path": "drivers/char/viotape.c",
      "new_id": "6f954a808b65bb3375624c1f0d1ed1dcc3d0635f",
      "new_mode": 33188,
      "new_path": "drivers/char/viotape.c"
    },
    {
      "type": "modify",
      "old_id": "b663d573aad99ed5257f9ab324d566309e70ac37",
      "old_mode": 33188,
      "old_path": "drivers/char/xilinx_hwicap/xilinx_hwicap.c",
      "new_id": "d985204d76fedce821d2b8f54e35d6cecf424649",
      "new_mode": 33188,
      "new_path": "drivers/char/xilinx_hwicap/xilinx_hwicap.c"
    },
    {
      "type": "modify",
      "old_id": "b7ca2a9676cf8b62aab21fa7a04d205457828c6e",
      "old_mode": 33188,
      "old_path": "drivers/hwmon/fschmd.c",
      "new_id": "d4d4ca65d3716f61c21008ff1d390e54aa256e86",
      "new_mode": 33188,
      "new_path": "drivers/hwmon/fschmd.c"
    },
    {
      "type": "modify",
      "old_id": "697202e278917db50ca07c84aa92feb503e1e109",
      "old_mode": 33188,
      "old_path": "drivers/hwmon/w83793.c",
      "new_id": "8e540ada47d27aaf8f78c6ee5b0c513407d80d1a",
      "new_mode": 33188,
      "new_path": "drivers/hwmon/w83793.c"
    },
    {
      "type": "modify",
      "old_id": "c19066479057ff3567d7168c38922e0fd0b84da3",
      "old_mode": 33188,
      "old_path": "drivers/input/misc/hp_sdc_rtc.c",
      "new_id": "07337061b2eb941d7d005c3455a60eeb49c0c7db",
      "new_mode": 33188,
      "new_path": "drivers/input/misc/hp_sdc_rtc.c"
    },
    {
      "type": "modify",
      "old_id": "75ee0d3f6f457707d79cbf5f5d021469710eb06d",
      "old_mode": 33188,
      "old_path": "drivers/misc/phantom.c",
      "new_id": "3712e5077e257ff565b2b973f44eb311ad5251eb",
      "new_mode": 33188,
      "new_path": "drivers/misc/phantom.c"
    },
    {
      "type": "modify",
      "old_id": "56215322930ad143c5d0d3adba42823d70f77c12",
      "old_mode": 33188,
      "old_path": "drivers/pci/hotplug/cpqphp_sysfs.c",
      "new_id": "4cb30447a4860cf684155f18c79faad88f3989c6",
      "new_mode": 33188,
      "new_path": "drivers/pci/hotplug/cpqphp_sysfs.c"
    },
    {
      "type": "modify",
      "old_id": "d60557cae8ef4fdadadb10b343125f174cb7508d",
      "old_mode": 33188,
      "old_path": "drivers/rtc/rtc-m41t80.c",
      "new_id": "512dca16a42c4446045b8acfbde6a1daa5dc4ea2",
      "new_mode": 33188,
      "new_path": "drivers/rtc/rtc-m41t80.c"
    },
    {
      "type": "modify",
      "old_id": "4942050dc5b6f0ea795d62e992368669ab1f6f6a",
      "old_mode": 33188,
      "old_path": "drivers/sbus/char/jsflash.c",
      "new_id": "13f48e28a1e1f3b8e4c80c73d9cfecb9eb50c077",
      "new_mode": 33188,
      "new_path": "drivers/sbus/char/jsflash.c"
    },
    {
      "type": "modify",
      "old_id": "b53deee25d74d525faa4692e3539af0cd3ceb369",
      "old_mode": 33188,
      "old_path": "drivers/telephony/ixj.c",
      "new_id": "b1e469983b1dde5d6b2a63f5f80af2015b8113ff",
      "new_mode": 33188,
      "new_path": "drivers/telephony/ixj.c"
    },
    {
      "type": "modify",
      "old_id": "566343b3c131fc3f6d3ce17b6bc7bd1e2c724ac4",
      "old_mode": 33188,
      "old_path": "drivers/watchdog/cpwd.c",
      "new_id": "b7d96e6236a17f929627f8fd714422f3a7c048bd",
      "new_mode": 33188,
      "new_path": "drivers/watchdog/cpwd.c"
    }
  ]
}
