)]}'
{
  "commit": "f3c737de8f57b5ce756010c2175f7d574194b30d",
  "tree": "fa741dba43d33b83f66c7f912e983feae594d40f",
  "parents": [
    "42dad7647aec49b3ad20dd0cb832b232a6ae514f"
  ],
  "author": {
    "name": "Sage Weil",
    "email": "sage@newdream.ne",
    "time": "Thu Apr 23 08:37:58 2009 +0200"
  },
  "committer": {
    "name": "Jens Axboe",
    "email": "jens.axboe@oracle.com",
    "time": "Fri Apr 24 08:54:21 2009 +0200"
  },
  "message": "umem: fix request_queue lock warning\n\nThe umem driver issues two warnings on boot, due to blk_plug_device() and\nblk_remove_plug() being called without q-\u003equeue_lock held.  Starting with\ne48ec690 (block: extend queue_flag bitops), the queue_flag_* functions\nwarn if q-\u003equeue_lock doesn\u0027t appear to be locked.  In fact, q-\u003equeue_lock\nis NULL (though that apparently isn\u0027t otherwise a problem as the driver is\nusing card-\u003elock for everything).\n\nAlthough blk_init_queue() with take a request_fn_proc and spinlock_t*,\nthere isn\u0027t a corresponding init helper that takes a make_request_fn.\nSetting queue_lock to \u0026card-\u003elock explicitly seems to work fine for me.\nThe warning goes away and the device appears to behave.\n\n[    1.531881] v2.3 : Micro Memory(tm) PCI memory board block driver\n[    1.538136] umem 0000:02:01.0: PCI INT A -\u003e GSI 20 (level, low) -\u003e IRQ 20\n[    1.545018] umem 0000:02:01.0: Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))\n[    1.554176] umem 0000:02:01.0: CSR 0xfc9ffc00 -\u003e 0xffffc200013d0c00 (0x100)\n[    1.561279] umem 0000:02:01.0: Size 1048576 KB, Battery 1 Disabled (FAILURE), Battery 2 Disabled (FAILURE)\n[    1.571114] umem 0000:02:01.0: Window size 16777216 bytes, IRQ 20\n[    1.577304] umem 0000:02:01.0: memory NOT initialized. Consider over-writing whole device.\n[    1.585989]  umema:\u003c4\u003e------------[ cut here ]------------\n[    1.591775] WARNING: at include/linux/blkdev.h:492 blk_plug_device+0x6d/0x106()\n[    1.592025] Hardware name: H8SSL\n[    1.592025] Modules linked in:\n[    1.592025] Pid: 1, comm: swapper Not tainted 2.6.29 #8\n[    1.592025] Call Trace:\n[    1.592025]  [\u003cffffffff8023c994\u003e] warn_slowpath+0xd3/0xf2\n[    1.592025]  [\u003cffffffff8025a5b5\u003e] ? save_trace+0x3f/0x9b\n[    1.592025]  [\u003cffffffff8025a68b\u003e] ? add_lock_to_list+0x7a/0xba\n[    1.592025]  [\u003cffffffff8025e609\u003e] ? validate_chain+0xb3b/0xce8\n[    1.592025]  [\u003cffffffff80441556\u003e] ? mm_make_request+0x27/0x59\n[    1.592025]  [\u003cffffffff80441556\u003e] ? mm_make_request+0x27/0x59\n[    1.592025]  [\u003cffffffff8025ef04\u003e] ? __lock_acquire+0x74e/0x7b9\n[    1.592025]  [\u003cffffffff8025a70e\u003e] ? get_lock_stats+0x34/0x5e\n[    1.592025]  [\u003cffffffff8025a746\u003e] ? put_lock_stats+0xe/0x27\n[    1.592025]  [\u003cffffffff80441556\u003e] ? mm_make_request+0x27/0x59\n[    1.592025]  [\u003cffffffff803ad165\u003e] blk_plug_device+0x6d/0x106\n[    1.592025]  [\u003cffffffff80441575\u003e] mm_make_request+0x46/0x59\n[    1.592025]  [\u003cffffffff803ac2d9\u003e] generic_make_request+0x335/0x3cf\n[    1.592025]  [\u003cffffffff8027fcc7\u003e] ? mempool_alloc_slab+0x11/0x13\n[    1.592025]  [\u003cffffffff8027fdce\u003e] ? mempool_alloc+0x45/0x101\n[    1.592025]  [\u003cffffffff8025a746\u003e] ? put_lock_stats+0xe/0x27\n[    1.592025]  [\u003cffffffff803adda5\u003e] submit_bio+0x10a/0x119\n[    1.592025]  [\u003cffffffff802c8d00\u003e] submit_bh+0xe5/0x109\n[    1.592025]  [\u003cffffffff802cbf43\u003e] block_read_full_page+0x2aa/0x2cb\n[    1.592025]  [\u003cffffffff802cf4c4\u003e] ? blkdev_get_block+0x0/0x4c\n[    1.592025]  [\u003cffffffff805c90a8\u003e] ? _spin_unlock_irq+0x36/0x51\n[    1.592025]  [\u003cffffffff80286836\u003e] ? __lru_cache_add+0x92/0xb2\n[    1.592025]  [\u003cffffffff802cf008\u003e] blkdev_readpage+0x13/0x15\n[    1.592025]  [\u003cffffffff8027de06\u003e] read_cache_page_async+0x90/0x134\n[    1.592025]  [\u003cffffffff802ceff5\u003e] ? blkdev_readpage+0x0/0x15\n[    1.592025]  [\u003cffffffff802f5f1c\u003e] ? adfspart_check_ICS+0x0/0x16c\n[    1.592025]  [\u003cffffffff8027deb8\u003e] read_cache_page+0xe/0x45\n[    1.592025]  [\u003cffffffff802f5170\u003e] read_dev_sector+0x2e/0x93\n[    1.592025]  [\u003cffffffff802f5f44\u003e] adfspart_check_ICS+0x28/0x16c\n[    1.592025]  [\u003cffffffff8025d427\u003e] ? trace_hardirqs_on+0xd/0xf\n[    1.592025]  [\u003cffffffff802f5f1c\u003e] ? adfspart_check_ICS+0x0/0x16c\n[    1.592025]  [\u003cffffffff802f59c5\u003e] rescan_partitions+0x168/0x2fb\n[    1.592025]  [\u003cffffffff802ceae9\u003e] __blkdev_get+0x259/0x336\n[    1.592025]  [\u003cffffffff803ca1e2\u003e] ? kobject_put+0x47/0x4b\n[    1.592025]  [\u003cffffffff802cebd1\u003e] blkdev_get+0xb/0xd\n[    1.592025]  [\u003cffffffff802f5773\u003e] register_disk+0xc4/0x12b\n[    1.592025]  [\u003cffffffff803b2a7b\u003e] add_disk+0xc3/0x12d\n[    1.592025]  [\u003cffffffff808a1d4a\u003e] ? mm_init+0x0/0x1a5\n[    1.592025]  [\u003cffffffff808a1e73\u003e] mm_init+0x129/0x1a5\n[    1.592025]  [\u003cffffffff808a1d4a\u003e] ? mm_init+0x0/0x1a5\n[    1.592025]  [\u003cffffffff80209056\u003e] _stext+0x56/0x130\n[    1.592025]  [\u003cffffffff80274932\u003e] ? register_irq_proc+0xae/0xca\n[    1.592025]  [\u003cffffffff802f0000\u003e] ? proc_pid_lookup+0xb4/0x18b\n[    1.592025]  [\u003cffffffff8087f975\u003e] kernel_init+0x132/0x18b\n[    1.592025]  [\u003cffffffff8020d17a\u003e] child_rip+0xa/0x20\n[    1.592025]  [\u003cffffffff8020cb40\u003e] ? restore_args+0x0/0x30\n[    1.592025]  [\u003cffffffff8087f843\u003e] ? kernel_init+0x0/0x18b\n[    1.592025]  [\u003cffffffff8020d170\u003e] ? child_rip+0x0/0x20\n[    1.592025] ---[ end trace 7150b3b86da74e1e ]---\n[    1.889858] ------------[ cut here ]------------[ve_plug+0x5f/0x91()\n[    1.893848] Hardware name: H8SSL\n[    1.893848] Modules linked in:\n[    1.893848] Pid: 1, comm: swapper Tainted: G        W  2.6.29 #8\n[    1.893848] Call Trace:\n[    1.893848]  [\u003cffffffff8023c994\u003e] warn_slowpath+0xd3/0xf2\n[    1.893848]  [\u003cffffffff805c8411\u003e] ? trace_hardirqs_on_thunk+0x3a/0x3f\n[    1.893848]  [\u003cffffffff8020cb40\u003e] ? restore_args+0x0/0x30\n[    1.893848]  [\u003cffffffff80254245\u003e] ? __atomic_notifier_call_chain+0x0/0xb2\n[    1.893848]  [\u003cffffffff805c90a3\u003e] ? _spin_unlock_irq+0x31/0x51\n[    1.893848]  [\u003cffffffff805c90bf\u003e] ? _spin_unlock_irq+0x4d/0x51\n[    1.893848]  [\u003cffffffff8044157d\u003e] ? mm_make_request+0x4e/0x59\n[    1.893848]  [\u003cffffffff8025a70e\u003e] ? get_lock_stats+0x34/0x5e\n[    1.893848]  [\u003cffffffff8025a75d\u003e] ? put_lock_stats+0x25/0x27\n[    1.893848]  [\u003cffffffff80441504\u003e] ? mm_unplug_device+0x25/0x50\n[    1.893848]  [\u003cffffffff803acf23\u003e] blk_remove_plug+0x5f/0x91\n[    1.893848]  [\u003cffffffff8044150f\u003e] mm_unplug_device+0x30/0x50\n[    1.893848]  [\u003cffffffff803ab74a\u003e] blk_unplug+0x78/0x7d\n[    1.893848]  [\u003cffffffff803ab75c\u003e] blk_backing_dev_unplug+0xd/0xf\n[    1.893848]  [\u003cffffffff802c853c\u003e] block_sync_page+0x4a/0x4c\n[    1.893848]  [\u003cffffffff8027da1c\u003e] sync_page+0x44/0x4d\n[    1.893848]  [\u003cffffffff805c66fd\u003e] __wait_on_bit_lock+0x42/0x8a\n[    1.893848]  [\u003cffffffff8027d9d8\u003e] ? sync_page+0x0/0x4d\n[    1.893848]  [\u003cffffffff8027d9c4\u003e] __lock_page+0x64/0x6b\n[    1.893848]  [\u003cffffffff802508db\u003e] ? wake_bit_function+0x0/0x2a\n[    1.893848]  [\u003cffffffff8027de4a\u003e] read_cache_page_async+0xd4/0x134\n[    1.893848]  [\u003cffffffff802ceff5\u003e] ? blkdev_readpage+0x0/0x15\n[    1.893848]  [\u003cffffffff802f5f1c\u003e] ? adfspart_check_ICS+0x0/0x16c\n[    1.893848]  [\u003cffffffff8027deb8\u003e] read_cache_page+0xe/0x45\n[    1.893848]  [\u003cffffffff802f5170\u003e] read_dev_sector+0x2e/0x93\n[    1.893848]  [\u003cffffffff802f5f44\u003e] adfspart_check_ICS+0x28/0x16c\n[    1.893848]  [\u003cffffffff8025d427\u003e] ? trace_hardirqs_on+0xd/0xf\n[    1.893848]  [\u003cffffffff802f5f1c\u003e] ? adfspart_check_ICS+0x0/0x16c\n[    1.893848]  [\u003cffffffff802f59c5\u003e] rescan_partitions+0x168/0x2fb\n[    1.893848]  [\u003cffffffff802ceae9\u003e] __blkdev_get+0x259/0x336\n[    1.893848]  [\u003cffffffff803ca1e2\u003e] ? kobject_put+0x47/0x4b\n[    1.893848]  [\u003cffffffff802cebd1\u003e] blkdev_get+0xb/0xd\n[    1.893848]  [\u003cffffffff802f5773\u003e] register_disk+0xc4/0x12b\n[    1.893848]  [\u003cffffffff803b2a7b\u003e] add_disk+0xc3/0x12d\n[    1.893848]  [\u003cffffffff808a1d4a\u003e] ? mm_init+0x0/0x1a5\n[    1.893848]  [\u003cffffffff808a1e73\u003e] mm_init+0x129/0x1a5\n[    1.893848]  [\u003cffffffff808a1d4a\u003e] ? mm_init+0x0/0x1a5\n[    1.893848]  [\u003cffffffff80209056\u003e] _stext+0x56/0x130\n[    1.893848]  [\u003cffffffff80274932\u003e] ? register_irq_proc+0xae/0xca\n[    1.893848]  [\u003cffffffff802f0000\u003e] ? proc_pid_lookup+0xb4/0x18b\n[    1.893848]  [\u003cffffffff8087f975\u003e] kernel_init+0x132/0x18b\n[    1.893848]  [\u003cffffffff8020d17a\u003e] child_rip+0xa/0x20\n[    1.893848]  [\u003cffffffff8020cb40\u003e] ? restore_args+0x0/0x30\n[    1.893848]  [\u003cffffffff8087f843\u003e] ? kernel_init+0x0/0x18b\n[    1.893848]  [\u003cffffffff8020d170\u003e] ? child_rip+0x0/0x20\n[    1.893848] ---[ end trace 7150b3b86da74e1f ]---\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9744d59a69f210b3ab2ba61bc5446e9ddf156455",
      "old_mode": 33188,
      "old_path": "drivers/block/umem.c",
      "new_id": "858c34dd032d27d31cadb2112e7bc36ec36fe8de",
      "new_mode": 33188,
      "new_path": "drivers/block/umem.c"
    }
  ]
}
