mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
04672fe6d6
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 46 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Reviewed-by: Richard Fontana <rfontana@redhat.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.135501091@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
53 lines
1.5 KiB
C
53 lines
1.5 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* Linux WiMAX
|
|
* Implement and export a method for getting a WiMAX device current state
|
|
*
|
|
* Copyright (C) 2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
|
|
*
|
|
* Based on previous WiMAX core work by:
|
|
* Copyright (C) 2008 Intel Corporation <linux-wimax@intel.com>
|
|
* Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
|
|
*/
|
|
|
|
#include <net/wimax.h>
|
|
#include <net/genetlink.h>
|
|
#include <linux/wimax.h>
|
|
#include <linux/security.h>
|
|
#include "wimax-internal.h"
|
|
|
|
#define D_SUBMODULE op_state_get
|
|
#include "debug-levels.h"
|
|
|
|
|
|
/*
|
|
* Exporting to user space over generic netlink
|
|
*
|
|
* Parse the state get command from user space, return a combination
|
|
* value that describe the current state.
|
|
*
|
|
* No attributes.
|
|
*/
|
|
int wimax_gnl_doit_state_get(struct sk_buff *skb, struct genl_info *info)
|
|
{
|
|
int result, ifindex;
|
|
struct wimax_dev *wimax_dev;
|
|
|
|
d_fnstart(3, NULL, "(skb %p info %p)\n", skb, info);
|
|
result = -ENODEV;
|
|
if (info->attrs[WIMAX_GNL_STGET_IFIDX] == NULL) {
|
|
pr_err("WIMAX_GNL_OP_STATE_GET: can't find IFIDX attribute\n");
|
|
goto error_no_wimax_dev;
|
|
}
|
|
ifindex = nla_get_u32(info->attrs[WIMAX_GNL_STGET_IFIDX]);
|
|
wimax_dev = wimax_dev_get_by_genl_info(info, ifindex);
|
|
if (wimax_dev == NULL)
|
|
goto error_no_wimax_dev;
|
|
/* Execute the operation and send the result back to user space */
|
|
result = wimax_state_get(wimax_dev);
|
|
dev_put(wimax_dev->net_dev);
|
|
error_no_wimax_dev:
|
|
d_fnend(3, NULL, "(skb %p info %p) = %d\n", skb, info, result);
|
|
return result;
|
|
}
|