All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Thomas Weißschuh" <linux@weissschuh.net>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [thomas-weissschuh:b4/sysfs-const-bin_attr-s390 6/7] drivers/s390/cio/chp.c:221:22: error: initialization of 'struct bin_attribute **' from incompatible pointer type 'const struct bin_attribute * const*'
Date: Fri, 13 Dec 2024 07:23:02 +0800	[thread overview]
Message-ID: <202412130735.ErgIPfC0-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/thomas.weissschuh/linux.git b4/sysfs-const-bin_attr-s390
head:   8ae8d30bac9709d7b1824ebe3a28cc6f3017cd79
commit: 269b60415552dd90b391ef9ca088b2ee00497c03 [6/7] s390/cio/chp: Constify 'struct bin_attribute'
config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20241213/202412130735.ErgIPfC0-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241213/202412130735.ErgIPfC0-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412130735.ErgIPfC0-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/kobject.h:20,
                    from include/linux/energy_model.h:7,
                    from include/linux/device.h:16,
                    from drivers/s390/cio/cio.h:6,
                    from drivers/s390/cio/chp.c:24:
>> drivers/s390/cio/chp.c:221:22: error: initialization of 'struct bin_attribute **' from incompatible pointer type 'const struct bin_attribute * const*' [-Wincompatible-pointer-types]
     221 | BIN_ATTRIBUTE_GROUPS(measurement);
         |                      ^~~~~~~~~~~
   include/linux/sysfs.h:296:22: note: in definition of macro 'BIN_ATTRIBUTE_GROUPS'
     296 |         .bin_attrs = _name##_attrs,                             \
         |                      ^~~~~
   drivers/s390/cio/chp.c:221:22: note: (near initialization for 'measurement_group.<anonymous>.bin_attrs')
     221 | BIN_ATTRIBUTE_GROUPS(measurement);
         |                      ^~~~~~~~~~~
   include/linux/sysfs.h:296:22: note: in definition of macro 'BIN_ATTRIBUTE_GROUPS'
     296 |         .bin_attrs = _name##_attrs,                             \
         |                      ^~~~~


vim +221 drivers/s390/cio/chp.c

e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   23  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  @24  #include "cio.h"
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   25  #include "css.h"
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   26  #include "ioasm.h"
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   27  #include "cio_debug.h"
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   28  #include "chp.h"
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   29  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   30  #define to_channelpath(device) container_of(device, struct channel_path, dev)
e5854a5839fa426 Peter Oberparleiter 2007-04-27   31  #define CHP_INFO_UPDATE_INTERVAL	1*HZ
e5854a5839fa426 Peter Oberparleiter 2007-04-27   32  
e5854a5839fa426 Peter Oberparleiter 2007-04-27   33  enum cfg_task_t {
e5854a5839fa426 Peter Oberparleiter 2007-04-27   34  	cfg_none,
e5854a5839fa426 Peter Oberparleiter 2007-04-27   35  	cfg_configure,
e5854a5839fa426 Peter Oberparleiter 2007-04-27   36  	cfg_deconfigure
e5854a5839fa426 Peter Oberparleiter 2007-04-27   37  };
e5854a5839fa426 Peter Oberparleiter 2007-04-27   38  
e5854a5839fa426 Peter Oberparleiter 2007-04-27   39  /* Map for pending configure tasks. */
e5854a5839fa426 Peter Oberparleiter 2007-04-27   40  static enum cfg_task_t chp_cfg_task[__MAX_CSSID + 1][__MAX_CHPID + 1];
837c5220557270e Sebastian Ott       2016-07-19   41  static DEFINE_SPINLOCK(cfg_lock);
e5854a5839fa426 Peter Oberparleiter 2007-04-27   42  
e5854a5839fa426 Peter Oberparleiter 2007-04-27   43  /* Map for channel-path status. */
e5854a5839fa426 Peter Oberparleiter 2007-04-27   44  static struct sclp_chp_info chp_info;
e5854a5839fa426 Peter Oberparleiter 2007-04-27   45  static DEFINE_MUTEX(info_lock);
e5854a5839fa426 Peter Oberparleiter 2007-04-27   46  
e5854a5839fa426 Peter Oberparleiter 2007-04-27   47  /* Time after which channel-path status may be outdated. */
e5854a5839fa426 Peter Oberparleiter 2007-04-27   48  static unsigned long chp_info_expires;
e5854a5839fa426 Peter Oberparleiter 2007-04-27   49  
e5854a5839fa426 Peter Oberparleiter 2007-04-27   50  static struct work_struct cfg_work;
e5854a5839fa426 Peter Oberparleiter 2007-04-27   51  
e5854a5839fa426 Peter Oberparleiter 2007-04-27   52  /* Wait queue for configure completion events. */
3081e6160565078 Vineeth Vijayan     2021-03-29   53  static DECLARE_WAIT_QUEUE_HEAD(cfg_wait_queue);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   54  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   55  /* Set vary state for given chpid. */
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   56  static void set_chp_logically_online(struct chp_id chpid, int onoff)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   57  {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   58  	chpid_to_chp(chpid)->state = onoff;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   59  }
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   60  
af901ca181d92aa André Goddard Rosa  2009-11-14   61  /* On success return 0 if channel-path is varied offline, 1 if it is varied
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   62   * online. Return -ENODEV if channel-path is not registered. */
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   63  int chp_get_status(struct chp_id chpid)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   64  {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   65  	return (chpid_to_chp(chpid) ? chpid_to_chp(chpid)->state : -ENODEV);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   66  }
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   67  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   68  /**
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   69   * chp_get_sch_opm - return opm for subchannel
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   70   * @sch: subchannel
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   71   *
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   72   * Calculate and return the operational path mask (opm) based on the chpids
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   73   * used by the subchannel and the status of the associated channel-paths.
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   74   */
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   75  u8 chp_get_sch_opm(struct subchannel *sch)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   76  {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   77  	struct chp_id chpid;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   78  	int opm;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   79  	int i;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   80  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   81  	opm = 0;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   82  	chp_id_init(&chpid);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   83  	for (i = 0; i < 8; i++) {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   84  		opm <<= 1;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   85  		chpid.id = sch->schib.pmcw.chpid[i];
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   86  		if (chp_get_status(chpid) != 0)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   87  			opm |= 1;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   88  	}
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   89  	return opm;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   90  }
44a1c19e3b47a7a Cornelia Huck       2008-07-14   91  EXPORT_SYMBOL_GPL(chp_get_sch_opm);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   92  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   93  /**
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   94   * chp_is_registered - check if a channel-path is registered
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   95   * @chpid: channel-path ID
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   96   *
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   97   * Return non-zero if a channel-path with the given chpid is registered,
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   98   * zero otherwise.
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27   99   */
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  100  int chp_is_registered(struct chp_id chpid)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  101  {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  102  	return chpid_to_chp(chpid) != NULL;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  103  }
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  104  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  105  /*
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  106   * Function: s390_vary_chpid
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  107   * Varies the specified chpid online or offline
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  108   */
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  109  static int s390_vary_chpid(struct chp_id chpid, int on)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  110  {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  111  	char dbf_text[15];
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  112  	int status;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  113  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  114  	sprintf(dbf_text, on?"varyon%x.%02x":"varyoff%x.%02x", chpid.cssid,
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  115  		chpid.id);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  116  	CIO_TRACE_EVENT(2, dbf_text);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  117  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  118  	status = chp_get_status(chpid);
c78aa6cbace4600 Michael Ernst       2008-07-14  119  	if (!on && !status)
c78aa6cbace4600 Michael Ernst       2008-07-14  120  		return 0;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  121  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  122  	set_chp_logically_online(chpid, on);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  123  	chsc_chp_vary(chpid, on);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  124  	return 0;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  125  }
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  126  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  127  /*
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  128   * Channel measurement related functions
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  129   */
b4691baaeef07bd Peter Oberparleiter 2024-03-26  130  static ssize_t measurement_chars_read(struct file *filp, struct kobject *kobj,
269b60415552dd9 Thomas Weißschuh    2024-12-11  131  				      const struct bin_attribute *bin_attr,
91a6902958f0523 Zhang Rui           2007-06-09  132  				      char *buf, loff_t off, size_t count)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  133  {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  134  	struct channel_path *chp;
364c85584e030f7 Heiko Carstens      2007-10-12  135  	struct device *device;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  136  
0d730b57b95f7e7 chenqiwu            2020-02-14  137  	device = kobj_to_dev(kobj);
364c85584e030f7 Heiko Carstens      2007-10-12  138  	chp = to_channelpath(device);
0d9bfe9123cfde5 Sebastian Ott       2016-01-25  139  	if (chp->cmg == -1)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  140  		return 0;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  141  
0d9bfe9123cfde5 Sebastian Ott       2016-01-25  142  	return memory_read_from_buffer(buf, count, &off, &chp->cmg_chars,
0d9bfe9123cfde5 Sebastian Ott       2016-01-25  143  				       sizeof(chp->cmg_chars));
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  144  }
269b60415552dd9 Thomas Weißschuh    2024-12-11  145  static const BIN_ATTR_ADMIN_RO(measurement_chars, sizeof(struct cmg_chars));
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  146  
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  147  static ssize_t measurement_chars_full_read(struct file *filp,
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  148  					   struct kobject *kobj,
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  149  					   struct bin_attribute *bin_attr,
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  150  					   char *buf, loff_t off, size_t count)
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  151  {
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  152  	struct channel_path *chp = to_channelpath(kobj_to_dev(kobj));
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  153  
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  154  	return memory_read_from_buffer(buf, count, &off, &chp->cmcb,
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  155  				       sizeof(chp->cmcb));
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  156  }
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  157  static BIN_ATTR_ADMIN_RO(measurement_chars_full, sizeof(struct cmg_cmcb));
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  158  
2dc8903af775ecd Peter Oberparleiter 2024-03-26  159  static ssize_t chp_measurement_copy_block(void *buf, loff_t off, size_t count,
2dc8903af775ecd Peter Oberparleiter 2024-03-26  160  					  struct kobject *kobj, bool extended)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  161  {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  162  	struct channel_path *chp;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  163  	struct channel_subsystem *css;
364c85584e030f7 Heiko Carstens      2007-10-12  164  	struct device *device;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  165  	unsigned int size;
2dc8903af775ecd Peter Oberparleiter 2024-03-26  166  	void *area, *entry;
2dc8903af775ecd Peter Oberparleiter 2024-03-26  167  	int id, idx;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  168  
0d730b57b95f7e7 chenqiwu            2020-02-14  169  	device = kobj_to_dev(kobj);
364c85584e030f7 Heiko Carstens      2007-10-12  170  	chp = to_channelpath(device);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  171  	css = to_css(chp->dev.parent);
2dc8903af775ecd Peter Oberparleiter 2024-03-26  172  	id = chp->chpid.id;
2dc8903af775ecd Peter Oberparleiter 2024-03-26  173  
2dc8903af775ecd Peter Oberparleiter 2024-03-26  174  	if (extended) {
2dc8903af775ecd Peter Oberparleiter 2024-03-26  175  		/* Check if extended measurement data is available. */
2dc8903af775ecd Peter Oberparleiter 2024-03-26  176  		if (!chp->extended)
2dc8903af775ecd Peter Oberparleiter 2024-03-26  177  			return 0;
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  178  
2dc8903af775ecd Peter Oberparleiter 2024-03-26  179  		size = sizeof(struct cmg_ext_entry);
2dc8903af775ecd Peter Oberparleiter 2024-03-26  180  		area = css->ecub[id / CSS_ECUES_PER_PAGE];
2dc8903af775ecd Peter Oberparleiter 2024-03-26  181  		idx = id % CSS_ECUES_PER_PAGE;
2dc8903af775ecd Peter Oberparleiter 2024-03-26  182  	} else {
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  183  		size = sizeof(struct cmg_entry);
2dc8903af775ecd Peter Oberparleiter 2024-03-26  184  		area = css->cub[id / CSS_CUES_PER_PAGE];
2dc8903af775ecd Peter Oberparleiter 2024-03-26  185  		idx = id % CSS_CUES_PER_PAGE;
2dc8903af775ecd Peter Oberparleiter 2024-03-26  186  	}
2dc8903af775ecd Peter Oberparleiter 2024-03-26  187  	entry = area + (idx * size);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  188  
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  189  	/* Only allow single reads. */
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  190  	if (off || count < size)
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  191  		return 0;
2dc8903af775ecd Peter Oberparleiter 2024-03-26  192  
2dc8903af775ecd Peter Oberparleiter 2024-03-26  193  	memcpy(buf, entry, size);
2dc8903af775ecd Peter Oberparleiter 2024-03-26  194  
2dc8903af775ecd Peter Oberparleiter 2024-03-26  195  	return size;
2dc8903af775ecd Peter Oberparleiter 2024-03-26  196  }
2dc8903af775ecd Peter Oberparleiter 2024-03-26  197  
2dc8903af775ecd Peter Oberparleiter 2024-03-26  198  static ssize_t measurement_read(struct file *filp, struct kobject *kobj,
269b60415552dd9 Thomas Weißschuh    2024-12-11  199  				const struct bin_attribute *bin_attr,
2dc8903af775ecd Peter Oberparleiter 2024-03-26  200  				char *buf, loff_t off, size_t count)
2dc8903af775ecd Peter Oberparleiter 2024-03-26  201  {
2dc8903af775ecd Peter Oberparleiter 2024-03-26  202  	return chp_measurement_copy_block(buf, off, count, kobj, false);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  203  }
269b60415552dd9 Thomas Weißschuh    2024-12-11  204  static const BIN_ATTR_ADMIN_RO(measurement, sizeof(struct cmg_entry));
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  205  
2dc8903af775ecd Peter Oberparleiter 2024-03-26  206  static ssize_t ext_measurement_read(struct file *filp, struct kobject *kobj,
269b60415552dd9 Thomas Weißschuh    2024-12-11  207  				    const struct bin_attribute *bin_attr,
2dc8903af775ecd Peter Oberparleiter 2024-03-26  208  				    char *buf, loff_t off, size_t count)
2dc8903af775ecd Peter Oberparleiter 2024-03-26  209  {
2dc8903af775ecd Peter Oberparleiter 2024-03-26  210  	return chp_measurement_copy_block(buf, off, count, kobj, true);
2dc8903af775ecd Peter Oberparleiter 2024-03-26  211  }
269b60415552dd9 Thomas Weißschuh    2024-12-11  212  static const BIN_ATTR_ADMIN_RO(ext_measurement, sizeof(struct cmg_ext_entry));
2dc8903af775ecd Peter Oberparleiter 2024-03-26  213  
269b60415552dd9 Thomas Weißschuh    2024-12-11  214  static const struct bin_attribute *const measurement_attrs[] = {
b4691baaeef07bd Peter Oberparleiter 2024-03-26  215  	&bin_attr_measurement_chars,
2f4b3b83b8c6e79 Peter Oberparleiter 2024-11-07  216  	&bin_attr_measurement_chars_full,
b4691baaeef07bd Peter Oberparleiter 2024-03-26  217  	&bin_attr_measurement,
2dc8903af775ecd Peter Oberparleiter 2024-03-26  218  	&bin_attr_ext_measurement,
b4691baaeef07bd Peter Oberparleiter 2024-03-26  219  	NULL,
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  220  };
b4691baaeef07bd Peter Oberparleiter 2024-03-26 @221  BIN_ATTRIBUTE_GROUPS(measurement);
e6b6e10ac1de116 Peter Oberparleiter 2007-04-27  222  

:::::: The code at line 221 was first introduced by commit
:::::: b4691baaeef07bdc4c3524a0702d7dd6899610b4 s390/cio: simplify measurement attribute registration

:::::: TO: Peter Oberparleiter <oberpar@linux.ibm.com>
:::::: CC: Alexander Gordeev <agordeev@linux.ibm.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2024-12-12 23:24 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202412130735.ErgIPfC0-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=linux@weissschuh.net \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.