)]}'
{
  "commit": "f4fa968950aef7efb98a0899bb0132405e2edaf1",
  "tree": "2053bcf32985ef7539b02f10246bf67c4543903a",
  "parents": [
    "c989954938761a2939a21fcbc768af182de6be58"
  ],
  "author": {
    "name": "Takashi Iwai",
    "email": "tiwai@suse.de",
    "time": "Tue Apr 16 18:18:47 2019 +0200"
  },
  "committer": {
    "name": "Takashi Iwai",
    "email": "tiwai@suse.de",
    "time": "Wed Apr 17 07:16:15 2019 +0200"
  },
  "message": "ALSA: core: Don\u0027t refer to snd_cards array directly\n\nThe snd_cards[] array holds the card pointers that have been currently\nregistered, and it\u0027s exported for the external modules that may need\nto refer a card object.  But accessing to this array can be racy\nagainst the driver probe or removal, as the card registration or free\nmay happen concurrently.\n\nThis patch gets rid of the direct access to snd_cards[] array and\nprovides a helper function to give the card object from the index\nnumber with a refcount management.  Then the caller can access to the\ngiven card object safely, and releases it via snd_card_unref().\n\nWhile we\u0027re at it, add a proper comment to snd_card_unref() and make\nit an inlined function for type-safety, too.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e923c23e05dd779bd7b40b35f4b51bc0b569b6d1",
      "old_mode": 33188,
      "old_path": "include/sound/core.h",
      "new_id": "c90ebbc8d9c4021e2d8770c8b5a473de79433f2e",
      "new_mode": 33188,
      "new_path": "include/sound/core.h"
    },
    {
      "type": "modify",
      "old_id": "0c4dc40376a709ff2e8aabd2f9ac4d25660389be",
      "old_mode": 33188,
      "old_path": "sound/core/init.c",
      "new_id": "356d41e4f3a42a02a3021581a479d9c4ddbc2909",
      "new_mode": 33188,
      "new_path": "sound/core/init.c"
    },
    {
      "type": "modify",
      "old_id": "64d904bee8bb345edf6bc9053016f38027c51ccf",
      "old_mode": 33188,
      "old_path": "sound/core/oss/mixer_oss.c",
      "new_id": "c8618678649c38c1ee44ca26664abfeb827afd89",
      "new_mode": 33188,
      "new_path": "sound/core/oss/mixer_oss.c"
    },
    {
      "type": "modify",
      "old_id": "b30f027eb0fee7124756599c2bfd7c3a4bf074eb",
      "old_mode": 33188,
      "old_path": "sound/core/sound.c",
      "new_id": "a9ad4379523b0f4e1c6717377cad296a44d67e96",
      "new_mode": 33188,
      "new_path": "sound/core/sound.c"
    },
    {
      "type": "modify",
      "old_id": "43f222825038e8e69ca8d1edd87a50e3bdc93be3",
      "old_mode": 33188,
      "old_path": "sound/last.c",
      "new_id": "4f5a624ab438a635385ad22c9af98ddef15cbe9a",
      "new_mode": 33188,
      "new_path": "sound/last.c"
    }
  ]
}
