)]}'
{
  "commit": "799c92f2aecb348e4a4c6dab80c7206e48caf201",
  "tree": "ec6b68e06d20857141fa4db80b1b76d74b453d56",
  "parents": [
    "5fee99c200f8138f3eb1cd6b3d69b199b3d86686"
  ],
  "author": {
    "name": "Takashi Iwai",
    "email": "tiwai@suse.de",
    "time": "Wed Nov 07 12:42:44 2012 +0100"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Sat Nov 17 13:16:12 2012 -0800"
  },
  "message": "ALSA: usb-audio: Fix races at disconnection\n\ncommit 978520b75f0a1ce82b17e1e8186417250de6d545 upstream.\n\nClose some races at disconnection of a USB audio device by adding the\nchip-\u003eshutdown_mutex and chip-\u003eshutdown check at appropriate places.\n\nThe spots to put bandaids are:\n- PCM prepare, hw_params and hw_free\n- where the usb device is accessed for communication or get speed, in\n mixer.c and others; the device speed is now cached in subs-\u003espeed\n instead of accessing to chip-\u003edev\n\nThe accesses in PCM open and close don\u0027t need the mutex protection\nbecause these are already handled in the core PCM disconnection code.\n\nThe autosuspend/autoresume codes are still uncovered by this patch\nbecause of possible mutex deadlocks.  They\u0027ll be covered by the\nupcoming change to rwsem.\n\nAlso the mixer codes are untouched, too.  These will be fixed in\nanother patch, too.\n\nReported-by: Matthieu CASTET \u003cmatthieu.castet@parrot.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "da5fa1ac4edaf3608c7811dea5194b98a8bab37c",
      "old_mode": 33188,
      "old_path": "sound/usb/card.h",
      "new_id": "7932b2ac0dec8ad314b770d46e5e714b1e5ea5f5",
      "new_mode": 33188,
      "new_path": "sound/usb/card.h"
    },
    {
      "type": "modify",
      "old_id": "08dcce53720bad66499f48709c553b04e6ea6821",
      "old_mode": 33188,
      "old_path": "sound/usb/endpoint.c",
      "new_id": "24c511491b4529255bcf0fe8b7817d6189b42fe4",
      "new_mode": 33188,
      "new_path": "sound/usb/endpoint.c"
    },
    {
      "type": "modify",
      "old_id": "8a818a4573afdec164684b3e101881f16853ada2",
      "old_mode": 33188,
      "old_path": "sound/usb/mixer.c",
      "new_id": "b3b63f7699162fd9440378402268c5d5c51dfe60",
      "new_mode": 33188,
      "new_path": "sound/usb/mixer.c"
    },
    {
      "type": "modify",
      "old_id": "67a4d6dbb32be748123442c829f27e4cb82a6f5c",
      "old_mode": 33188,
      "old_path": "sound/usb/pcm.c",
      "new_id": "4f49ca75d6f19ea536d54a0eb61d5b0d45463abf",
      "new_mode": 33188,
      "new_path": "sound/usb/pcm.c"
    },
    {
      "type": "modify",
      "old_id": "961c9a2506865b9a84cb337606e80b21705f2b04",
      "old_mode": 33188,
      "old_path": "sound/usb/proc.c",
      "new_id": "aef03db3870d5c2deee82d407ecad748cfc06384",
      "new_mode": 33188,
      "new_path": "sound/usb/proc.c"
    }
  ]
}
