CC: [email protected] CC: [email protected] TO: Christoph Hellwig <[email protected]> CC: "Martin K. Petersen" <[email protected]> CC: James Smart <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next head: 315d049ad1951cef02d9337a2469cac51cca6932 commit: efac162a4e4dc4cebcc658e02676821ca834b56c [67/132] scsi: efct: Don't pass GFP_DMA to dma_alloc_coherent() :::::: branch date: 25 hours ago :::::: commit date: 3 weeks ago config: x86_64-randconfig-m031-20220107 (https://download.01.org/0day-ci/archive/20220108/[email protected]/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/scsi/elx/libefc/efc_els.c:73 efc_els_io_alloc_size() warn: sleeping in atomic context vim +73 drivers/scsi/elx/libefc/efc_els.c 8f406ef728597d James Smart 2021-06-01 39 8f406ef728597d James Smart 2021-06-01 40 struct efc_els_io_req * 8f406ef728597d James Smart 2021-06-01 41 efc_els_io_alloc_size(struct efc_node *node, u32 reqlen, u32 rsplen) 8f406ef728597d James Smart 2021-06-01 42 { 8f406ef728597d James Smart 2021-06-01 43 struct efc *efc; 8f406ef728597d James Smart 2021-06-01 44 struct efc_els_io_req *els; 8f406ef728597d James Smart 2021-06-01 45 unsigned long flags = 0; 8f406ef728597d James Smart 2021-06-01 46 8f406ef728597d James Smart 2021-06-01 47 efc = node->efc; 8f406ef728597d James Smart 2021-06-01 48 8f406ef728597d James Smart 2021-06-01 49 spin_lock_irqsave(&node->els_ios_lock, flags); 8f406ef728597d James Smart 2021-06-01 50 8f406ef728597d James Smart 2021-06-01 51 if (!node->els_io_enabled) { 8f406ef728597d James Smart 2021-06-01 52 efc_log_err(efc, "els io alloc disabled\n"); 8f406ef728597d James Smart 2021-06-01 53 spin_unlock_irqrestore(&node->els_ios_lock, flags); 8f406ef728597d James Smart 2021-06-01 54 return NULL; 8f406ef728597d James Smart 2021-06-01 55 } 8f406ef728597d James Smart 2021-06-01 56 8f406ef728597d James Smart 2021-06-01 57 els = mempool_alloc(efc->els_io_pool, GFP_ATOMIC); 8f406ef728597d James Smart 2021-06-01 58 if (!els) { 8f406ef728597d James Smart 2021-06-01 59 atomic_add_return(1, &efc->els_io_alloc_failed_count); 8f406ef728597d James Smart 2021-06-01 60 spin_unlock_irqrestore(&node->els_ios_lock, flags); 8f406ef728597d James Smart 2021-06-01 61 return NULL; 8f406ef728597d James Smart 2021-06-01 62 } 8f406ef728597d James Smart 2021-06-01 63 8f406ef728597d James Smart 2021-06-01 64 /* initialize refcount */ 8f406ef728597d James Smart 2021-06-01 65 kref_init(&els->ref); 8f406ef728597d James Smart 2021-06-01 66 els->release = _efc_els_io_free; 8f406ef728597d James Smart 2021-06-01 67 8f406ef728597d James Smart 2021-06-01 68 /* populate generic io fields */ 8f406ef728597d James Smart 2021-06-01 69 els->node = node; 8f406ef728597d James Smart 2021-06-01 70 8f406ef728597d James Smart 2021-06-01 71 /* now allocate DMA for request and response */ 8f406ef728597d James Smart 2021-06-01 72 els->io.req.size = reqlen; 8f406ef728597d James Smart 2021-06-01 @73 els->io.req.virt = dma_alloc_coherent(&efc->pci->dev, els->io.req.size, efac162a4e4dc4 Christoph Hellwig 2021-12-14 74 &els->io.req.phys, GFP_KERNEL); 8f406ef728597d James Smart 2021-06-01 75 if (!els->io.req.virt) { 8f406ef728597d James Smart 2021-06-01 76 mempool_free(els, efc->els_io_pool); 8f406ef728597d James Smart 2021-06-01 77 spin_unlock_irqrestore(&node->els_ios_lock, flags); 8f406ef728597d James Smart 2021-06-01 78 return NULL; 8f406ef728597d James Smart 2021-06-01 79 } 8f406ef728597d James Smart 2021-06-01 80 8f406ef728597d James Smart 2021-06-01 81 els->io.rsp.size = rsplen; 8f406ef728597d James Smart 2021-06-01 82 els->io.rsp.virt = dma_alloc_coherent(&efc->pci->dev, els->io.rsp.size, efac162a4e4dc4 Christoph Hellwig 2021-12-14 83 &els->io.rsp.phys, GFP_KERNEL); 8f406ef728597d James Smart 2021-06-01 84 if (!els->io.rsp.virt) { 8f406ef728597d James Smart 2021-06-01 85 dma_free_coherent(&efc->pci->dev, els->io.req.size, 8f406ef728597d James Smart 2021-06-01 86 els->io.req.virt, els->io.req.phys); 8f406ef728597d James Smart 2021-06-01 87 mempool_free(els, efc->els_io_pool); 8f406ef728597d James Smart 2021-06-01 88 els = NULL; 8f406ef728597d James Smart 2021-06-01 89 } 8f406ef728597d James Smart 2021-06-01 90 8f406ef728597d James Smart 2021-06-01 91 if (els) { 8f406ef728597d James Smart 2021-06-01 92 /* initialize fields */ 8f406ef728597d James Smart 2021-06-01 93 els->els_retries_remaining = EFC_FC_ELS_DEFAULT_RETRIES; 8f406ef728597d James Smart 2021-06-01 94 8f406ef728597d James Smart 2021-06-01 95 /* add els structure to ELS IO list */ 8f406ef728597d James Smart 2021-06-01 96 INIT_LIST_HEAD(&els->list_entry); 8f406ef728597d James Smart 2021-06-01 97 list_add_tail(&els->list_entry, &node->els_ios_list); 8f406ef728597d James Smart 2021-06-01 98 } 8f406ef728597d James Smart 2021-06-01 99 8f406ef728597d James Smart 2021-06-01 100 spin_unlock_irqrestore(&node->els_ios_lock, flags); 8f406ef728597d James Smart 2021-06-01 101 return els; 8f406ef728597d James Smart 2021-06-01 102 } 8f406ef728597d James Smart 2021-06-01 103 :::::: The code at line 73 was first introduced by commit :::::: 8f406ef728597da39c935ab9c12f4940139775f9 scsi: elx: libefc: Extended link Service I/O handling :::::: TO: James Smart <[email protected]> :::::: CC: Martin K. Petersen <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
