void *dst_data, const struct iommu_user_data *src_data,
        unsigned int data_type, size_t data_len, size_t min_len)
 {
-       if (src_data->type != data_type)
-               return -EINVAL;
        if (WARN_ON(!dst_data || !src_data))
                return -EINVAL;
+       if (src_data->type != data_type)
+               return -EINVAL;
        if (src_data->len < min_len || data_len < src_data->len)
                return -EINVAL;
        return copy_struct_from_user(dst_data, data_len, src_data->uptr,
  *        include/uapi/linux/iommufd.h
  * @user_data: Pointer to a struct iommu_user_data for user space data info
  * @data_type: The data type of the @kdst. Must match with @user_data->type
- * @min_last: The last memember of the data structure @kdst points in the
- *            initial version.
+ * @min_last: The last member of the data structure @kdst points in the initial
+ *            version.
  * Return 0 for success, otherwise -error.
  */
 #define iommu_copy_struct_from_user(kdst, user_data, data_type, min_last) \