[Intel-gfx] [PATCH v2] drm/i915: Mark i915.inject_load_failure as being hit

kbuild test robot lkp at intel.com
Thu Jun 7 11:17:09 UTC 2018


Hi Chris,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v4.17 next-20180606]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Mark-i915-inject_load_failure-as-being-hit/20180607-174849
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-x018-201822 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/resource_ext.h:17,
                    from include/linux/acpi.h:26,
                    from drivers/gpu/drm/i915/i915_drv.c:30:
>> include/linux/kern_levels.h:5:18: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
>> drivers/gpu/drm/i915/i915_drv.c:61:36: note: in expansion of macro 'KERN_ERR'
    static int i915_load_error_level = KERN_ERR;
                                       ^~~~~~~~
>> include/linux/kern_levels.h:5:18: error: initializer element is not computable at load time
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
>> drivers/gpu/drm/i915/i915_drv.c:61:36: note: in expansion of macro 'KERN_ERR'
    static int i915_load_error_level = KERN_ERR;
                                       ^~~~~~~~
   drivers/gpu/drm/i915/i915_drv.c: In function '__i915_inject_load_failure':
>> drivers/gpu/drm/i915/i915_drv.c:72:25: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
      i915_load_error_level = KERN_DEBUG;
                            ^
   drivers/gpu/drm/i915/i915_drv.c: In function 'i915_driver_load':
>> drivers/gpu/drm/i915/i915_drv.c:123:26: warning: passing argument 2 of '__i915_printk' makes pointer from integer without a cast [-Wint-conversion]
     __i915_printk(dev_priv, i915_load_error_level, fmt, ##__VA_ARGS__)
                             ^
>> drivers/gpu/drm/i915/i915_drv.c:1425:2: note: in expansion of macro 'i915_load_error'
     i915_load_error(dev_priv, "Device initialization failed (%d)\n", ret);
     ^~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_drv.c:87:1: note: expected 'const char *' but argument is of type 'int'
    __i915_printk(struct drm_i915_private *dev_priv, const char *level,
    ^~~~~~~~~~~~~
--
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/resource_ext.h:17,
                    from include/linux/acpi.h:26,
                    from drivers/gpu//drm/i915/i915_drv.c:30:
>> include/linux/kern_levels.h:5:18: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   drivers/gpu//drm/i915/i915_drv.c:61:36: note: in expansion of macro 'KERN_ERR'
    static int i915_load_error_level = KERN_ERR;
                                       ^~~~~~~~
>> include/linux/kern_levels.h:5:18: error: initializer element is not computable at load time
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   drivers/gpu//drm/i915/i915_drv.c:61:36: note: in expansion of macro 'KERN_ERR'
    static int i915_load_error_level = KERN_ERR;
                                       ^~~~~~~~
   drivers/gpu//drm/i915/i915_drv.c: In function '__i915_inject_load_failure':
   drivers/gpu//drm/i915/i915_drv.c:72:25: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
      i915_load_error_level = KERN_DEBUG;
                            ^
   drivers/gpu//drm/i915/i915_drv.c: In function 'i915_driver_load':
   drivers/gpu//drm/i915/i915_drv.c:123:26: warning: passing argument 2 of '__i915_printk' makes pointer from integer without a cast [-Wint-conversion]
     __i915_printk(dev_priv, i915_load_error_level, fmt, ##__VA_ARGS__)
                             ^
   drivers/gpu//drm/i915/i915_drv.c:1425:2: note: in expansion of macro 'i915_load_error'
     i915_load_error(dev_priv, "Device initialization failed (%d)\n", ret);
     ^~~~~~~~~~~~~~~
   drivers/gpu//drm/i915/i915_drv.c:87:1: note: expected 'const char *' but argument is of type 'int'
    __i915_printk(struct drm_i915_private *dev_priv, const char *level,
    ^~~~~~~~~~~~~

vim +/KERN_ERR +61 drivers/gpu/drm/i915/i915_drv.c

  > 30	#include <linux/acpi.h>
    31	#include <linux/device.h>
    32	#include <linux/oom.h>
    33	#include <linux/module.h>
    34	#include <linux/pci.h>
    35	#include <linux/pm.h>
    36	#include <linux/pm_runtime.h>
    37	#include <linux/pnp.h>
    38	#include <linux/slab.h>
    39	#include <linux/vgaarb.h>
    40	#include <linux/vga_switcheroo.h>
    41	#include <linux/vt.h>
    42	#include <acpi/video.h>
    43	
    44	#include <drm/drmP.h>
    45	#include <drm/drm_crtc_helper.h>
    46	#include <drm/drm_atomic_helper.h>
    47	#include <drm/i915_drm.h>
    48	
    49	#include "i915_drv.h"
    50	#include "i915_trace.h"
    51	#include "i915_pmu.h"
    52	#include "i915_query.h"
    53	#include "i915_vgpu.h"
    54	#include "intel_drv.h"
    55	#include "intel_uc.h"
    56	
    57	static struct drm_driver driver;
    58	
    59	#if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
    60	static unsigned int i915_load_fail_count;
  > 61	static int i915_load_error_level = KERN_ERR;
    62	
    63	bool __i915_inject_load_failure(const char *func, int line)
    64	{
    65		if (i915_load_fail_count >= i915_modparams.inject_load_failure)
    66			return false;
    67	
    68		if (++i915_load_fail_count == i915_modparams.inject_load_failure) {
    69			DRM_INFO("Injecting failure at checkpoint %u [%s:%d]\n",
    70				 i915_modparams.inject_load_failure, func, line);
    71			i915_modparams.inject_load_failure = 0;
  > 72			i915_load_error_level = KERN_DEBUG;
    73			return true;
    74		}
    75	
    76		return false;
    77	}
    78	#else
    79	#define i915_load_error_level KERN_ERR
    80	#endif
    81	
    82	#define FDO_BUG_URL "https://bugs.freedesktop.org/enter_bug.cgi?product=DRI"
    83	#define FDO_BUG_MSG "Please file a bug at " FDO_BUG_URL " against DRM/Intel " \
    84			    "providing the dmesg log by booting with drm.debug=0xf"
    85	
    86	void
    87	__i915_printk(struct drm_i915_private *dev_priv, const char *level,
    88		      const char *fmt, ...)
    89	{
    90		static bool shown_bug_once;
    91		struct device *kdev = dev_priv->drm.dev;
    92		bool is_error = level[1] <= KERN_ERR[1];
    93		bool is_debug = level[1] == KERN_DEBUG[1];
    94		struct va_format vaf;
    95		va_list args;
    96	
    97		if (is_debug && !(drm_debug & DRM_UT_DRIVER))
    98			return;
    99	
   100		va_start(args, fmt);
   101	
   102		vaf.fmt = fmt;
   103		vaf.va = &args;
   104	
   105		dev_printk(level, kdev, "[" DRM_NAME ":%ps] %pV",
   106			   __builtin_return_address(0), &vaf);
   107	
   108		if (is_error && !shown_bug_once) {
   109			/*
   110			 * Ask the user to file a bug report for the error, except
   111			 * if they may have caused the bug by fiddling with unsafe
   112			 * module parameters.
   113			 */
   114			if (!test_taint(TAINT_USER))
   115				dev_notice(kdev, "%s", FDO_BUG_MSG);
   116			shown_bug_once = true;
   117		}
   118	
   119		va_end(args);
   120	}
   121	
   122	#define i915_load_error(dev_priv, fmt, ...)				     \
 > 123		__i915_printk(dev_priv, i915_load_error_level, fmt, ##__VA_ARGS__)
   124	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 32976 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20180607/33305503/attachment-0001.gz>


More information about the Intel-gfx mailing list