"dev" is dereferences before it's checked.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
 int sbefifo_submit(struct device *dev, const __be32 *command, size_t cmd_len,
                   __be32 *response, size_t *resp_len)
 {
-       struct sbefifo *sbefifo = dev_get_drvdata(dev);
+       struct sbefifo *sbefifo;
         struct iov_iter resp_iter;
         struct kvec resp_iov;
        size_t rbytes;
        int rc;
 
-       if (!dev || !sbefifo)
+       if (!dev)
+               return -ENODEV;
+       sbefifo = dev_get_drvdata(dev);
+       if (!sbefifo)
                return -ENODEV;
        if (WARN_ON_ONCE(sbefifo->magic != SBEFIFO_MAGIC))
                return -ENODEV;