Skip to content
Snippets Groups Projects
Select Git revision
  • fe48aecb4df837540f13b5216f27ddb306aaf4b9
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

uverbs_cmd.c

Blame
  • uverbs_cmd.c 103.68 KiB
    /*
     * Copyright (c) 2005 Topspin Communications.  All rights reserved.
     * Copyright (c) 2005, 2006, 2007 Cisco Systems.  All rights reserved.
     * Copyright (c) 2005 PathScale, Inc.  All rights reserved.
     * Copyright (c) 2006 Mellanox Technologies.  All rights reserved.
     *
     * This software is available to you under a choice of one of two
     * licenses.  You may choose to be licensed under the terms of the GNU
     * General Public License (GPL) Version 2, available from the file
     * COPYING in the main directory of this source tree, or the
     * OpenIB.org BSD license below:
     *
     *     Redistribution and use in source and binary forms, with or
     *     without modification, are permitted provided that the following
     *     conditions are met:
     *
     *      - Redistributions of source code must retain the above
     *        copyright notice, this list of conditions and the following
     *        disclaimer.
     *
     *      - Redistributions in binary form must reproduce the above
     *        copyright notice, this list of conditions and the following
     *        disclaimer in the documentation and/or other materials
     *        provided with the distribution.
     *
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
     * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
     * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
     * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     * SOFTWARE.
     */
    
    #include <linux/file.h>
    #include <linux/fs.h>
    #include <linux/slab.h>
    #include <linux/sched.h>
    
    #include <linux/uaccess.h>
    
    #include <rdma/uverbs_types.h>
    #include <rdma/uverbs_std_types.h>
    #include "rdma_core.h"
    
    #include "uverbs.h"
    #include "core_priv.h"
    
    static struct ib_uverbs_completion_event_file *
    ib_uverbs_lookup_comp_file(int fd, struct ib_ucontext *context)
    {
    	struct ib_uobject *uobj = uobj_get_read(UVERBS_OBJECT_COMP_CHANNEL,
    						fd, context);
    	struct ib_uobject_file *uobj_file;
    
    	if (IS_ERR(uobj))
    		return (void *)uobj;
    
    	uverbs_uobject_get(uobj);
    	uobj_put_read(uobj);
    
    	uobj_file = container_of(uobj, struct ib_uobject_file, uobj);
    	return container_of(uobj_file, struct ib_uverbs_completion_event_file,
    			    uobj_file);
    }
    
    ssize_t ib_uverbs_get_context(struct ib_uverbs_file *file,
    			      struct ib_device *ib_dev,
    			      const char __user *buf,