Hello Thomas Petazzoni, The patch 6d5cd068ee59: "mmc: sdhci: use WP GPIO in sdhci_check_ro()" from Feb 12, 2019, leads to the following static checker warning: drivers/gpio/gpiolib.c:3287 gpiod_get_value_cansleep() warn: sleeping in atomic context drivers/mmc/host/sdhci.c 2424 static int sdhci_check_ro(struct sdhci_host *host) 2425 { 2426 unsigned long flags; 2427 int is_readonly; 2428 2429 spin_lock_irqsave(&host->lock, flags); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ We're holding a spin lock. 2430 2431 if (host->flags & SDHCI_DEVICE_DEAD) 2432 is_readonly = 0; 2433 else if (host->ops->get_ro) 2434 is_readonly = host->ops->get_ro(host); 2435 else if (mmc_can_gpio_ro(host->mmc)) 2436 is_readonly = mmc_gpio_get_ro(host->mmc); ^^^^^^^^^^^^^^^^^^^^^^^^^^ The mmc_gpio_get_ro() function calls gpiod_get_value_cansleep() which, as the name suggests, can sleep. 2437 else 2438 is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE) 2439 & SDHCI_WRITE_PROTECT); 2440 2441 spin_unlock_irqrestore(&host->lock, flags); 2442 2443 /* This quirk needs to be replaced by a callback-function later */ 2444 return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ? 2445 !is_readonly : is_readonly; 2446 } regards, dan carpenter