https://github.com/torvalds/linux
Revision 23300f657594656e7ebac3130b43460ebc4381cc authored by Linus Torvalds on 19 February 2016, 16:40:05 UTC, committed by Linus Torvalds on 19 February 2016, 16:40:05 UTC
Pull arm64 fixes from Will Deacon: "Here are some more arm64 fixes for 4.5. This has mostly come from Yang Shi, who saw some issues under -rt that also affect mainline. The rest of it is pretty small, but still worth having. We've got an old issue outstanding with valid_user_regs which will likely wait until 4.6 (since it would really benefit from some time in -next) and another issue with kasan and idle which should be fixed next week. Apart from that, pretty quiet here (and still no sign of the THP issue reported on s390...) Summary: - Allow EFI stub to use strnlen(), which is required by recent libfdt - Avoid smp_processor_id() in preempt context during unwinding - Avoid false Kasan warnings during unwinding - Ensure early devices are picked up by the IOMMU DMA ops - Avoid rebuilding the kernel for the 'install' target - Run fixup handlers for alignment faults on userspace access" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: mm: allow the kernel to handle alignment faults on user accesses arm64: kbuild: make "make install" not depend on vmlinux arm64: dma-mapping: fix handling of devices registered before arch_initcall arm64/efi: Make strnlen() available to the EFI namespace arm/arm64: crypto: assure that ECB modes don't require an IV arm64: make irq_stack_ptr more robust arm64: debug: re-enable irqs before sending breakpoint SIGTRAP arm64: disable kasan when accessing frame->fp in unwind_frame
Tip revision: 23300f657594656e7ebac3130b43460ebc4381cc authored by Linus Torvalds on 19 February 2016, 16:40:05 UTC
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Tip revision: 23300f6
trace.h
/* Based on net/wireless/trace.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 *
*************************************************************/
DECLARE_EVENT_CLASS(wpan_phy_only_evt,
TP_PROTO(struct wpan_phy *wpan_phy),
TP_ARGS(wpan_phy),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
),
TP_printk(WPAN_PHY_PR_FMT, WPAN_PHY_PR_ARG)
);
DEFINE_EVENT(wpan_phy_only_evt, 802154_rdev_suspend,
TP_PROTO(struct wpan_phy *wpan_phy),
TP_ARGS(wpan_phy)
);
DEFINE_EVENT(wpan_phy_only_evt, 802154_rdev_resume,
TP_PROTO(struct wpan_phy *wpan_phy),
TP_ARGS(wpan_phy)
);
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, extended addr: 0x%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_tx_power,
TP_PROTO(struct wpan_phy *wpan_phy, s32 power),
TP_ARGS(wpan_phy, power),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
__field(s32, power)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
__entry->power = power;
),
TP_printk(WPAN_PHY_PR_FMT ", mbm: %d", WPAN_PHY_PR_ARG,
__entry->power)
);
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)
);
TRACE_EVENT(802154_rdev_set_cca_ed_level,
TP_PROTO(struct wpan_phy *wpan_phy, s32 ed_level),
TP_ARGS(wpan_phy, ed_level),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
__field(s32, ed_level)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
__entry->ed_level = ed_level;
),
TP_printk(WPAN_PHY_PR_FMT ", ed level: %d", WPAN_PHY_PR_ARG,
__entry->ed_level)
);
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 ", short addr: 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_set_ackreq_default,
TP_PROTO(struct wpan_phy *wpan_phy, struct wpan_dev *wpan_dev,
bool ackreq),
TP_ARGS(wpan_phy, wpan_dev, ackreq),
TP_STRUCT__entry(
WPAN_PHY_ENTRY
WPAN_DEV_ENTRY
__field(bool, ackreq)
),
TP_fast_assign(
WPAN_PHY_ASSIGN;
WPAN_DEV_ASSIGN;
__entry->ackreq = ackreq;
),
TP_printk(WPAN_PHY_PR_FMT ", " WPAN_DEV_PR_FMT
", ackreq default: %s", WPAN_PHY_PR_ARG,
WPAN_DEV_PR_ARG, BOOL_TO_STR(__entry->ackreq))
);
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>
Computing file changes ...