These are static checker warnings from Smatch. The line numbers are based on next-20230203. 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 these. The first few seem like real issues. I can't make heads or tails out of the __blk_mq_run_hw_queue() warning. I suspect that the last warning is a false positive. I remember I reported some a while back but never heard back. https://lore.kernel.org/all/YNx1r8Jr3+t4bch%2F@mwanda/ regards, dan carpenter block/blk-crypto-profile.c:382 __blk_crypto_evict_key() warn: sleeping in atomic context block/blk-crypto-profile.c:390 __blk_crypto_evict_key() warn: sleeping in atomic context put_super() <- disables preempt __iterate_supers() <- disables preempt iterate_supers() <- disables preempt iterate_supers_type() <- disables preempt get_super() <- disables preempt user_get_super() <- disables preempt -> __put_super() -> fscrypt_destroy_keyring() -> fscrypt_put_master_key_activeref() -> fscrypt_destroy_prepared_key() -> fscrypt_destroy_inline_crypt_key() -> blk_crypto_evict_key() blk_crypto_evict_key() <duplicate> -> blk_crypto_fallback_evict_key() -> __blk_crypto_evict_key() block/blk-mq.c:206 blk_freeze_queue() warn: sleeping in atomic context rexmit_timer() <- disables preempt -> aoedev_downdev() -> blk_mq_freeze_queue() -> blk_freeze_queue() block/blk-mq.c:4083 blk_mq_destroy_queue() warn: sleeping in atomic context nvme_fc_match_disconn_ls() <- disables preempt -> nvme_fc_ctrl_put() -> nvme_fc_ctrl_free() -> nvme_remove_admin_tag_set() nvme_fc_ctrl_free() <duplicate> -> nvme_remove_io_tag_set() -> blk_mq_destroy_queue() block/blk-mq.c:2174 __blk_mq_run_hw_queue() warn: sleeping in atomic context __blk_mq_run_hw_queue() <duplicate> -> blk_mq_sched_dispatch_requests() -> __blk_mq_sched_dispatch_requests() -> blk_mq_do_dispatch_sched() blk_mq_do_dispatch_sched() <duplicate> -> __blk_mq_do_dispatch_sched() -> blk_mq_dispatch_hctx_list() __blk_mq_do_dispatch_sched() <duplicate> __blk_mq_sched_dispatch_requests() <duplicate> -> blk_mq_do_dispatch_ctx() __blk_mq_sched_dispatch_requests() <duplicate> -> blk_mq_dispatch_rq_list() __blk_mq_do_dispatch_sched() <duplicate> blk_mq_do_dispatch_ctx() <duplicate> -> blk_mq_delay_run_hw_queues() -> blk_mq_delay_run_hw_queue() sg_remove_sfp_usercontext() <- disables preempt -> sg_finish_rem_req() dd_insert_requests() <- disables preempt -> dd_insert_request() -> blk_mq_free_requests() mspro_block_complete_req() <- disables preempt mspro_queue_rq() <- disables preempt -> mspro_block_issue_req() mspro_block_complete_req() <- disables preempt <duplicate> aoe_flush_iocq_by_index() <- disables preempt rexmit_timer() <- disables preempt -> aoedev_downdev() -> aoe_failip() aoedev_downdev() <duplicate> -> downdev_frame() -> aoe_failbuf() -> aoe_end_buf() aoe_failip() <duplicate> -> aoe_end_request() -> __blk_mq_end_request() -> blk_mq_free_request() -> __blk_mq_free_request() -> blk_mq_sched_restart() -> __blk_mq_sched_restart() blk_mq_sched_dispatch_requests() <duplicate> blk_mq_dispatch_rq_list() <duplicate> rexmit_timer() <- disables preempt <duplicate> aoe_end_request() <duplicate> bfq_finish_requeue_request() <- disables preempt -> bfq_completed_request() bfq_idle_slice_timer_body() <- disables preempt bfq_pd_offline() <- disables preempt -> bfq_put_async_queues() -> __bfq_put_async_bfqq() bfq_bio_merge() <- disables preempt bfq_insert_request() <- disables preempt -> bfq_init_rq() -> bfq_bic_update_cgroup() -> __bfq_bic_change_cgroup() -> bfq_sync_bfqq_move() bfq_pd_offline() <- disables preempt <duplicate> -> bfq_reparent_active_queues() -> bfq_reparent_leaf_entity() -> bfq_bfqq_move() -> bfq_schedule_dispatch() nvme_fc_match_disconn_ls() <- disables preempt -> nvme_fc_ctrl_put() -> nvme_fc_ctrl_free() -> nvme_unquiesce_admin_queue() -> blk_mq_unquiesce_queue() -> blk_mq_run_hw_queues() virtblk_done() <- disables preempt virtblk_poll() <- disables preempt -> blk_mq_start_stopped_hw_queues() -> blk_mq_start_stopped_hw_queue() -> blk_mq_run_hw_queue() -> __blk_mq_delay_run_hw_queue() -> __blk_mq_run_hw_queue() block/blk-wbt.c:843 wbt_init() warn: sleeping in atomic context ioc_qos_write() <- disables preempt -> wbt_enable_default() -> wbt_init()