All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
	kernel test robot <lkp@intel.com>
Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
	linux-kernel@vger.kernel.org,
	Herbert Xu <herbert@gondor.apana.org.au>
Subject: Re: drivers/crypto/talitos.c:3328:12: warning: stack frame size of 1040 bytes in function 'talitos_probe'
Date: Wed, 16 Jun 2021 15:43:22 -0700	[thread overview]
Message-ID: <a2dc22ce-30af-0cb0-130c-1078e7ef52a5@kernel.org> (raw)
In-Reply-To: <29dbb338-f42b-8665-a58f-5242df1b12f9@csgroup.eu>

On 6/9/2021 10:01 PM, Christophe Leroy wrote:
> 
> 
> Le 10/06/2021 à 01:50, kernel test robot a écrit :
>> tree:   
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head:   368094df48e680fa51cedb68537408cfa64b788e
>> commit: 43a942d27eaaf33bca560121cbe42f3637e92880 crypto: talitos - Fix 
>> ctr(aes) on SEC1
>> date:   4 months ago
>> config: powerpc-randconfig-r031-20210610 (attached as .config)
>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
>> d2012d965d60c3258b3a69d024491698f8aec386)
> 
> That's likely a CLANG issue.
> 
> With the same commit and the same .config, talitos_probe() has a frame 
> of 112 bytes when built with GCC 11
> 
> Christophe

It is probably the same root cause as 
https://github.com/ClangBuiltLinux/linux/issues/1379 because I can 
reproduce it with mpc83xx_defconfig + CONFIG_UBSAN=y + 
CONFIG_UBSAN_ALIGNMENT=y.

Cheers,
Nathan

>> reproduce (this is a W=1 build):
>>          wget 
>> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross 
>> -O ~/bin/make.cross
>>          chmod +x ~/bin/make.cross
>>          # install powerpc cross compiling tool for clang build
>>          # apt-get install binutils-powerpc-linux-gnu
>>          # 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=43a942d27eaaf33bca560121cbe42f3637e92880 
>>
>>          git remote add linus 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>          git fetch --no-tags linus master
>>          git checkout 43a942d27eaaf33bca560121cbe42f3637e92880
>>          # save the attached .config to linux build tree
>>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 
>> ARCH=powerpc
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All warnings (new ones prefixed by >>):
>>
>>     __do_insb
>>     ^
>>     arch/powerpc/include/asm/io.h:556:56: note: expanded from macro 
>> '__do_insb'
>>     #define __do_insb(p, b, n)      readsb((PCI_IO_ADDR)_IO_BASE+(p), 
>> (b), (n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:45:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
>>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:225:1: note: expanded from here
>>     __do_insw
>>     ^
>>     arch/powerpc/include/asm/io.h:557:56: note: expanded from macro 
>> '__do_insw'
>>     #define __do_insw(p, b, n)      readsw((PCI_IO_ADDR)_IO_BASE+(p), 
>> (b), (n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:47:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
>>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:227:1: note: expanded from here
>>     __do_insl
>>     ^
>>     arch/powerpc/include/asm/io.h:558:56: note: expanded from macro 
>> '__do_insl'
>>     #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), 
>> (b), (n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:49:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned 
>> long c),
>>     
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>>
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:229:1: note: expanded from here
>>     __do_outsb
>>     ^
>>     arch/powerpc/include/asm/io.h:559:58: note: expanded from macro 
>> '__do_outsb'
>>     #define __do_outsb(p, b, n)     
>> writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                             ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:51:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned 
>> long c),
>>     
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>>
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:231:1: note: expanded from here
>>     __do_outsw
>>     ^
>>     arch/powerpc/include/asm/io.h:560:58: note: expanded from macro 
>> '__do_outsw'
>>     #define __do_outsw(p, b, n)     
>> writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                             ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:53:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned 
>> long c),
>>     
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>>
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:233:1: note: expanded from here
>>     __do_outsl
>>     ^
>>     arch/powerpc/include/asm/io.h:561:58: note: expanded from macro 
>> '__do_outsl'
>>     #define __do_outsl(p, b, n)     
>> writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                             ~~~~~~~~~~~~~~~~~~~~~^
>>>> drivers/crypto/talitos.c:3328:12: warning: stack frame size of 1040 
>>>> bytes in function 'talitos_probe' [-Wframe-larger-than=]
>>     static int talitos_probe(struct platform_device *ofdev)
>>                ^
>>     8 warnings generated.
>>
>>
>> vim +/talitos_probe +3328 drivers/crypto/talitos.c
>>
>> c3e337f88a5b37 Kim Phillips     2011-11-21  3327
>> 1c48a5c93da631 Grant Likely     2011-02-17 @3328  static int 
>> talitos_probe(struct platform_device *ofdev)
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3329  {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3330      struct device 
>> *dev = &ofdev->dev;
>> 61c7a080a5a061 Grant Likely     2010-04-13  3331      struct 
>> device_node *np = ofdev->dev.of_node;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3332      struct 
>> talitos_private *priv;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3333      int i, err;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3334      int stride;
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3335      struct resource 
>> *res;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3336
>> 24b92ff276e8f6 LEROY Christophe 2017-10-06  3337      priv = 
>> devm_kzalloc(dev, sizeof(struct talitos_private), GFP_KERNEL);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3338      if (!priv)
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3339          return -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3340
>> f3de9cb1ca6ce3 Kevin Hao        2014-01-28  3341      
>> INIT_LIST_HEAD(&priv->alg_list);
>> f3de9cb1ca6ce3 Kevin Hao        2014-01-28  3342
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3343      
>> dev_set_drvdata(dev, priv);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3344
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3345      priv->ofdev = 
>> ofdev;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3346
>> 511d63cb193292 Horia Geanta     2012-03-30  3347      
>> spin_lock_init(&priv->reg_lock);
>> 511d63cb193292 Horia Geanta     2012-03-30  3348
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3349      res = 
>> platform_get_resource(ofdev, IORESOURCE_MEM, 0);
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3350      if (!res)
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3351          return -ENXIO;
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3352      priv->reg = 
>> devm_ioremap(dev, res->start, resource_size(res));
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3353      if (!priv->reg) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3354          dev_err(dev, 
>> "failed to of_iomap\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3355          err = -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3356          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3357      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3358
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3359      /* get SEC 
>> version capabilities from device tree */
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3360      
>> of_property_read_u32(np, "fsl,num-channels", &priv->num_channels);
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3361      
>> of_property_read_u32(np, "fsl,channel-fifo-len", &priv->chfifo_len);
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3362      
>> of_property_read_u32(np, "fsl,exec-units-mask", &priv->exec_units);
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3363      
>> of_property_read_u32(np, "fsl,descriptor-types-mask",
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3364                   
>> &priv->desc_types);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3365
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3366      if 
>> (!is_power_of_2(priv->num_channels) || !priv->chfifo_len ||
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3367          
>> !priv->exec_units || !priv->desc_types) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3368          dev_err(dev, 
>> "invalid property data in device tree node\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3369          err = -EINVAL;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3370          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3371      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3372
>> f3c85bc1bc72b4 Lee Nipper       2008-07-30  3373      if 
>> (of_device_is_compatible(np, "fsl,sec3.0"))
>> f3c85bc1bc72b4 Lee Nipper       2008-07-30  3374          
>> priv->features |= TALITOS_FTR_SRC_LINK_TBL_LEN_INCLUDES_EXTENT;
>> f3c85bc1bc72b4 Lee Nipper       2008-07-30  3375
>> fe5720e2b7c1e8 Kim Phillips     2008-10-12  3376      if 
>> (of_device_is_compatible(np, "fsl,sec2.1"))
>> 60f208d7836216 Kim Phillips     2010-05-19  3377          
>> priv->features |= TALITOS_FTR_HW_AUTH_CHECK |
>> 79b3a418e09024 Lee Nipper       2011-11-21  3378                    
>> TALITOS_FTR_SHA224_HWINIT |
>> 79b3a418e09024 Lee Nipper       2011-11-21  3379                    
>> TALITOS_FTR_HMAC_OK;
>> fe5720e2b7c1e8 Kim Phillips     2008-10-12  3380
>> 21590888490ce2 LEROY Christophe 2015-04-17  3381      if 
>> (of_device_is_compatible(np, "fsl,sec1.0"))
>> 21590888490ce2 LEROY Christophe 2015-04-17  3382          
>> priv->features |= TALITOS_FTR_SEC1;
>> 21590888490ce2 LEROY Christophe 2015-04-17  3383
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3384      if 
>> (of_device_is_compatible(np, "fsl,sec1.2")) {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3385          
>> priv->reg_deu = priv->reg + TALITOS12_DEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3386          
>> priv->reg_aesu = priv->reg + TALITOS12_AESU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3387          
>> priv->reg_mdeu = priv->reg + TALITOS12_MDEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3388          stride = 
>> TALITOS1_CH_STRIDE;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3389      } else if 
>> (of_device_is_compatible(np, "fsl,sec1.0")) {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3390          
>> priv->reg_deu = priv->reg + TALITOS10_DEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3391          
>> priv->reg_aesu = priv->reg + TALITOS10_AESU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3392          
>> priv->reg_mdeu = priv->reg + TALITOS10_MDEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3393          
>> priv->reg_afeu = priv->reg + TALITOS10_AFEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3394          
>> priv->reg_rngu = priv->reg + TALITOS10_RNGU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3395          
>> priv->reg_pkeu = priv->reg + TALITOS10_PKEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3396          stride = 
>> TALITOS1_CH_STRIDE;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3397      } else {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3398          
>> priv->reg_deu = priv->reg + TALITOS2_DEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3399          
>> priv->reg_aesu = priv->reg + TALITOS2_AESU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3400          
>> priv->reg_mdeu = priv->reg + TALITOS2_MDEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3401          
>> priv->reg_afeu = priv->reg + TALITOS2_AFEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3402          
>> priv->reg_rngu = priv->reg + TALITOS2_RNGU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3403          
>> priv->reg_pkeu = priv->reg + TALITOS2_PKEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3404          
>> priv->reg_keu = priv->reg + TALITOS2_KEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3405          
>> priv->reg_crcu = priv->reg + TALITOS2_CRCU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3406          stride = 
>> TALITOS2_CH_STRIDE;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3407      }
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3408
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3409      err = 
>> talitos_probe_irq(ofdev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3410      if (err)
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3411          goto err_out;
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3412
>> c8c74647b2945e Christophe Leroy 2019-06-17  3413      if 
>> (has_ftr_sec1(priv)) {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3414          if 
>> (priv->num_channels == 1)
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3415              
>> tasklet_init(&priv->done_task[0], talitos1_done_ch0,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3416                       
>> (unsigned long)dev);
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3417          else
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3418              
>> tasklet_init(&priv->done_task[0], talitos1_done_4ch,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3419                       
>> (unsigned long)dev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3420      } else {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3421          if 
>> (priv->irq[1]) {
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3422              
>> tasklet_init(&priv->done_task[0], talitos2_done_ch0_2,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3423                       
>> (unsigned long)dev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3424              
>> tasklet_init(&priv->done_task[1], talitos2_done_ch1_3,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3425                       
>> (unsigned long)dev);
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3426          } else if 
>> (priv->num_channels == 1) {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3427              
>> tasklet_init(&priv->done_task[0], talitos2_done_ch0,
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3428                       
>> (unsigned long)dev);
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3429          } else {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3430              
>> tasklet_init(&priv->done_task[0], talitos2_done_4ch,
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3431                       
>> (unsigned long)dev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3432          }
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3433      }
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3434
>> a86854d0c599b3 Kees Cook        2018-06-12  3435      priv->chan = 
>> devm_kcalloc(dev,
>> a86854d0c599b3 Kees Cook        2018-06-12  3436                    
>> priv->num_channels,
>> a86854d0c599b3 Kees Cook        2018-06-12  3437                    
>> sizeof(struct talitos_channel),
>> a86854d0c599b3 Kees Cook        2018-06-12  3438                    
>> GFP_KERNEL);
>> 4b992628812137 Kim Phillips     2009-08-13  3439      if (!priv->chan) {
>> 4b992628812137 Kim Phillips     2009-08-13  3440          dev_err(dev, 
>> "failed to allocate channel management space\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3441          err = -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3442          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3443      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3444
>> f641ddddc3ad13 Martin Hicks     2015-03-03  3445      priv->fifo_len = 
>> roundup_pow_of_two(priv->chfifo_len);
>> f641ddddc3ad13 Martin Hicks     2015-03-03  3446
>> c3e337f88a5b37 Kim Phillips     2011-11-21  3447      for (i = 0; i < 
>> priv->num_channels; i++) {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3448          
>> priv->chan[i].reg = priv->reg + stride * (i + 1);
>> 2cdba3cf6ffc1f Kim Phillips     2011-12-12  3449          if 
>> (!priv->irq[1] || !(i & 1))
>> c3e337f88a5b37 Kim Phillips     2011-11-21  3450              
>> priv->chan[i].reg += TALITOS_CH_BASE_OFFSET;
>> ad42d5fc853832 Kim Phillips     2011-11-21  3451
>> 4b992628812137 Kim Phillips     2009-08-13  3452          
>> spin_lock_init(&priv->chan[i].head_lock);
>> 4b992628812137 Kim Phillips     2009-08-13  3453          
>> spin_lock_init(&priv->chan[i].tail_lock);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3454
>> a86854d0c599b3 Kees Cook        2018-06-12  3455          
>> priv->chan[i].fifo = devm_kcalloc(dev,
>> a86854d0c599b3 Kees Cook        2018-06-12  
>> 3456                          priv->fifo_len,
>> a86854d0c599b3 Kees Cook        2018-06-12  
>> 3457                          sizeof(struct talitos_request),
>> a86854d0c599b3 Kees Cook        2018-06-12  
>> 3458                          GFP_KERNEL);
>> 4b992628812137 Kim Phillips     2009-08-13  3459          if 
>> (!priv->chan[i].fifo) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3460              
>> dev_err(dev, "failed to allocate request fifo %d\n", i);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3461              err = 
>> -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3462              goto 
>> err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3463          }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3464
>> 4b992628812137 Kim Phillips     2009-08-13  3465          
>> atomic_set(&priv->chan[i].submit_count,
>> 4b992628812137 Kim Phillips     2009-08-13  3466                 
>> -(priv->chfifo_len - 1));
>> f641ddddc3ad13 Martin Hicks     2015-03-03  3467      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3468
>> 81eb024c7e63f5 Kim Phillips     2009-08-13  3469      
>> dma_set_mask(dev, DMA_BIT_MASK(36));
>> 81eb024c7e63f5 Kim Phillips     2009-08-13  3470
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3471      /* reset and 
>> initialize the h/w */
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3472      err = 
>> init_device(dev);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3473      if (err) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3474          dev_err(dev, 
>> "failed to initialize device\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3475          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3476      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3477
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3478      /* register the 
>> RNG, if available */
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3479      if 
>> (hw_supports(dev, DESC_HDR_SEL0_RNG)) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3480          err = 
>> talitos_register_rng(dev);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3481          if (err) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3482              
>> dev_err(dev, "failed to register hwrng: %d\n", err);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3483              goto 
>> err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3484          } else
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3485              
>> dev_info(dev, "hwrng\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3486      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3487
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3488      /* register 
>> crypto algorithms the device supports */
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3489      for (i = 0; i < 
>> ARRAY_SIZE(driver_algs); i++) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3490          if 
>> (hw_supports(dev, driver_algs[i].desc_hdr_template)) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3491              struct 
>> talitos_crypto_alg *t_alg;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3492              struct 
>> crypto_alg *alg = NULL;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3493
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3494              t_alg = 
>> talitos_alg_alloc(dev, &driver_algs[i]);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3495              if 
>> (IS_ERR(t_alg)) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3496                  err 
>> = PTR_ERR(t_alg);
>> 0b2730d8d8b38e Kim Phillips     2011-12-12  3497                  if 
>> (err == -ENOTSUPP)
>> 79b3a418e09024 Lee Nipper       2011-11-21  3498                      
>> continue;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3499                  goto 
>> err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3500              }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3501
>> acbf7c627fb59d Lee Nipper       2010-05-19  3502              switch 
>> (t_alg->algt.type) {
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  3503              case 
>> CRYPTO_ALG_TYPE_SKCIPHER:
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  3504                  err 
>> = crypto_register_skcipher(
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  
>> 3505                          &t_alg->algt.alg.skcipher);
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  3506                  alg 
>> = &t_alg->algt.alg.skcipher.base;
>> acbf7c627fb59d Lee Nipper       2010-05-19  3507                  break;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3508
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3509              case 
>> CRYPTO_ALG_TYPE_AEAD:
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3510                  err 
>> = crypto_register_aead(
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3511                      
>> &t_alg->algt.alg.aead);
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3512                  alg 
>> = &t_alg->algt.alg.aead.base;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3513                  break;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3514
>> acbf7c627fb59d Lee Nipper       2010-05-19  3515              case 
>> CRYPTO_ALG_TYPE_AHASH:
>> acbf7c627fb59d Lee Nipper       2010-05-19  3516                  err 
>> = crypto_register_ahash(
>> acbf7c627fb59d Lee Nipper       2010-05-19  
>> 3517                          &t_alg->algt.alg.hash);
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3518                  alg 
>> = &t_alg->algt.alg.hash.halg.base;
>> acbf7c627fb59d Lee Nipper       2010-05-19  3519                  break;
>> acbf7c627fb59d Lee Nipper       2010-05-19  3520              }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3521              if (err) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3522                  
>> dev_err(dev, "%s alg registration failed\n",
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3523                      
>> alg->cra_driver_name);
>> 24b92ff276e8f6 LEROY Christophe 2017-10-06  3524                  
>> devm_kfree(dev, t_alg);
>> 991155bacb91c9 Horia Geanta     2013-03-20  3525              } else
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3526                  
>> list_add_tail(&t_alg->entry, &priv->alg_list);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3527          }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3528      }
>> 5b859b6ebb18b3 Kim Phillips     2011-11-21  3529      if 
>> (!list_empty(&priv->alg_list))
>> 5b859b6ebb18b3 Kim Phillips     2011-11-21  3530          
>> dev_info(dev, "%s algorithms registered in /proc/crypto\n",
>> 5b859b6ebb18b3 Kim Phillips     2011-11-21  3531               (char 
>> *)of_get_property(np, "compatible", NULL));
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3532
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3533      return 0;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3534
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3535  err_out:
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3536      
>> talitos_remove(ofdev);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3537
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3538      return err;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3539  }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3540
>>
>> :::::: The code at line 3328 was first introduced by commit
>> :::::: 1c48a5c93da63132b92c4bbcd18e690c51539df6 dt: Eliminate 
>> of_platform_{,un}register_driver
>>
>> :::::: TO: Grant Likely <grant.likely@secretlab.ca>
>> :::::: CC: Grant Likely <grant.likely@secretlab.ca>
>>
>> ---
>> 0-DAY CI Kernel Test Service, Intel Corporation
>> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
>>
> 


WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org>
To: kbuild-all@lists.01.org
Subject: Re: drivers/crypto/talitos.c:3328:12: warning: stack frame size of 1040 bytes in function 'talitos_probe'
Date: Wed, 16 Jun 2021 15:43:22 -0700	[thread overview]
Message-ID: <a2dc22ce-30af-0cb0-130c-1078e7ef52a5@kernel.org> (raw)
In-Reply-To: <29dbb338-f42b-8665-a58f-5242df1b12f9@csgroup.eu>

[-- Attachment #1: Type: text/plain, Size: 31655 bytes --]

On 6/9/2021 10:01 PM, Christophe Leroy wrote:
> 
> 
> Le 10/06/2021 à 01:50, kernel test robot a écrit :
>> tree:   
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head:   368094df48e680fa51cedb68537408cfa64b788e
>> commit: 43a942d27eaaf33bca560121cbe42f3637e92880 crypto: talitos - Fix 
>> ctr(aes) on SEC1
>> date:   4 months ago
>> config: powerpc-randconfig-r031-20210610 (attached as .config)
>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
>> d2012d965d60c3258b3a69d024491698f8aec386)
> 
> That's likely a CLANG issue.
> 
> With the same commit and the same .config, talitos_probe() has a frame 
> of 112 bytes when built with GCC 11
> 
> Christophe

It is probably the same root cause as 
https://github.com/ClangBuiltLinux/linux/issues/1379 because I can 
reproduce it with mpc83xx_defconfig + CONFIG_UBSAN=y + 
CONFIG_UBSAN_ALIGNMENT=y.

Cheers,
Nathan

>> reproduce (this is a W=1 build):
>>          wget 
>> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross 
>> -O ~/bin/make.cross
>>          chmod +x ~/bin/make.cross
>>          # install powerpc cross compiling tool for clang build
>>          # apt-get install binutils-powerpc-linux-gnu
>>          # 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=43a942d27eaaf33bca560121cbe42f3637e92880 
>>
>>          git remote add linus 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>          git fetch --no-tags linus master
>>          git checkout 43a942d27eaaf33bca560121cbe42f3637e92880
>>          # save the attached .config to linux build tree
>>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 
>> ARCH=powerpc
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All warnings (new ones prefixed by >>):
>>
>>     __do_insb
>>     ^
>>     arch/powerpc/include/asm/io.h:556:56: note: expanded from macro 
>> '__do_insb'
>>     #define __do_insb(p, b, n)      readsb((PCI_IO_ADDR)_IO_BASE+(p), 
>> (b), (n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:45:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
>>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:225:1: note: expanded from here
>>     __do_insw
>>     ^
>>     arch/powerpc/include/asm/io.h:557:56: note: expanded from macro 
>> '__do_insw'
>>     #define __do_insw(p, b, n)      readsw((PCI_IO_ADDR)_IO_BASE+(p), 
>> (b), (n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:47:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
>>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:227:1: note: expanded from here
>>     __do_insl
>>     ^
>>     arch/powerpc/include/asm/io.h:558:56: note: expanded from macro 
>> '__do_insl'
>>     #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), 
>> (b), (n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:49:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned 
>> long c),
>>     
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>>
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:229:1: note: expanded from here
>>     __do_outsb
>>     ^
>>     arch/powerpc/include/asm/io.h:559:58: note: expanded from macro 
>> '__do_outsb'
>>     #define __do_outsb(p, b, n)     
>> writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                             ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:51:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned 
>> long c),
>>     
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>>
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:231:1: note: expanded from here
>>     __do_outsw
>>     ^
>>     arch/powerpc/include/asm/io.h:560:58: note: expanded from macro 
>> '__do_outsw'
>>     #define __do_outsw(p, b, n)     
>> writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                             ~~~~~~~~~~~~~~~~~~~~~^
>>     In file included from drivers/crypto/talitos.c:19:
>>     In file included from include/linux/interrupt.h:11:
>>     In file included from include/linux/hardirq.h:10:
>>     In file included from arch/powerpc/include/asm/hardirq.h:6:
>>     In file included from include/linux/irq.h:20:
>>     In file included from include/linux/io.h:13:
>>     In file included from arch/powerpc/include/asm/io.h:619:
>>     arch/powerpc/include/asm/io-defs.h:53:1: warning: performing 
>> pointer arithmetic on a null pointer has undefined behavior 
>> [-Wnull-pointer-arithmetic]
>>     DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned 
>> long c),
>>     
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
>>
>>     arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 
>> 'DEF_PCI_AC_NORET'
>>                     __do_##name al;                                 \
>>                     ^~~~~~~~~~~~~~
>>     <scratch space>:233:1: note: expanded from here
>>     __do_outsl
>>     ^
>>     arch/powerpc/include/asm/io.h:561:58: note: expanded from macro 
>> '__do_outsl'
>>     #define __do_outsl(p, b, n)     
>> writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                             ~~~~~~~~~~~~~~~~~~~~~^
>>>> drivers/crypto/talitos.c:3328:12: warning: stack frame size of 1040 
>>>> bytes in function 'talitos_probe' [-Wframe-larger-than=]
>>     static int talitos_probe(struct platform_device *ofdev)
>>                ^
>>     8 warnings generated.
>>
>>
>> vim +/talitos_probe +3328 drivers/crypto/talitos.c
>>
>> c3e337f88a5b37 Kim Phillips     2011-11-21  3327
>> 1c48a5c93da631 Grant Likely     2011-02-17 @3328  static int 
>> talitos_probe(struct platform_device *ofdev)
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3329  {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3330      struct device 
>> *dev = &ofdev->dev;
>> 61c7a080a5a061 Grant Likely     2010-04-13  3331      struct 
>> device_node *np = ofdev->dev.of_node;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3332      struct 
>> talitos_private *priv;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3333      int i, err;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3334      int stride;
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3335      struct resource 
>> *res;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3336
>> 24b92ff276e8f6 LEROY Christophe 2017-10-06  3337      priv = 
>> devm_kzalloc(dev, sizeof(struct talitos_private), GFP_KERNEL);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3338      if (!priv)
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3339          return -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3340
>> f3de9cb1ca6ce3 Kevin Hao        2014-01-28  3341      
>> INIT_LIST_HEAD(&priv->alg_list);
>> f3de9cb1ca6ce3 Kevin Hao        2014-01-28  3342
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3343      
>> dev_set_drvdata(dev, priv);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3344
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3345      priv->ofdev = 
>> ofdev;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3346
>> 511d63cb193292 Horia Geanta     2012-03-30  3347      
>> spin_lock_init(&priv->reg_lock);
>> 511d63cb193292 Horia Geanta     2012-03-30  3348
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3349      res = 
>> platform_get_resource(ofdev, IORESOURCE_MEM, 0);
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3350      if (!res)
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3351          return -ENXIO;
>> fd5ea7f011932d LEROY Christophe 2017-10-06  3352      priv->reg = 
>> devm_ioremap(dev, res->start, resource_size(res));
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3353      if (!priv->reg) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3354          dev_err(dev, 
>> "failed to of_iomap\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3355          err = -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3356          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3357      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3358
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3359      /* get SEC 
>> version capabilities from device tree */
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3360      
>> of_property_read_u32(np, "fsl,num-channels", &priv->num_channels);
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3361      
>> of_property_read_u32(np, "fsl,channel-fifo-len", &priv->chfifo_len);
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3362      
>> of_property_read_u32(np, "fsl,exec-units-mask", &priv->exec_units);
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3363      
>> of_property_read_u32(np, "fsl,descriptor-types-mask",
>> fa14c6cfcecb00 LEROY Christophe 2017-10-06  3364                   
>> &priv->desc_types);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3365
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3366      if 
>> (!is_power_of_2(priv->num_channels) || !priv->chfifo_len ||
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3367          
>> !priv->exec_units || !priv->desc_types) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3368          dev_err(dev, 
>> "invalid property data in device tree node\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3369          err = -EINVAL;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3370          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3371      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3372
>> f3c85bc1bc72b4 Lee Nipper       2008-07-30  3373      if 
>> (of_device_is_compatible(np, "fsl,sec3.0"))
>> f3c85bc1bc72b4 Lee Nipper       2008-07-30  3374          
>> priv->features |= TALITOS_FTR_SRC_LINK_TBL_LEN_INCLUDES_EXTENT;
>> f3c85bc1bc72b4 Lee Nipper       2008-07-30  3375
>> fe5720e2b7c1e8 Kim Phillips     2008-10-12  3376      if 
>> (of_device_is_compatible(np, "fsl,sec2.1"))
>> 60f208d7836216 Kim Phillips     2010-05-19  3377          
>> priv->features |= TALITOS_FTR_HW_AUTH_CHECK |
>> 79b3a418e09024 Lee Nipper       2011-11-21  3378                    
>> TALITOS_FTR_SHA224_HWINIT |
>> 79b3a418e09024 Lee Nipper       2011-11-21  3379                    
>> TALITOS_FTR_HMAC_OK;
>> fe5720e2b7c1e8 Kim Phillips     2008-10-12  3380
>> 21590888490ce2 LEROY Christophe 2015-04-17  3381      if 
>> (of_device_is_compatible(np, "fsl,sec1.0"))
>> 21590888490ce2 LEROY Christophe 2015-04-17  3382          
>> priv->features |= TALITOS_FTR_SEC1;
>> 21590888490ce2 LEROY Christophe 2015-04-17  3383
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3384      if 
>> (of_device_is_compatible(np, "fsl,sec1.2")) {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3385          
>> priv->reg_deu = priv->reg + TALITOS12_DEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3386          
>> priv->reg_aesu = priv->reg + TALITOS12_AESU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3387          
>> priv->reg_mdeu = priv->reg + TALITOS12_MDEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3388          stride = 
>> TALITOS1_CH_STRIDE;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3389      } else if 
>> (of_device_is_compatible(np, "fsl,sec1.0")) {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3390          
>> priv->reg_deu = priv->reg + TALITOS10_DEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3391          
>> priv->reg_aesu = priv->reg + TALITOS10_AESU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3392          
>> priv->reg_mdeu = priv->reg + TALITOS10_MDEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3393          
>> priv->reg_afeu = priv->reg + TALITOS10_AFEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3394          
>> priv->reg_rngu = priv->reg + TALITOS10_RNGU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3395          
>> priv->reg_pkeu = priv->reg + TALITOS10_PKEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3396          stride = 
>> TALITOS1_CH_STRIDE;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3397      } else {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3398          
>> priv->reg_deu = priv->reg + TALITOS2_DEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3399          
>> priv->reg_aesu = priv->reg + TALITOS2_AESU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3400          
>> priv->reg_mdeu = priv->reg + TALITOS2_MDEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3401          
>> priv->reg_afeu = priv->reg + TALITOS2_AFEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3402          
>> priv->reg_rngu = priv->reg + TALITOS2_RNGU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3403          
>> priv->reg_pkeu = priv->reg + TALITOS2_PKEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3404          
>> priv->reg_keu = priv->reg + TALITOS2_KEU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3405          
>> priv->reg_crcu = priv->reg + TALITOS2_CRCU;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3406          stride = 
>> TALITOS2_CH_STRIDE;
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3407      }
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3408
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3409      err = 
>> talitos_probe_irq(ofdev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3410      if (err)
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3411          goto err_out;
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3412
>> c8c74647b2945e Christophe Leroy 2019-06-17  3413      if 
>> (has_ftr_sec1(priv)) {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3414          if 
>> (priv->num_channels == 1)
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3415              
>> tasklet_init(&priv->done_task[0], talitos1_done_ch0,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3416                       
>> (unsigned long)dev);
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3417          else
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3418              
>> tasklet_init(&priv->done_task[0], talitos1_done_4ch,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3419                       
>> (unsigned long)dev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3420      } else {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3421          if 
>> (priv->irq[1]) {
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3422              
>> tasklet_init(&priv->done_task[0], talitos2_done_ch0_2,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3423                       
>> (unsigned long)dev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3424              
>> tasklet_init(&priv->done_task[1], talitos2_done_ch1_3,
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3425                       
>> (unsigned long)dev);
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3426          } else if 
>> (priv->num_channels == 1) {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3427              
>> tasklet_init(&priv->done_task[0], talitos2_done_ch0,
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3428                       
>> (unsigned long)dev);
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3429          } else {
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3430              
>> tasklet_init(&priv->done_task[0], talitos2_done_4ch,
>> 9c02e2852fcabf LEROY Christophe 2017-10-06  3431                       
>> (unsigned long)dev);
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3432          }
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3433      }
>> dd3c0987f5426d LEROY Christophe 2015-04-17  3434
>> a86854d0c599b3 Kees Cook        2018-06-12  3435      priv->chan = 
>> devm_kcalloc(dev,
>> a86854d0c599b3 Kees Cook        2018-06-12  3436                    
>> priv->num_channels,
>> a86854d0c599b3 Kees Cook        2018-06-12  3437                    
>> sizeof(struct talitos_channel),
>> a86854d0c599b3 Kees Cook        2018-06-12  3438                    
>> GFP_KERNEL);
>> 4b992628812137 Kim Phillips     2009-08-13  3439      if (!priv->chan) {
>> 4b992628812137 Kim Phillips     2009-08-13  3440          dev_err(dev, 
>> "failed to allocate channel management space\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3441          err = -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3442          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3443      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3444
>> f641ddddc3ad13 Martin Hicks     2015-03-03  3445      priv->fifo_len = 
>> roundup_pow_of_two(priv->chfifo_len);
>> f641ddddc3ad13 Martin Hicks     2015-03-03  3446
>> c3e337f88a5b37 Kim Phillips     2011-11-21  3447      for (i = 0; i < 
>> priv->num_channels; i++) {
>> 5fa7fa147b1572 LEROY Christophe 2015-04-17  3448          
>> priv->chan[i].reg = priv->reg + stride * (i + 1);
>> 2cdba3cf6ffc1f Kim Phillips     2011-12-12  3449          if 
>> (!priv->irq[1] || !(i & 1))
>> c3e337f88a5b37 Kim Phillips     2011-11-21  3450              
>> priv->chan[i].reg += TALITOS_CH_BASE_OFFSET;
>> ad42d5fc853832 Kim Phillips     2011-11-21  3451
>> 4b992628812137 Kim Phillips     2009-08-13  3452          
>> spin_lock_init(&priv->chan[i].head_lock);
>> 4b992628812137 Kim Phillips     2009-08-13  3453          
>> spin_lock_init(&priv->chan[i].tail_lock);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3454
>> a86854d0c599b3 Kees Cook        2018-06-12  3455          
>> priv->chan[i].fifo = devm_kcalloc(dev,
>> a86854d0c599b3 Kees Cook        2018-06-12  
>> 3456                          priv->fifo_len,
>> a86854d0c599b3 Kees Cook        2018-06-12  
>> 3457                          sizeof(struct talitos_request),
>> a86854d0c599b3 Kees Cook        2018-06-12  
>> 3458                          GFP_KERNEL);
>> 4b992628812137 Kim Phillips     2009-08-13  3459          if 
>> (!priv->chan[i].fifo) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3460              
>> dev_err(dev, "failed to allocate request fifo %d\n", i);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3461              err = 
>> -ENOMEM;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3462              goto 
>> err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3463          }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3464
>> 4b992628812137 Kim Phillips     2009-08-13  3465          
>> atomic_set(&priv->chan[i].submit_count,
>> 4b992628812137 Kim Phillips     2009-08-13  3466                 
>> -(priv->chfifo_len - 1));
>> f641ddddc3ad13 Martin Hicks     2015-03-03  3467      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3468
>> 81eb024c7e63f5 Kim Phillips     2009-08-13  3469      
>> dma_set_mask(dev, DMA_BIT_MASK(36));
>> 81eb024c7e63f5 Kim Phillips     2009-08-13  3470
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3471      /* reset and 
>> initialize the h/w */
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3472      err = 
>> init_device(dev);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3473      if (err) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3474          dev_err(dev, 
>> "failed to initialize device\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3475          goto err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3476      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3477
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3478      /* register the 
>> RNG, if available */
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3479      if 
>> (hw_supports(dev, DESC_HDR_SEL0_RNG)) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3480          err = 
>> talitos_register_rng(dev);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3481          if (err) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3482              
>> dev_err(dev, "failed to register hwrng: %d\n", err);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3483              goto 
>> err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3484          } else
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3485              
>> dev_info(dev, "hwrng\n");
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3486      }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3487
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3488      /* register 
>> crypto algorithms the device supports */
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3489      for (i = 0; i < 
>> ARRAY_SIZE(driver_algs); i++) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3490          if 
>> (hw_supports(dev, driver_algs[i].desc_hdr_template)) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3491              struct 
>> talitos_crypto_alg *t_alg;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3492              struct 
>> crypto_alg *alg = NULL;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3493
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3494              t_alg = 
>> talitos_alg_alloc(dev, &driver_algs[i]);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3495              if 
>> (IS_ERR(t_alg)) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3496                  err 
>> = PTR_ERR(t_alg);
>> 0b2730d8d8b38e Kim Phillips     2011-12-12  3497                  if 
>> (err == -ENOTSUPP)
>> 79b3a418e09024 Lee Nipper       2011-11-21  3498                      
>> continue;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3499                  goto 
>> err_out;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3500              }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3501
>> acbf7c627fb59d Lee Nipper       2010-05-19  3502              switch 
>> (t_alg->algt.type) {
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  3503              case 
>> CRYPTO_ALG_TYPE_SKCIPHER:
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  3504                  err 
>> = crypto_register_skcipher(
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  
>> 3505                          &t_alg->algt.alg.skcipher);
>> 373960d794d2b0 Ard Biesheuvel   2019-11-09  3506                  alg 
>> = &t_alg->algt.alg.skcipher.base;
>> acbf7c627fb59d Lee Nipper       2010-05-19  3507                  break;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3508
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3509              case 
>> CRYPTO_ALG_TYPE_AEAD:
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3510                  err 
>> = crypto_register_aead(
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3511                      
>> &t_alg->algt.alg.aead);
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3512                  alg 
>> = &t_alg->algt.alg.aead.base;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3513                  break;
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3514
>> acbf7c627fb59d Lee Nipper       2010-05-19  3515              case 
>> CRYPTO_ALG_TYPE_AHASH:
>> acbf7c627fb59d Lee Nipper       2010-05-19  3516                  err 
>> = crypto_register_ahash(
>> acbf7c627fb59d Lee Nipper       2010-05-19  
>> 3517                          &t_alg->algt.alg.hash);
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3518                  alg 
>> = &t_alg->algt.alg.hash.halg.base;
>> acbf7c627fb59d Lee Nipper       2010-05-19  3519                  break;
>> acbf7c627fb59d Lee Nipper       2010-05-19  3520              }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3521              if (err) {
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3522                  
>> dev_err(dev, "%s alg registration failed\n",
>> aeb4c132f33d21 Herbert Xu       2015-07-30  3523                      
>> alg->cra_driver_name);
>> 24b92ff276e8f6 LEROY Christophe 2017-10-06  3524                  
>> devm_kfree(dev, t_alg);
>> 991155bacb91c9 Horia Geanta     2013-03-20  3525              } else
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3526                  
>> list_add_tail(&t_alg->entry, &priv->alg_list);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3527          }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3528      }
>> 5b859b6ebb18b3 Kim Phillips     2011-11-21  3529      if 
>> (!list_empty(&priv->alg_list))
>> 5b859b6ebb18b3 Kim Phillips     2011-11-21  3530          
>> dev_info(dev, "%s algorithms registered in /proc/crypto\n",
>> 5b859b6ebb18b3 Kim Phillips     2011-11-21  3531               (char 
>> *)of_get_property(np, "compatible", NULL));
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3532
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3533      return 0;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3534
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3535  err_out:
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3536      
>> talitos_remove(ofdev);
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3537
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3538      return err;
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3539  }
>> 9c4a79653b35ef Kim Phillips     2008-06-23  3540
>>
>> :::::: The code at line 3328 was first introduced by commit
>> :::::: 1c48a5c93da63132b92c4bbcd18e690c51539df6 dt: Eliminate 
>> of_platform_{,un}register_driver
>>
>> :::::: TO: Grant Likely <grant.likely@secretlab.ca>
>> :::::: CC: Grant Likely <grant.likely@secretlab.ca>
>>
>> ---
>> 0-DAY CI Kernel Test Service, Intel Corporation
>> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
>>
> 

  reply	other threads:[~2021-06-16 22:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-09 23:50 drivers/crypto/talitos.c:3328:12: warning: stack frame size of 1040 bytes in function 'talitos_probe' kernel test robot
2021-06-09 23:50 ` kernel test robot
2021-06-10  5:01 ` Christophe Leroy
2021-06-10  5:01   ` Christophe Leroy
2021-06-16 22:43   ` Nathan Chancellor [this message]
2021-06-16 22:43     ` Nathan Chancellor

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=a2dc22ce-30af-0cb0-130c-1078e7ef52a5@kernel.org \
    --to=nathan@kernel.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=clang-built-linux@googlegroups.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    /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.