• Johannes Thumshirn's avatar
    scsi: fcoe: clear FC_RP_STARTED flags when receiving a LOGO · 1550ec45
    Johannes Thumshirn authored
    When receiving a LOGO request we forget to clear the FC_RP_STARTED flag
    before starting the rport delete routine.
    
    As the started flag was not cleared, we're not deleting the rport but
    waiting for a restart and thus are keeping the reference count of the rdata
    object at 1.
    
    This leads to the following kmemleak report:
    unreferenced object 0xffff88006542aa00 (size 512):
      comm "kworker/0:2", pid 24, jiffies 4294899222 (age 226.880s)
      hex dump (first 32 bytes):
        68 96 fe 65 00 88 ff ff 00 00 00 00 00 00 00 00  h..e............
        01 00 00 00 08 00 00 00 02 c5 45 24 ac b8 00 10  ..........E$....
      backtrace:
        [<(____ptrval____)>] fcoe_ctlr_vn_add.isra.5+0x7f/0x770 [libfcoe]
        [<(____ptrval____)>] fcoe_ctlr_vn_recv+0x12af/0x27f0 [libfcoe]
        [<(____ptrval____)>] fcoe_ctlr_recv_work+0xd01/0x32f0 [libfcoe]
        [<(____ptrval____)>] process_one_work+0x7ff/0x1420
        [<(____ptrval____)>] worker_thread+0x87/0xef0
        [<(____ptrval____)>] kthread+0x2db/0x390
        [<(____ptrval____)>] ret_from_fork+0x35/0x40
        [<(____ptrval____)>] 0xffffffffffffffff
    Signed-off-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
    Reported-by: default avatarard <ard@kwaak.net>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    1550ec45
fc_rport.c 60.8 KB