)]}'
{
  "commit": "0e2e27990e2dcd415f7974e8460a2f05accdddfb",
  "tree": "351eb1905eb0e2e118dac9a9d27951225ba2c492",
  "parents": [
    "5a918353ec97bbce2af83a950eb38e2781bfe9e7"
  ],
  "author": {
    "name": "Jeff Skirvin",
    "email": "jeffrey.d.skirvin@intel.com",
    "time": "Thu Oct 27 15:04:50 2011 -0700"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "JBottomley@Parallels.com",
    "time": "Mon Oct 31 13:14:44 2011 +0400"
  },
  "message": "[SCSI] isci: Lookup device references through requests in completions.\n\nThe LLDD needs to obtain a reference to the device through the request\nitself and not through the domain_device, because the\ndomain_device.lldd_dev is set to NULL early in the lldd_dev_gone call.\nThis relies on the fact that the isci_remote_device object is keeping a\nseperate reference count of outstanding requests.  TODO: unify the\nrequest count tracking with the isci_remote_device kref.\n\nThe failure signature of this condition looks like the following\nlog, where the important bits are the call to lldd_dev_gone followed\nby a crash in isci_terminate_request_core:\n\n[  229.151541] isci 0000:0b:00.0: isci_remote_device_gone: domain_device \u003d ffff8801492d4800, isci_device \u003d ffff880143c657d0, isci_port \u003d ffff880143c63658\n[  229.166007] isci 0000:0b:00.0: isci_remote_device_stop: isci_device \u003d ffff880143c657d0\n[  229.175317] isci 0000:0b:00.0: isci_terminate_pending_requests: idev\u003dffff880143c657d0 request\u003dffff88014741f000; task\u003dffff8801470f46c0 old_state\u003d2\n[  229.189702] isci 0000:0b:00.0: isci_terminate_request_core: device \u003d ffff880143c657d0; request \u003d ffff88014741f000\n[  229.201339] isci 0000:0b:00.0: isci_terminate_request_core: before completion wait (ffff88014741f000/ffff880149715ad0)\n[  229.213414] isci 0000:0b:00.0: sci_controller_process_completions: completion queue entry:0x8000a0e9\n[  229.214401] BUG: unable to handle kernel NULL pointer dereference at 0000000000000228\n[  229.214401] IP:jdskirvi-testlbo [\u003cffffffffa00a58be\u003e] sci_request_completed_state_enter+0x50/0xafb [isci]\n[  229.214401] PGD 13d19e067 PUD 13d104067 PMD 0\n[  229.214401] Oops: 0000 [#1] SMP\n[  229.214401] CPU 0 x kernel: [  226\n[  229.214401] Modules linked in: ipv6 dm_multipath uinput nouveau snd_hda_codec_realtek snd_hda_intel ttm drm_kms_helper drm snd_hda_codec snd_hwdep snd_pcm snd_timer i2c_algo_bit isci snd libsas ioatdma mxm_wmi iTCO_wdt soundcore snd_page_alloc scsi_transport_sas iTCO_vendor_support wmi dca video i2c_i801 i2c_core [last unloaded: speedstep_lib]\n[  229.214401]\n[  229.214401] Pid: 5, comm: kworker/u:0 Not tainted 3.0.0-isci-11.7.29+ #30.353196] Buffer  Intel Corporation Stoakley/Pearlcity Workstation\n[  229.214401] RIP: 0010:[\u003cffffffffa00a58be\u003e] I/O error on dev [\u003cffffffffa00a58be\u003e] sci_request_completed_state_enter+0x50/0xafb [isci]\n[  229.214401] RSP: 0018:ffff88014fc03d20  EFLAGS: 00010046\n[  229.214401] RAX: 0000000000000000 RBX: ffff88014741f000 RCX: 0000000000000000\n[  229.214401] RDX: ffffffffa00b2c90 RSI: 0000000000000017 RDI: ffff88014741f0a0\n[  229.214401] RBP: ffff88014fc03d90 R08: 0000000000000018 R09: 0000000000000000\n[  229.214401] R10: 0000000000000000 R11: ffffffff81a17d98 R12: 000000000000001d\n[  229.214401] R13: ffff8801470f46c0 R14: 0000000000000000 R15: 0000000000008000\n[  229.214401] FS:  0000000000000000(0000) GS:ffff88014fc00000(0000) knlGS:0000000000000000\n[  229.214401] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n[  229.214401] CR2: 0000000000000228 CR3: 000000013ceaa000 CR4: 00000000000406f0\n[  229.214401] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[  229.214401] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[  229.214401] Process kworker/u:0 (pid: 5, threadinfo ffff880149714000, task ffff880149718000)\n[  229.214401] Call Trace:\n[  229.214401]  \u003cIRQ\u003e\n[  229.214401]  [\u003cffffffffa00aa6ce\u003e] sci_change_state+0x4a/0x4f [isci]\n[  229.214401]  [\u003cffffffffa00a4ca6\u003e] sci_io_request_tc_completion+0x79c/0x7a0 [isci]\n[  229.214401]  [\u003cffffffffa00acf35\u003e] sci_controller_process_completions+0x14f/0x396 [isci]\n[  229.214401]  [\u003cffffffffa00abbda\u003e] ? spin_lock_irq+0xe/0x10 [isci]\n[  229.214401]  [\u003cffffffffa00ad2cf\u003e] isci_host_completion_routine+0x71/0x2be [isci]\n[  229.214401]  [\u003cffffffff8107c6b3\u003e] ? mark_held_locks+0x52/0x70\n[  229.214401]  [\u003cffffffff810538e8\u003e] tasklet_action+0x90/0xf1\n[  229.214401]  [\u003cffffffff81054050\u003e] __do_softirq+0xe5/0x1bf\n[  229.214401]  [\u003cffffffff8106d9d1\u003e] ? hrtimer_interrupt+0x129/0x1bb\n[  229.214401]  [\u003cffffffff814ff69c\u003e] call_softirq+0x1c/0x30\n[  229.214401]  [\u003cffffffff8100bb67\u003e] do_softirq+0x4b/0xa3\n[  229.214401]  [\u003cffffffff81053d84\u003e] irq_exit+0x53/0xb4\n[  229.214401]  [\u003cffffffff814fffe7\u003e] smp_apic_timer_interrupt+0x83/0x91\n[  229.214401]  [\u003cffffffff814fee53\u003e] apic_timer_interrupt+0x13/0x20\n[  229.214401]  \u003cEOI\u003e\n[  229.214401]  [\u003cffffffff814f7ad4\u003e] ? retint_restore_args+0x13/0x13\n[  229.214401]  [\u003cffffffff8107af29\u003e] ? trace_hardirqs_off+0xd/0xf\n[  229.214401]  [\u003cffffffff8104ea71\u003e] ? vprintk+0x40b/0x452\n[  229.214401]  [\u003cffffffff814f4b5a\u003e] printk+0x41/0x47\n[  229.214401]  [\u003cffffffff81314484\u003e] __dev_printk+0x78/0x7a\n[  229.214401]  [\u003cffffffff8131471e\u003e] dev_printk+0x45/0x47\n[  229.214401]  [\u003cffffffffa00ae2a3\u003e] isci_terminate_request_core+0x15d/0x317 [isci]\n[  229.214401]  [\u003cffffffffa00af1ad\u003e] isci_terminate_pending_requests+0x1a4/0x204 [isci]\n[  229.214401]  [\u003cffffffffa00229f6\u003e] ? sas_phye_oob_error+0xc3/0xc3 [libsas]\n[  229.214401]  [\u003cffffffffa00a7d9e\u003e] isci_remote_device_nuke_requests+0xa6/0xff [isci]\n[  229.214401]  [\u003cffffffffa00a811a\u003e] isci_remote_device_stop+0x7c/0x166 [isci]\n[  229.214401]  [\u003cffffffffa00229f6\u003e] ? sas_phye_oob_error+0xc3/0xc3 [libsas]\n[  229.214401]  [\u003cffffffffa00a827a\u003e] isci_remote_device_gone+0x76/0x7e [isci]\n[  229.214401]  [\u003cffffffffa002363e\u003e] sas_notify_lldd_dev_gone+0x34/0x36 [libsas]\n[  229.214401]  [\u003cffffffffa0023945\u003e] sas_unregister_dev+0x57/0x9c [libsas]\n[  229.214401]  [\u003cffffffffa00239c0\u003e] sas_unregister_domain_devices+0x36/0x65 [libsas]\n[  229.214401]  [\u003cffffffffa0022cb8\u003e] sas_deform_port+0x72/0x1ac [libsas]\n[  229.214401]  [\u003cffffffffa00229f6\u003e] ? sas_phye_oob_error+0xc3/0xc3 [libsas]\n[  229.214401]  [\u003cffffffffa0022a34\u003e] sas_phye_loss_of_signal+0x3e/0x42 [libsas]\n\nSigned-off-by: Jeff Skirvin \u003cjeffrey.d.skirvin@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "565a9f0a9bc2d176ea669f68a9cedcef703fd911",
      "old_mode": 33188,
      "old_path": "drivers/scsi/isci/request.c",
      "new_id": "bfc7379727b1ee607406e1931e56982ed3458050",
      "new_mode": 33188,
      "new_path": "drivers/scsi/isci/request.c"
    }
  ]
}
