1. 18 2月, 2017 3 次提交
  2. 15 2月, 2017 5 次提交
  3. 14 2月, 2017 4 次提交
    • K
      cdrom: Make device operations read-only · 853fe1bf
      Kees Cook 提交于
      Since function tables are a common target for attackers, it's best to keep
      them in read-only memory. As such, this makes the CDROM device ops tables
      const. This drops additionally n_minors, since it isn't used meaningfully,
      and sets the only user of cdrom_dummy_generic_packet explicitly so the
      variables can all be const.
      
      Inspired by similar changes in grsecurity/PaX.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      853fe1bf
    • J
      elevator: fix loading wrong elevator type for blk-mq devices · d1a987f3
      Jens Axboe 提交于
      The old elevator= boot parameter blindly attempts to load the
      same scheduler for mq and !mq devices, leading to a crash if
      we specify the wrong one.
      
      Ensure that we only apply this boot parameter to old !mq devices.
      Signed-off-by: NJens Axboe <axboe@fb.com>
      d1a987f3
    • C
      cciss: switch to pci_irq_alloc_vectors · c5c9b26e
      Christoph Hellwig 提交于
      Simple cleanup to use the new APIs.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Acked-by: NDon Brace <don.brace@microsemi.com>
      Tested-by: NDon Brace <don.brace@microsemi.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      c5c9b26e
    • M
      block/loop: fix race between I/O and set_status · ecdd0959
      Ming Lei 提交于
      Inside set_status, transfer need to setup again, so
      we have to drain IO before the transition, otherwise
      oops may be triggered like the following:
      
      	divide error: 0000 [#1] SMP KASAN
      	CPU: 0 PID: 2935 Comm: loop7 Not tainted 4.10.0-rc7+ #213
      	Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs
      	01/01/2011
      	task: ffff88006ba1e840 task.stack: ffff880067338000
      	RIP: 0010:transfer_xor+0x1d1/0x440 drivers/block/loop.c:110
      	RSP: 0018:ffff88006733f108 EFLAGS: 00010246
      	RAX: 0000000000000000 RBX: ffff8800688d7000 RCX: 0000000000000059
      	RDX: 0000000000000000 RSI: 1ffff1000d743f43 RDI: ffff880068891c08
      	RBP: ffff88006733f160 R08: ffff8800688d7001 R09: 0000000000000000
      	R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800688d7000
      	R13: ffff880067b7d000 R14: dffffc0000000000 R15: 0000000000000000
      	FS:  0000000000000000(0000) GS:ffff88006d000000(0000)
      	knlGS:0000000000000000
      	CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      	CR2: 00000000006c17e0 CR3: 0000000066e3b000 CR4: 00000000001406f0
      	Call Trace:
      	 lo_do_transfer drivers/block/loop.c:251 [inline]
      	 lo_read_transfer drivers/block/loop.c:392 [inline]
      	 do_req_filebacked drivers/block/loop.c:541 [inline]
      	 loop_handle_cmd drivers/block/loop.c:1677 [inline]
      	 loop_queue_work+0xda0/0x49b0 drivers/block/loop.c:1689
      	 kthread_worker_fn+0x4c3/0xa30 kernel/kthread.c:630
      	 kthread+0x326/0x3f0 kernel/kthread.c:227
      	 ret_from_fork+0x31/0x40 arch/x86/entry/entry_64.S:430
      	Code: 03 83 e2 07 41 29 df 42 0f b6 04 30 4d 8d 44 24 01 38 d0 7f 08
      	84 c0 0f 85 62 02 00 00 44 89 f8 41 0f b6 48 ff 25 ff 01 00 00 99 <f7>
      	7d c8 48 63 d2 48 03 55 d0 48 89 d0 48 89 d7 48 c1 e8 03 83
      	RIP: transfer_xor+0x1d1/0x440 drivers/block/loop.c:110 RSP:
      	ffff88006733f108
      	---[ end trace 0166f7bd3b0c0933 ]---
      Reported-by: NDmitry Vyukov <dvyukov@google.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NMing Lei <tom.leiming@gmail.com>
      Tested-by: NDmitry Vyukov <dvyukov@google.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      ecdd0959
  4. 08 2月, 2017 1 次提交
  5. 07 2月, 2017 4 次提交
  6. 02 2月, 2017 2 次提交
  7. 01 2月, 2017 1 次提交
    • J
      blk-mq: don't fail allocating driver tag for stopped hw queue · 12d70958
      Jens Axboe 提交于
      We rely on blk_mq_get_driver_tag() not failing if 'wait' is true,
      but it currently fails in that case if the queue happens to be
      stopped at the time of the call.
      
      We don't need to check for stopped here, it's just assigning
      the tag. If the queue is stopped, we'll handle it when
      attempting to run the queue.
      
      This fixes a stall/crash on flush intensive workloads, where
      we proceed to process a flush that doesn't have a valid tag
      assigned.
      Signed-off-by: NJens Axboe <axboe@fb.com>
      12d70958
  8. 31 1月, 2017 13 次提交
  9. 28 1月, 2017 4 次提交
  10. 27 1月, 2017 3 次提交