1. Feb 26, 2011
    • Anton Blanchard's avatar
      RxRPC: Allocate tokens with kzalloc to avoid oops in rxrpc_destroy · 0a93ea2e
      Anton Blanchard authored
      
      
      With slab poisoning enabled, I see the following oops:
      
        Unable to handle kernel paging request for data at address 0x6b6b6b6b6b6b6b73
        ...
        NIP [c0000000006bc61c] .rxrpc_destroy+0x44/0x104
        LR [c0000000006bc618] .rxrpc_destroy+0x40/0x104
        Call Trace:
        [c0000000feb2bc00] [c0000000006bc618] .rxrpc_destroy+0x40/0x104 (unreliable)
        [c0000000feb2bc90] [c000000000349b2c] .key_cleanup+0x1a8/0x20c
        [c0000000feb2bd40] [c0000000000a2920] .process_one_work+0x2f4/0x4d0
        [c0000000feb2be00] [c0000000000a2d50] .worker_thread+0x254/0x468
        [c0000000feb2bec0] [c0000000000a868c] .kthread+0xbc/0xc8
        [c0000000feb2bf90] [c000000000020e00] .kernel_thread+0x54/0x70
      
      We aren't initialising token->next, but the code in destroy_context relies
      on the list being NULL terminated. Use kzalloc to zero out all the fields.
      
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0a93ea2e
    • Anton Blanchard's avatar
      afs: Fix oops in afs_unlink_writeback · f129ccc9
      Anton Blanchard authored
      
      
      I'm seeing the following oops when testing afs:
      
        Unable to handle kernel paging request for data at address 0x00000008
        ...
        NIP [c0000000003393b0] .afs_unlink_writeback+0x38/0xc0
        LR [c00000000033987c] .afs_put_writeback+0x98/0xec
        Call Trace:
        [c00000000345f600] [c00000000033987c] .afs_put_writeback+0x98/0xec
        [c00000000345f690] [c00000000033ae80] .afs_write_begin+0x6a4/0x75c
        [c00000000345f790] [c00000000012b77c] .generic_file_buffered_write+0x148/0x320
        [c00000000345f8d0] [c00000000012e1b8] .__generic_file_aio_write+0x37c/0x3e4
        [c00000000345f9d0] [c00000000012e2a8] .generic_file_aio_write+0x88/0xfc
        [c00000000345fa90] [c0000000003390a8] .afs_file_write+0x10c/0x178
        [c00000000345fb40] [c000000000188788] .do_sync_write+0xc4/0x128
        [c00000000345fcc0] [c000000000189658] .vfs_write+0xe8/0x1d8
        [c00000000345fd70] [c000000000189884] .SyS_write+0x68/0xb0
        [c00000000345fe30] [c000000000008564] syscall_exit+0x0/0x40
      
      afs_write_begin hits an error and calls afs_unlink_writeback. In there
      we do list_del_init on an uninitialised list.
      
      The patch below initialises ->link when creating the afs_writeback struct.
      
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f129ccc9
  2. Feb 25, 2011
  3. Feb 24, 2011
  4. Feb 23, 2011