xen: sleeping in atomic warnings

From: Dan Carpenter
Date: Tue Feb 07 2023 - 08:37:52 EST


These are static checker warnings from Smatch. The line numbers are
based on next-20230207. To reproduce these warnings then you need to
have the latest Smatch from git and you need to rebuild the cross
function probably four times. I have reviewed most of these and they
all seem valid to me. I remember I reported some a while back but never
heard back. https://lore.kernel.org/all/20210802144037.GA29540@kili/

regards,
dan carpenter

arch/x86/xen/p2m.c:189 alloc_p2m_page() warn: sleeping in atomic context
xen_create_contiguous_region() <- disables preempt
xen_destroy_contiguous_region() <- disables preempt
-> xen_remap_exchanged_ptes()
-> set_phys_to_machine()
-> xen_alloc_p2m_entry()
-> alloc_p2m_pmd()
xen_alloc_p2m_entry() <duplicate>
-> alloc_p2m_page()

drivers/xen/events/events_base.c:1213 bind_evtchn_to_irq_chip() warn: sleeping in atomic context
pvcalls_front_connect() <- disables preempt
pvcalls_front_accept() <- disables preempt
-> create_active()
-> bind_evtchn_to_irqhandler()
-> bind_evtchn_to_irqhandler_chip()
-> bind_evtchn_to_irq_chip()

drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c:303 netxen_pcie_sem_lock() warn: sleeping in atomic context
netxen_nic_hw_write_wx_2M() <- disables preempt
netxen_nic_hw_read_wx_2M() <- disables preempt
-> netxen_pcie_sem_lock()

drivers/xen/xen-pciback/pci_stub.c:110 pcistub_device_release() warn: sleeping in atomic context
pcistub_get_pci_dev_by_slot() <- disables preempt
pcistub_get_pci_dev() <- disables preempt
-> pcistub_device_get_pci_dev()
-> pcistub_device_put()
-> pcistub_device_release()

drivers/xen/xen-scsiback.c:1016 __scsiback_del_translation_entry() warn: sleeping in atomic context
scsiback_del_translation_entry() <- disables preempt
scsiback_release_translation_entry() <- disables preempt
-> __scsiback_del_translation_entry()

drivers/xen/xen-scsiback.c:276 scsiback_free_translation_entry() warn: sleeping in atomic context
scsiback_del_translation_entry() <- disables preempt
scsiback_release_translation_entry() <- disables preempt
-> __scsiback_del_translation_entry()
-> scsiback_free_translation_entry()

drivers/xen/events/events_base.c:1427 unbind_from_irq() warn: sleeping in atomic context
pvcalls_front_connect() <- disables preempt
pvcalls_front_accept() <- disables preempt
-> create_active()
-> bind_evtchn_to_irqhandler()
-> bind_evtchn_to_irqhandler_chip()
-> unbind_from_irq()

drivers/xen/xenbus/xenbus_client.c:473 xenbus_alloc_evtchn() warn: sleeping in atomic context
pvcalls_front_connect() <- disables preempt
pvcalls_front_accept() <- disables preempt
-> create_active()
-> xenbus_alloc_evtchn()

drivers/xen/xenbus/xenbus_client.c:321 xenbus_dev_error() warn: sleeping in atomic context
pvcalls_front_connect() <- disables preempt
pvcalls_front_accept() <- disables preempt
-> create_active()
-> xenbus_free_evtchn()
-> xenbus_dev_error()

drivers/xen/xenbus/xenbus_client.c:342 xenbus_dev_fatal() warn: sleeping in atomic context
pvcalls_front_connect() <- disables preempt
pvcalls_front_accept() <- disables preempt
-> create_active()
-> xenbus_alloc_evtchn()
-> xenbus_dev_fatal()

drivers/xen/xenbus/xenbus_client.c:494 xenbus_free_evtchn() warn: sleeping in atomic context
pvcalls_front_connect() <- disables preempt
pvcalls_front_accept() <- disables preempt
-> create_active()
-> xenbus_free_evtchn()

drivers/xen/xenbus/xenbus_client.c:290 xenbus_va_dev_error() warn: sleeping in atomic context
pvcalls_front_connect() <- disables preempt
pvcalls_front_accept() <- disables preempt
-> create_active()
-> xenbus_free_evtchn()
-> xenbus_dev_error()
create_active() <duplicate>
-> xenbus_alloc_evtchn()
-> xenbus_dev_fatal()
-> xenbus_va_dev_error()