Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Four minor merge conflicts:

1) qca_spi.c renamed the local variable used for the SPI device
   from spi_device to spi, meanwhile the spi_set_drvdata() call
   got moved further up in the probe function.

2) Two changes were both adding new members to codel params
   structure, and thus we had overlapping changes to the
   initializer function.

3) 'net' was making a fix to sk_release_kernel() which is
   completely removed in 'net-next'.

4) In net_namespace.c, the rtnl_net_fill() call for GET operations
   had the command value fixed, meanwhile 'net-next' adjusted the
   argument signature a bit.

This also matches example merge resolutions posted by Stephen
Rothwell over the past two days.

Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
David S. Miller 2015-05-13 14:31:43 -04:00
commit b04096ff33
410 changed files with 5358 additions and 4555 deletions

View file

@ -3,7 +3,9 @@ obj-$(CONFIG_IEEE802154_SOCKET) += ieee802154_socket.o
obj-y += 6lowpan/
ieee802154-y := netlink.o nl-mac.o nl-phy.o nl_policy.o core.o \
header_ops.o sysfs.o nl802154.o
header_ops.o sysfs.o nl802154.o trace.o
ieee802154_socket-y := socket.o
CFLAGS_trace.o := -I$(src)
ccflags-y += -D__CHECK_ENDIAN__

View file

@ -175,6 +175,7 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info)
int rc = -ENOBUFS;
struct net_device *dev;
int type = __IEEE802154_DEV_INVALID;
unsigned char name_assign_type;
pr_debug("%s\n", __func__);
@ -190,8 +191,10 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info)
if (devname[nla_len(info->attrs[IEEE802154_ATTR_DEV_NAME]) - 1]
!= '\0')
return -EINVAL; /* phy name should be null-terminated */
name_assign_type = NET_NAME_USER;
} else {
devname = "wpan%d";
name_assign_type = NET_NAME_ENUM;
}
if (strlen(devname) >= IFNAMSIZ)
@ -221,7 +224,7 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info)
}
dev = rdev_add_virtual_intf_deprecated(wpan_phy_to_rdev(phy), devname,
type);
name_assign_type, type);
if (IS_ERR(dev)) {
rc = PTR_ERR(dev);
goto nla_put_failure;

View file

@ -589,7 +589,7 @@ static int nl802154_new_interface(struct sk_buff *skb, struct genl_info *info)
return rdev_add_virtual_intf(rdev,
nla_data(info->attrs[NL802154_ATTR_IFNAME]),
type, extended_addr);
NET_NAME_USER, type, extended_addr);
}
static int nl802154_del_interface(struct sk_buff *skb, struct genl_info *info)

View file

@ -4,13 +4,16 @@
#include <net/cfg802154.h>
#include "core.h"
#include "trace.h"
static inline struct net_device *
rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
const char *name, int type)
const char *name,
unsigned char name_assign_type,
int type)
{
return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name,
type);
name_assign_type, type);
}
static inline void
@ -22,75 +25,131 @@ rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
static inline int
rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name,
unsigned char name_assign_type,
enum nl802154_iftype type, __le64 extended_addr)
{
return rdev->ops->add_virtual_intf(&rdev->wpan_phy, name, type,
int ret;
trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type,
extended_addr);
ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name,
name_assign_type, type,
extended_addr);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_del_virtual_intf(struct cfg802154_registered_device *rdev,
struct wpan_dev *wpan_dev)
{
return rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev);
int ret;
trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev);
ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel)
{
return rdev->ops->set_channel(&rdev->wpan_phy, page, channel);
int ret;
trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel);
ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_cca_mode(struct cfg802154_registered_device *rdev,
const struct wpan_phy_cca *cca)
{
return rdev->ops->set_cca_mode(&rdev->wpan_phy, cca);
int ret;
trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca);
ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_pan_id(struct cfg802154_registered_device *rdev,
struct wpan_dev *wpan_dev, __le16 pan_id)
{
return rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
int ret;
trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_short_addr(struct cfg802154_registered_device *rdev,
struct wpan_dev *wpan_dev, __le16 short_addr)
{
return rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
int ret;
trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev,
struct wpan_dev *wpan_dev, u8 min_be, u8 max_be)
{
return rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
int ret;
trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
min_be, max_be);
ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
min_be, max_be);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev,
struct wpan_dev *wpan_dev, u8 max_csma_backoffs)
{
return rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev,
max_csma_backoffs);
int ret;
trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev,
max_csma_backoffs);
ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev,
max_csma_backoffs);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev,
struct wpan_dev *wpan_dev, s8 max_frame_retries)
{
return rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
int ret;
trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
max_frame_retries);
ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
max_frame_retries);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
static inline int
rdev_set_lbt_mode(struct cfg802154_registered_device *rdev,
struct wpan_dev *wpan_dev, bool mode)
{
return rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
int ret;
trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
return ret;
}
#endif /* __CFG802154_RDEV_OPS */

7
net/ieee802154/trace.c Normal file
View file

@ -0,0 +1,7 @@
#include <linux/module.h>
#ifndef __CHECKER__
#define CREATE_TRACE_POINTS
#include "trace.h"
#endif

247
net/ieee802154/trace.h Normal file
View file

@ -0,0 +1,247 @@
/* Based on net/wireless/tracing.h */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM cfg802154
#if !defined(__RDEV_CFG802154_OPS_TRACE) || defined(TRACE_HEADER_MULTI_READ)
#define __RDEV_CFG802154_OPS_TRACE
#include <linux/tracepoint.h>
#include <net/cfg802154.h>
#define MAXNAME 32
#define WPAN_PHY_ENTRY __array(char, wpan_phy_name, MAXNAME)
#define WPAN_PHY_ASSIGN strlcpy(__entry->wpan_phy_name, \
wpan_phy_name(wpan_phy), \
MAXNAME)
#define WPAN_PHY_PR_FMT "%s"
#define WPAN_PHY_PR_ARG __entry->wpan_phy_name
#define WPAN_DEV_ENTRY __field(u32, identifier)
#define WPAN_DEV_ASSIGN (__entry->identifier) = (!IS_ERR_OR_NULL(wpan_dev) \
? wpan_dev->identifier : 0)
#define WPAN_DEV_PR_FMT "wpan_dev(%u)"
#define WPAN_DEV_PR_ARG (__entry->identifier)
#define WPAN_CCA_ENTRY __field(enum nl802154_cca_modes, cca_mode) \
__field(enum nl802154_cca_opts, cca_opt)
#define WPAN_CCA_ASSIGN \
do { \
(__entry->cca_mode) = cca->mode; \
(__entry->cca_opt) = cca->opt; \
} while (0)
#define WPAN_CCA_PR_FMT "cca_mode: %d, cca_opt: %d"
#define WPAN_CCA_PR_ARG __entry->cca_mode, __entry->cca_opt
#define BOOL_TO_STR(bo) (bo) ? "true" : "false"
/*************************************************************
* rdev->ops traces *
*************************************************************/
TRACE_EVENT(802154_rdev_add_virtual_intf,
TP_PROTO(struct wpan_phy *wpan_phy, char *name,
enum nl802154_iftype type, __le64 extended_addr),
TP_ARGS(wpan_phy, name, type, extended_addr),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
__string(vir_intf_name, name ? name : "<noname>")
__field(enum nl802154_iftype, type)
__field(__le64, extended_addr)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
__assign_str(vir_intf_name, name ? name : "<noname>");
__entry->type = type;
__entry->extended_addr = extended_addr;
),
TP_printk(WPAN_PHY_PR_FMT ", virtual intf name: %s, type: %d, ea %llx",
WPAN_PHY_PR_ARG, __get_str(vir_intf_name), __entry->type,
__le64_to_cpu(__entry->extended_addr))
);
TRACE_EVENT(802154_rdev_del_virtual_intf,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev),
TP_ARGS(wpan_phy, wpan_dev),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_DEV_ENTRY
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_DEV_ASSIGN;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT, WPAN_PHY_PR_ARG,
WPAN_DEV_PR_ARG)
);
TRACE_EVENT(802154_rdev_set_channel,
TP_PROTO(struct wpan_phy *wpan_phy, u8 page, u8 channel),
TP_ARGS(wpan_phy, page, channel),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
__field(u8, page)
__field(u8, channel)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
__entry->page = page;
__entry->channel = channel;
),
TP_printk(WPAN_PHY_PR_FMT ", page: %d, channel: %d", WPAN_PHY_PR_ARG,
__entry->page, __entry->channel)
);
TRACE_EVENT(802154_rdev_set_cca_mode,
TP_PROTO(struct wpan_phy *wpan_phy, const struct wpan_phy_cca *cca),
TP_ARGS(wpan_phy, cca),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_CCA_ENTRY
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_CCA_ASSIGN;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_CCA_PR_FMT, WPAN_PHY_PR_ARG,
WPAN_CCA_PR_ARG)
);
DECLARE_EVENT_CLASS(802154_le16_template,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
__le16 le16arg),
TP_ARGS(wpan_phy, wpan_dev, le16arg),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_DEV_ENTRY
__field(__le16, le16arg)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_DEV_ASSIGN;
__entry->le16arg = le16arg;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT ", pan id: 0x%04x",
WPAN_PHY_PR_ARG, WPAN_DEV_PR_ARG,
__le16_to_cpu(__entry->le16arg))
);
DEFINE_EVENT(802154_le16_template, 802154_rdev_set_pan_id,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
__le16 le16arg),
TP_ARGS(wpan_phy, wpan_dev, le16arg)
);
DEFINE_EVENT_PRINT(802154_le16_template, 802154_rdev_set_short_addr,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
__le16 le16arg),
TP_ARGS(wpan_phy, wpan_dev, le16arg),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT ", sa: 0x%04x",
WPAN_PHY_PR_ARG, WPAN_DEV_PR_ARG,
__le16_to_cpu(__entry->le16arg))
);
TRACE_EVENT(802154_rdev_set_backoff_exponent,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
u8 min_be, u8 max_be),
TP_ARGS(wpan_phy, wpan_dev, min_be, max_be),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_DEV_ENTRY
__field(u8, min_be)
__field(u8, max_be)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_DEV_ASSIGN;
__entry->min_be = min_be;
__entry->max_be = max_be;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
", min be: %d, max_be: %d", WPAN_PHY_PR_ARG,
WPAN_DEV_PR_ARG, __entry->min_be, __entry->max_be)
);
TRACE_EVENT(802154_rdev_set_csma_backoffs,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
u8 max_csma_backoffs),
TP_ARGS(wpan_phy, wpan_dev, max_csma_backoffs),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_DEV_ENTRY
__field(u8, max_csma_backoffs)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_DEV_ASSIGN;
__entry->max_csma_backoffs = max_csma_backoffs;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
", max csma backoffs: %d", WPAN_PHY_PR_ARG,
WPAN_DEV_PR_ARG, __entry->max_csma_backoffs)
);
TRACE_EVENT(802154_rdev_set_max_frame_retries,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
s8 max_frame_retries),
TP_ARGS(wpan_phy, wpan_dev, max_frame_retries),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_DEV_ENTRY
__field(s8, max_frame_retries)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_DEV_ASSIGN;
__entry->max_frame_retries = max_frame_retries;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
", max frame retries: %d", WPAN_PHY_PR_ARG,
WPAN_DEV_PR_ARG, __entry->max_frame_retries)
);
TRACE_EVENT(802154_rdev_set_lbt_mode,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
bool mode),
TP_ARGS(wpan_phy, wpan_dev, mode),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_DEV_ENTRY
__field(bool, mode)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_DEV_ASSIGN;
__entry->mode = mode;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
", lbt mode: %s", WPAN_PHY_PR_ARG,
WPAN_DEV_PR_ARG, BOOL_TO_STR(__entry->mode))
);
TRACE_EVENT(802154_rdev_return_int,
TP_PROTO(struct wpan_phy *wpan_phy, int ret),
TP_ARGS(wpan_phy, ret),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
__field(int, ret)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
__entry->ret = ret;
),
TP_printk(WPAN_PHY_PR_FMT ", returned: %d", WPAN_PHY_PR_ARG,
__entry->ret)
);
#endif /* !__RDEV_CFG802154_OPS_TRACE || TRACE_HEADER_MULTI_READ */
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE trace
#include <trace/define_trace.h>