| 1 | // SPDX-License-Identifier: GPL-2.0 | 
|---|
| 2 | #include <linux/utsname.h> | 
|---|
| 3 | #include <net/cfg80211.h> | 
|---|
| 4 | #include "core.h" | 
|---|
| 5 | #include "rdev-ops.h" | 
|---|
| 6 |  | 
|---|
| 7 | void cfg80211_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) | 
|---|
| 8 | { | 
|---|
| 9 | struct wireless_dev *wdev = dev->ieee80211_ptr; | 
|---|
| 10 | struct device *pdev = wiphy_dev(wiphy: wdev->wiphy); | 
|---|
| 11 |  | 
|---|
| 12 | if (pdev->driver) | 
|---|
| 13 | strscpy(info->driver, pdev->driver->name, | 
|---|
| 14 | sizeof(info->driver)); | 
|---|
| 15 | else | 
|---|
| 16 | strscpy(info->driver, "N/A", sizeof(info->driver)); | 
|---|
| 17 |  | 
|---|
| 18 | strscpy(info->version, init_utsname()->release, sizeof(info->version)); | 
|---|
| 19 |  | 
|---|
| 20 | if (wdev->wiphy->fw_version[0]) | 
|---|
| 21 | strscpy(info->fw_version, wdev->wiphy->fw_version, | 
|---|
| 22 | sizeof(info->fw_version)); | 
|---|
| 23 | else | 
|---|
| 24 | strscpy(info->fw_version, "N/A", sizeof(info->fw_version)); | 
|---|
| 25 |  | 
|---|
| 26 | strscpy(info->bus_info, dev_name(pdev), | 
|---|
| 27 | sizeof(info->bus_info)); | 
|---|
| 28 | } | 
|---|
| 29 | EXPORT_SYMBOL(cfg80211_get_drvinfo); | 
|---|
| 30 |  | 
|---|