)]}'
{
  "commit": "7b2db29fbb4e766fcd02207eb2e2087170bd6ebc",
  "tree": "f4a24e225ad3d8b6274670af049c25706c230fae",
  "parents": [
    "cdd7928df0d2efaa3270d711963773a08a4cc8ab"
  ],
  "author": {
    "name": "Guenter Roeck",
    "email": "linux@roeck-us.net",
    "time": "Wed Mar 08 10:19:36 2017 -0800"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Fri Mar 17 13:36:58 2017 +0900"
  },
  "message": "usb: hub: Fix crash after failure to read BOS descriptor\n\nIf usb_get_bos_descriptor() returns an error, usb-\u003ebos will be NULL.\nNevertheless, it is dereferenced unconditionally in\nhub_set_initial_usb2_lpm_policy() if usb2_hw_lpm_capable is set.\nThis results in a crash.\n\nusb 5-1: unable to get BOS descriptor\n...\nUnable to handle kernel NULL pointer dereference at virtual address 00000008\npgd \u003d ffffffc00165f000\n[00000008] *pgd\u003d000000000174f003, *pud\u003d000000000174f003,\n\t\t*pmd\u003d0000000001750003, *pte\u003d00e8000001751713\nInternal error: Oops: 96000005 [#1] PREEMPT SMP\nModules linked in: uinput uvcvideo videobuf2_vmalloc cmac [ ... ]\nCPU: 5 PID: 3353 Comm: kworker/5:3 Tainted: G    B 4.4.52 #480\nHardware name: Google Kevin (DT)\nWorkqueue: events driver_set_config_work\ntask: ffffffc0c3690000 ti: ffffffc0ae9a8000 task.ti: ffffffc0ae9a8000\nPC is at hub_port_init+0xc3c/0xd10\nLR is at hub_port_init+0xc3c/0xd10\n...\nCall trace:\n[\u003cffffffc0007fbbfc\u003e] hub_port_init+0xc3c/0xd10\n[\u003cffffffc0007fbe2c\u003e] usb_reset_and_verify_device+0x15c/0x82c\n[\u003cffffffc0007fc5e0\u003e] usb_reset_device+0xe4/0x298\n[\u003cffffffbffc0e3fcc\u003e] rtl8152_probe+0x84/0x9b0 [r8152]\n[\u003cffffffc00080ca8c\u003e] usb_probe_interface+0x244/0x2f8\n[\u003cffffffc000774a24\u003e] driver_probe_device+0x180/0x3b4\n[\u003cffffffc000774e48\u003e] __device_attach_driver+0xb4/0xe0\n[\u003cffffffc000772168\u003e] bus_for_each_drv+0xb4/0xe4\n[\u003cffffffc0007747ec\u003e] __device_attach+0xd0/0x158\n[\u003cffffffc000775080\u003e] device_initial_probe+0x24/0x30\n[\u003cffffffc0007739d4\u003e] bus_probe_device+0x50/0xe4\n[\u003cffffffc000770bd0\u003e] device_add+0x414/0x738\n[\u003cffffffc000809fe8\u003e] usb_set_configuration+0x89c/0x914\n[\u003cffffffc00080a120\u003e] driver_set_config_work+0xc0/0xf0\n[\u003cffffffc000249bb8\u003e] process_one_work+0x390/0x6b8\n[\u003cffffffc00024abcc\u003e] worker_thread+0x480/0x610\n[\u003cffffffc000251a80\u003e] kthread+0x164/0x178\n[\u003cffffffc0002045d0\u003e] ret_from_fork+0x10/0x40\n\nSince we don\u0027t know anything about LPM capabilities without BOS descriptor,\ndon\u0027t attempt to enable LPM if it is not available.\n\nFixes: 890dae886721 (\"xhci: Enable LPM support only for hardwired ...\")\nCc: stable \u003cstable@vger.kernel.org\u003e\nCc: Mathias Nyman \u003cmathias.nyman@linux.intel.com\u003e\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nAcked-by: Mathias Nyman \u003cmathias.nyman@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f0dd08198d7426b9973bb676bca12b8cb76d7e7b",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/hub.c",
      "new_id": "5286bf67869a83e1d7e1d3f1ca0ebc87db5cf7a4",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/hub.c"
    }
  ]
}
