)]}'
{
  "commit": "8cc2bfd87fdd2f4a31f39c86f59df4b4be2c0adc",
  "tree": "41961bc545408064b5bba62cd7ed950097cae589",
  "parents": [
    "a3f5835a8e0bd25ed15becd65e01aa3d5ac8d771"
  ],
  "author": {
    "name": "Kenji Kaneshige",
    "email": "kaneshige.kenji@jp.fujitsu.com",
    "time": "Wed Jun 23 16:04:10 2010 +0900"
  },
  "committer": {
    "name": "Jesse Barnes",
    "email": "jbarnes@virtuousgeek.org",
    "time": "Fri Jul 30 09:29:33 2010 -0700"
  },
  "message": "PCI: kernel oops on access to pci proc file while hot-removal\n\nI encountered the problem that /proc/bus/pci/XX/YY is not removed even\nafter the corresponding device is hot-removed, if the file is still\nbeing opened. In addtion, accessing this file in this situation causes\nkernel panic (see below).\n\nBecasue the pci_proc_detach_device() doesn\u0027t call remove_proc_entry()\nif struct proc_dir_entry-\u003ecount \u003e 1, access to /proc/bus/pci/XX/YY\nwould refer to struct pci_dev that was already freed.\n\nThough I don\u0027t know why the check for proc_dir_entry-\u003ecount was added,\nI don\u0027t think it is needed. Removing this check fixes the problem.\n\nSteps to reproduce\n------------------\n# cd /sys/bus/pci/slots/2/\n# PROC_BUS_PCI_FILE\u003d/proc/bus/pci/`awk -F: \u0027{print $2\"/\"$3}\u0027 \u003c address`.0\n# sleep 10000 \u003c $PROC_BUS_PCI_FILE \u0026\n# echo 0 \u003e power\n# while true; do cat $PROC_BUS_PCI_FILE \u003e /dev/null; done\n\nOops Messages\n-------------\nBUG: unable to handle kernel NULL pointer dereference at 00000042\nIP: [\u003cc05c82d5\u003e] pci_user_read_config_dword+0x65/0xa0\n*pdpt \u003d 000000002185e001 *pde \u003d 0000000476a79067\nOops: 0000 [#1] SMP\nlast sysfs file: /sys/devices/pci0000:00/0000:00:1c.0/0000:10:00.0/local_cpus\nModules linked in: autofs4 sunrpc cpufreq_ondemand acpi_cpufreq ipv6 dm_mirror dm_region_hash dm_log dm_mod e1000e i2c_i801 i2c_core iTCO_wdt igb sg pcspkr dca iTCO_vendor_support ext4 mbcache jbd2 sd_mod crc_t10dif lpfc mptsas scsi_transport_fc mptscsih mptbase scsi_tgt scsi_transport_sas [last unloaded: microcode]\n\nPid: 2997, comm: cat Not tainted 2.6.34-kk #32 SB/PRIMEQUEST 1800E\nEIP: 0060:[\u003cc05c82d5\u003e] EFLAGS: 00010046 CPU: 19\nEIP is at pci_user_read_config_dword+0x65/0xa0\nEAX: 00000002 EBX: e44f1800 ECX: e144df14 EDX: 155668c7\nESI: 00000087 EDI: 00000000 EBP: e144df40 ESP: e144df0c\n DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\nProcess cat (pid: 2997, ti\u003de144c000 task\u003de26f2570 task.ti\u003de144c000)\nStack:\n c09ceac0 c0570f72 ffffffff 08c57000 00000000 00001000 e44f1800 c05d2404\n\u003c0\u003e e144df40 00001000 00000000 00001000 08c57000 3093ae50 e420cb40 e358d5c0\n\u003c0\u003e c05d2300 fffffffb c054984f e144df9c 00008000 08c57000 e358d5c0 00008000\nCall Trace:\n [\u003cc0570f72\u003e] ? security_capable+0x22/0x30\n [\u003cc05d2404\u003e] ? proc_bus_pci_read+0x104/0x220\n [\u003cc05d2300\u003e] ? proc_bus_pci_read+0x0/0x220\n [\u003cc054984f\u003e] ? proc_reg_read+0x5f/0x90\n [\u003cc05497f0\u003e] ? proc_reg_read+0x0/0x90\n [\u003cc050694d\u003e] ? vfs_read+0x9d/0x190\n [\u003cc04958f4\u003e] ? audit_syscall_entry+0x204/0x230\n [\u003cc0506a81\u003e] ? sys_read+0x41/0x70\n [\u003cc0402f1f\u003e] ? sysenter_do_call+0x12/0x28\nCode: b4 26 00 00 00 00 b8 20 88 b1 c0 c7 44 24 08 ff ff ff ff e8 3e 52 22 00 f6 83 24 04 00 00 20 75 34 8b 43 08 8d 4c 24 08 8b 53 1c \u003c8b\u003e 70 40 89 4c 24 04 89 f9 c7 04 24 04 00 00 00 ff 16 89 c6 f0\nEIP: [\u003cc05c82d5\u003e] pci_user_read_config_dword+0x65/0xa0 SS:ESP 0068:e144df0c\nCR2: 0000000000000042\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kenji Kaneshige \u003ckaneshige.kenji@jp.fujitsu.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "449e890267a2bae74de8a2b6b0bedf30023b7de0",
      "old_mode": 33188,
      "old_path": "drivers/pci/proc.c",
      "new_id": "68316b59d7d3008450595cf53bc8c44ab36e19a1",
      "new_mode": 33188,
      "new_path": "drivers/pci/proc.c"
    }
  ]
}
