Subject: linux-next: manual merge of the akpm-current tree with the rdma tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 6 May 2019 20:48:24 +1000

Hi all,

Today's linux-next merge of the akpm-current tree got a conflict in:

  lib/dynamic_debug.c

between commit:

  923abb9d797b ("RDMA/core: Introduce RDMA subsystem ibdev_* print functions")

from the rdma tree and commits:

  c20acb85ecb2 ("lib/dynamic_debug.c: introduce accessors for string members of struct _ddebug")
  686a19fd8999 ("lib/dynamic_debug.c: drop use of bitfields in struct _ddebug")
  8dc1ed58157d ("lib/dynamic_debug.c: introduce CONFIG_DYNAMIC_DEBUG_RELATIVE_POINTERS")

from the akpm-current tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc lib/dynamic_debug.c
index 8a16c2d498e9,58288560cc35..000000000000
--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@@ -37,8 -37,55 +37,57 @@@
  #include <linux/device.h>
  #include <linux/netdevice.h>
  
 +#include <rdma/ib_verbs.h>
 +
+ #ifdef CONFIG_DYNAMIC_DEBUG_RELATIVE_POINTERS
+ static inline const char *dd_modname(const struct _ddebug *dd)
+ {
+ 	return (const char *)dd + dd->modname_disp;
+ }
+ static inline const char *dd_function(const struct _ddebug *dd)
+ {
+ 	return (const char *)dd + dd->function_disp;
+ }
+ static inline const char *dd_filename(const struct _ddebug *dd)
+ {
+ 	return (const char *)dd + dd->filename_disp;
+ }
+ static inline const char *dd_format(const struct _ddebug *dd)
+ {
+ 	return (const char *)dd + dd->format_disp;
+ }
+ #else
+ static inline const char *dd_modname(const struct _ddebug *dd)
+ {
+ 	return dd->modname;
+ }
+ static inline const char *dd_function(const struct _ddebug *dd)
+ {
+ 	return dd->function;
+ }
+ static inline const char *dd_filename(const struct _ddebug *dd)
+ {
+ 	return dd->filename;
+ }
+ static inline const char *dd_format(const struct _ddebug *dd)
+ {
+ 	return dd->format;
+ }
+ #endif
+ 
+ static inline unsigned dd_lineno(const struct _ddebug *dd)
+ {
+ 	return dd->flags_lineno >> 8;
+ }
+ static inline unsigned dd_flags(const struct _ddebug *dd)
+ {
+ 	return dd->flags_lineno & 0xff;
+ }
+ static inline void dd_set_flags(struct _ddebug *dd, unsigned newflags)
+ {
+ 	dd->flags_lineno = (dd_lineno(dd) << 8) | newflags;
+ }
+ 
  extern struct _ddebug __start___verbose[];
  extern struct _ddebug __stop___verbose[];