linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Mikko Perttunen <mperttunen@nvidia.com>
Cc: kbuild-all@lists.01.org,
	Linux Memory Management List <linux-mm@kvack.org>,
	Thierry Reding <treding@nvidia.com>
Subject: [linux-next:master 6516/8813] drivers/gpu/drm/tegra/uapi.c:119:51: error: passing argument 2 of 'host1x_memory_context_alloc' from incompatible pointer type
Date: Fri, 23 Sep 2022 05:11:41 +0800	[thread overview]
Message-ID: <202209230512.dSBGYXPr-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   483fed3b5dc8ce3644c83d24240cf5756fb0993e
commit: a11092cd032615f72470cd2ec1a4542e0ed72b14 [6516/8813] gpu: host1x: Select context device based on attached IOMMU
config: arm-randconfig-r011-20220922 (https://download.01.org/0day-ci/archive/20220923/202209230512.dSBGYXPr-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a11092cd032615f72470cd2ec1a4542e0ed72b14
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout a11092cd032615f72470cd2ec1a4542e0ed72b14
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/gpu/drm/tegra/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/tegra/uapi.c: In function 'tegra_drm_ioctl_channel_open':
>> drivers/gpu/drm/tegra/uapi.c:119:51: error: passing argument 2 of 'host1x_memory_context_alloc' from incompatible pointer type [-Werror=incompatible-pointer-types]
     119 |                                 host, client->base.dev, get_task_pid(current, PIDTYPE_TGID));
         |                                       ~~~~~~~~~~~~^~~~
         |                                                   |
         |                                                   struct device *
   In file included from drivers/gpu/drm/tegra/uapi.c:4:
   include/linux/host1x.h:478:85: note: expected 'struct pid *' but argument is of type 'struct device *'
     478 |                                                                         struct pid *pid)
         |                                                                         ~~~~~~~~~~~~^~~
>> drivers/gpu/drm/tegra/uapi.c:118:51: error: too many arguments to function 'host1x_memory_context_alloc'
     118 |                         context->memory_context = host1x_memory_context_alloc(
         |                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/host1x.h:477:45: note: declared here
     477 | static inline struct host1x_memory_context *host1x_memory_context_alloc(struct host1x *host1x,
         |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/host1x_memory_context_alloc +119 drivers/gpu/drm/tegra/uapi.c

    75	
    76	int tegra_drm_ioctl_channel_open(struct drm_device *drm, void *data, struct drm_file *file)
    77	{
    78		struct host1x *host = tegra_drm_to_host1x(drm->dev_private);
    79		struct tegra_drm_file *fpriv = file->driver_priv;
    80		struct tegra_drm *tegra = drm->dev_private;
    81		struct drm_tegra_channel_open *args = data;
    82		struct tegra_drm_client *client = NULL;
    83		struct tegra_drm_context *context;
    84		int err;
    85	
    86		if (args->flags)
    87			return -EINVAL;
    88	
    89		context = kzalloc(sizeof(*context), GFP_KERNEL);
    90		if (!context)
    91			return -ENOMEM;
    92	
    93		client = tegra_drm_find_client(tegra, args->host1x_class);
    94		if (!client) {
    95			err = -ENODEV;
    96			goto free;
    97		}
    98	
    99		if (client->shared_channel) {
   100			context->channel = host1x_channel_get(client->shared_channel);
   101		} else {
   102			context->channel = host1x_channel_request(&client->base);
   103			if (!context->channel) {
   104				err = -EBUSY;
   105				goto free;
   106			}
   107		}
   108	
   109		/* Only allocate context if the engine supports context isolation. */
   110		if (device_iommu_mapped(client->base.dev) && client->ops->can_use_memory_ctx) {
   111			bool supported;
   112	
   113			err = client->ops->can_use_memory_ctx(client, &supported);
   114			if (err)
   115				goto put_channel;
   116	
   117			if (supported)
 > 118				context->memory_context = host1x_memory_context_alloc(
 > 119					host, client->base.dev, get_task_pid(current, PIDTYPE_TGID));
   120	
   121			if (IS_ERR(context->memory_context)) {
   122				if (PTR_ERR(context->memory_context) != -EOPNOTSUPP) {
   123					err = PTR_ERR(context->memory_context);
   124					goto put_channel;
   125				} else {
   126					/*
   127					 * OK, HW does not support contexts or contexts
   128					 * are disabled.
   129					 */
   130					context->memory_context = NULL;
   131				}
   132			}
   133		}
   134	
   135		err = xa_alloc(&fpriv->contexts, &args->context, context, XA_LIMIT(1, U32_MAX),
   136			       GFP_KERNEL);
   137		if (err < 0)
   138			goto put_memctx;
   139	
   140		context->client = client;
   141		xa_init_flags(&context->mappings, XA_FLAGS_ALLOC1);
   142	
   143		args->version = client->version;
   144		args->capabilities = 0;
   145	
   146		if (device_get_dma_attr(client->base.dev) == DEV_DMA_COHERENT)
   147			args->capabilities |= DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT;
   148	
   149		return 0;
   150	
   151	put_memctx:
   152		if (context->memory_context)
   153			host1x_memory_context_put(context->memory_context);
   154	put_channel:
   155		host1x_channel_put(context->channel);
   156	free:
   157		kfree(context);
   158	
   159		return err;
   160	}
   161	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp


                 reply	other threads:[~2022-09-22 21:12 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202209230512.dSBGYXPr-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-mm@kvack.org \
    --cc=mperttunen@nvidia.com \
    --cc=treding@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox