* [linux-next:master 6112/15890] drivers/input/keyboard/gpio_keys.c:766:12: warning: stack frame size of 2064 bytes in function 'gpio_keys_probe'
@ 2021-05-05 6:51 ` kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-05-05 6:51 UTC (permalink / raw)
To: Paul Cercueil
Cc: kbuild-all, clang-built-linux, Linux Memory Management List,
Dmitry Torokhov
[-- Attachment #1: Type: text/plain, Size: 10148 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 29955e0289b3255c5f609a7564a0f0bb4ae35c7a
commit: 019002f20cb5b9f78d39360aff244265d035e08a [6112/15890] Input: gpio-keys - use hrtimer for release timer
config: powerpc-randconfig-r016-20210505 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
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/next/linux-next.git/commit/?id=019002f20cb5b9f78d39360aff244265d035e08a
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 019002f20cb5b9f78d39360aff244265d035e08a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 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 >>):
>> drivers/input/keyboard/gpio_keys.c:766:12: warning: stack frame size of 2064 bytes in function 'gpio_keys_probe' [-Wframe-larger-than=]
static int gpio_keys_probe(struct platform_device *pdev)
^
1 warning generated.
vim +/gpio_keys_probe +766 drivers/input/keyboard/gpio_keys.c
fd05d08920b54d David Jander 2011-07-09 765
5298cc4cc753bb Bill Pemberton 2012-11-23 @766 static int gpio_keys_probe(struct platform_device *pdev)
78a56aab11234e Phil Blundell 2007-01-18 767 {
db19fd8b3a3e19 Ben Dooks 2009-11-10 768 struct device *dev = &pdev->dev;
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 769 const struct gpio_keys_platform_data *pdata = dev_get_platdata(dev);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 770 struct fwnode_handle *child = NULL;
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 771 struct gpio_keys_drvdata *ddata;
78a56aab11234e Phil Blundell 2007-01-18 772 struct input_dev *input;
78a56aab11234e Phil Blundell 2007-01-18 773 int i, error;
e15b02138b89d7 Anti Sullin 2007-09-26 774 int wakeup = 0;
78a56aab11234e Phil Blundell 2007-01-18 775
fd05d08920b54d David Jander 2011-07-09 776 if (!pdata) {
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 777 pdata = gpio_keys_get_devtree_pdata(dev);
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 778 if (IS_ERR(pdata))
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 779 return PTR_ERR(pdata);
fd05d08920b54d David Jander 2011-07-09 780 }
fd05d08920b54d David Jander 2011-07-09 781
002cdb95dc3989 Gustavo A. R. Silva 2019-06-18 782 ddata = devm_kzalloc(dev, struct_size(ddata, data, pdata->nbuttons),
002cdb95dc3989 Gustavo A. R. Silva 2019-06-18 783 GFP_KERNEL);
5d422f2e78e198 Andy Shevchenko 2014-04-25 784 if (!ddata) {
db19fd8b3a3e19 Ben Dooks 2009-11-10 785 dev_err(dev, "failed to allocate state\n");
5d422f2e78e198 Andy Shevchenko 2014-04-25 786 return -ENOMEM;
5d422f2e78e198 Andy Shevchenko 2014-04-25 787 }
5d422f2e78e198 Andy Shevchenko 2014-04-25 788
83e4947a569f4d Hans de Goede 2017-01-21 789 ddata->keymap = devm_kcalloc(dev,
83e4947a569f4d Hans de Goede 2017-01-21 790 pdata->nbuttons, sizeof(ddata->keymap[0]),
83e4947a569f4d Hans de Goede 2017-01-21 791 GFP_KERNEL);
83e4947a569f4d Hans de Goede 2017-01-21 792 if (!ddata->keymap)
83e4947a569f4d Hans de Goede 2017-01-21 793 return -ENOMEM;
83e4947a569f4d Hans de Goede 2017-01-21 794
5d422f2e78e198 Andy Shevchenko 2014-04-25 795 input = devm_input_allocate_device(dev);
5d422f2e78e198 Andy Shevchenko 2014-04-25 796 if (!input) {
5d422f2e78e198 Andy Shevchenko 2014-04-25 797 dev_err(dev, "failed to allocate input device\n");
5d422f2e78e198 Andy Shevchenko 2014-04-25 798 return -ENOMEM;
a33466e31213cd Dmitry Baryshkov 2008-05-07 799 }
78a56aab11234e Phil Blundell 2007-01-18 800
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 801 ddata->pdata = pdata;
9e3af04f878731 Mika Westerberg 2010-02-04 802 ddata->input = input;
9e3af04f878731 Mika Westerberg 2010-02-04 803 mutex_init(&ddata->disable_lock);
9e3af04f878731 Mika Westerberg 2010-02-04 804
a33466e31213cd Dmitry Baryshkov 2008-05-07 805 platform_set_drvdata(pdev, ddata);
173bdd746b1282 Shubhrajyoti D 2010-08-03 806 input_set_drvdata(input, ddata);
78a56aab11234e Phil Blundell 2007-01-18 807
467112777c462a Alexander Stein 2011-04-11 808 input->name = pdata->name ? : pdev->name;
78a56aab11234e Phil Blundell 2007-01-18 809 input->phys = "gpio-keys/input0";
b4e66e7d1948e0 Guenter Roeck 2017-01-21 810 input->dev.parent = dev;
173bdd746b1282 Shubhrajyoti D 2010-08-03 811 input->open = gpio_keys_open;
173bdd746b1282 Shubhrajyoti D 2010-08-03 812 input->close = gpio_keys_close;
78a56aab11234e Phil Blundell 2007-01-18 813
78a56aab11234e Phil Blundell 2007-01-18 814 input->id.bustype = BUS_HOST;
78a56aab11234e Phil Blundell 2007-01-18 815 input->id.vendor = 0x0001;
78a56aab11234e Phil Blundell 2007-01-18 816 input->id.product = 0x0001;
78a56aab11234e Phil Blundell 2007-01-18 817 input->id.version = 0x0100;
78a56aab11234e Phil Blundell 2007-01-18 818
83e4947a569f4d Hans de Goede 2017-01-21 819 input->keycode = ddata->keymap;
83e4947a569f4d Hans de Goede 2017-01-21 820 input->keycodesize = sizeof(ddata->keymap[0]);
83e4947a569f4d Hans de Goede 2017-01-21 821 input->keycodemax = pdata->nbuttons;
83e4947a569f4d Hans de Goede 2017-01-21 822
b67b4b117746ae Dominic Curran 2008-10-27 823 /* Enable auto repeat feature of Linux input subsystem */
b67b4b117746ae Dominic Curran 2008-10-27 824 if (pdata->rep)
b67b4b117746ae Dominic Curran 2008-10-27 825 __set_bit(EV_REP, input->evbit);
b67b4b117746ae Dominic Curran 2008-10-27 826
78a56aab11234e Phil Blundell 2007-01-18 827 for (i = 0; i < pdata->nbuttons; i++) {
d9080921aa32c7 Dmitry Torokhov 2012-03-18 828 const struct gpio_keys_button *button = &pdata->buttons[i];
6a2e391190b17f Herbert Valerio Riedel 2007-11-21 829
700a38b27eefc5 Dmitry Torokhov 2016-10-19 830 if (!dev_get_platdata(dev)) {
b4e66e7d1948e0 Guenter Roeck 2017-01-21 831 child = device_get_next_child_node(dev, child);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 832 if (!child) {
b4e66e7d1948e0 Guenter Roeck 2017-01-21 833 dev_err(dev,
700a38b27eefc5 Dmitry Torokhov 2016-10-19 834 "missing child device node for entry %d\n",
700a38b27eefc5 Dmitry Torokhov 2016-10-19 835 i);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 836 return -EINVAL;
700a38b27eefc5 Dmitry Torokhov 2016-10-19 837 }
700a38b27eefc5 Dmitry Torokhov 2016-10-19 838 }
700a38b27eefc5 Dmitry Torokhov 2016-10-19 839
83e4947a569f4d Hans de Goede 2017-01-21 840 error = gpio_keys_setup_key(pdev, input, ddata,
83e4947a569f4d Hans de Goede 2017-01-21 841 button, i, child);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 842 if (error) {
700a38b27eefc5 Dmitry Torokhov 2016-10-19 843 fwnode_handle_put(child);
27245519f0de50 Alexander Shiyan 2014-04-28 844 return error;
700a38b27eefc5 Dmitry Torokhov 2016-10-19 845 }
84767d00a8fd54 Roman Moravcik 2007-05-01 846
e15b02138b89d7 Anti Sullin 2007-09-26 847 if (button->wakeup)
e15b02138b89d7 Anti Sullin 2007-09-26 848 wakeup = 1;
78a56aab11234e Phil Blundell 2007-01-18 849 }
78a56aab11234e Phil Blundell 2007-01-18 850
700a38b27eefc5 Dmitry Torokhov 2016-10-19 851 fwnode_handle_put(child);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 852
9e3af04f878731 Mika Westerberg 2010-02-04 853 error = input_register_device(input);
9e3af04f878731 Mika Westerberg 2010-02-04 854 if (error) {
9e3af04f878731 Mika Westerberg 2010-02-04 855 dev_err(dev, "Unable to register input device, error: %d\n",
9e3af04f878731 Mika Westerberg 2010-02-04 856 error);
78a56aab11234e Phil Blundell 2007-01-18 857 return error;
78a56aab11234e Phil Blundell 2007-01-18 858 }
78a56aab11234e Phil Blundell 2007-01-18 859
3184125ee2da70 Dmitry Torokhov 2017-07-19 860 device_init_wakeup(dev, wakeup);
9e3af04f878731 Mika Westerberg 2010-02-04 861
78a56aab11234e Phil Blundell 2007-01-18 862 return 0;
78a56aab11234e Phil Blundell 2007-01-18 863 }
78a56aab11234e Phil Blundell 2007-01-18 864
:::::: The code at line 766 was first introduced by commit
:::::: 5298cc4cc753bbe4c530b41341834f6ef3344d0d Input: remove use of __devinit
:::::: TO: Bill Pemberton <wfp5p@virginia.edu>
:::::: CC: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 21795 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* [linux-next:master 6112/15890] drivers/input/keyboard/gpio_keys.c:766:12: warning: stack frame size of 2064 bytes in function 'gpio_keys_probe'
@ 2021-05-05 6:51 ` kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-05-05 6:51 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 10290 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 29955e0289b3255c5f609a7564a0f0bb4ae35c7a
commit: 019002f20cb5b9f78d39360aff244265d035e08a [6112/15890] Input: gpio-keys - use hrtimer for release timer
config: powerpc-randconfig-r016-20210505 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439)
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/next/linux-next.git/commit/?id=019002f20cb5b9f78d39360aff244265d035e08a
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 019002f20cb5b9f78d39360aff244265d035e08a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 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 >>):
>> drivers/input/keyboard/gpio_keys.c:766:12: warning: stack frame size of 2064 bytes in function 'gpio_keys_probe' [-Wframe-larger-than=]
static int gpio_keys_probe(struct platform_device *pdev)
^
1 warning generated.
vim +/gpio_keys_probe +766 drivers/input/keyboard/gpio_keys.c
fd05d08920b54d David Jander 2011-07-09 765
5298cc4cc753bb Bill Pemberton 2012-11-23 @766 static int gpio_keys_probe(struct platform_device *pdev)
78a56aab11234e Phil Blundell 2007-01-18 767 {
db19fd8b3a3e19 Ben Dooks 2009-11-10 768 struct device *dev = &pdev->dev;
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 769 const struct gpio_keys_platform_data *pdata = dev_get_platdata(dev);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 770 struct fwnode_handle *child = NULL;
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 771 struct gpio_keys_drvdata *ddata;
78a56aab11234e Phil Blundell 2007-01-18 772 struct input_dev *input;
78a56aab11234e Phil Blundell 2007-01-18 773 int i, error;
e15b02138b89d7 Anti Sullin 2007-09-26 774 int wakeup = 0;
78a56aab11234e Phil Blundell 2007-01-18 775
fd05d08920b54d David Jander 2011-07-09 776 if (!pdata) {
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 777 pdata = gpio_keys_get_devtree_pdata(dev);
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 778 if (IS_ERR(pdata))
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 779 return PTR_ERR(pdata);
fd05d08920b54d David Jander 2011-07-09 780 }
fd05d08920b54d David Jander 2011-07-09 781
002cdb95dc3989 Gustavo A. R. Silva 2019-06-18 782 ddata = devm_kzalloc(dev, struct_size(ddata, data, pdata->nbuttons),
002cdb95dc3989 Gustavo A. R. Silva 2019-06-18 783 GFP_KERNEL);
5d422f2e78e198 Andy Shevchenko 2014-04-25 784 if (!ddata) {
db19fd8b3a3e19 Ben Dooks 2009-11-10 785 dev_err(dev, "failed to allocate state\n");
5d422f2e78e198 Andy Shevchenko 2014-04-25 786 return -ENOMEM;
5d422f2e78e198 Andy Shevchenko 2014-04-25 787 }
5d422f2e78e198 Andy Shevchenko 2014-04-25 788
83e4947a569f4d Hans de Goede 2017-01-21 789 ddata->keymap = devm_kcalloc(dev,
83e4947a569f4d Hans de Goede 2017-01-21 790 pdata->nbuttons, sizeof(ddata->keymap[0]),
83e4947a569f4d Hans de Goede 2017-01-21 791 GFP_KERNEL);
83e4947a569f4d Hans de Goede 2017-01-21 792 if (!ddata->keymap)
83e4947a569f4d Hans de Goede 2017-01-21 793 return -ENOMEM;
83e4947a569f4d Hans de Goede 2017-01-21 794
5d422f2e78e198 Andy Shevchenko 2014-04-25 795 input = devm_input_allocate_device(dev);
5d422f2e78e198 Andy Shevchenko 2014-04-25 796 if (!input) {
5d422f2e78e198 Andy Shevchenko 2014-04-25 797 dev_err(dev, "failed to allocate input device\n");
5d422f2e78e198 Andy Shevchenko 2014-04-25 798 return -ENOMEM;
a33466e31213cd Dmitry Baryshkov 2008-05-07 799 }
78a56aab11234e Phil Blundell 2007-01-18 800
219edc71784ff8 Alexandre Pereira da Silva 2012-07-29 801 ddata->pdata = pdata;
9e3af04f878731 Mika Westerberg 2010-02-04 802 ddata->input = input;
9e3af04f878731 Mika Westerberg 2010-02-04 803 mutex_init(&ddata->disable_lock);
9e3af04f878731 Mika Westerberg 2010-02-04 804
a33466e31213cd Dmitry Baryshkov 2008-05-07 805 platform_set_drvdata(pdev, ddata);
173bdd746b1282 Shubhrajyoti D 2010-08-03 806 input_set_drvdata(input, ddata);
78a56aab11234e Phil Blundell 2007-01-18 807
467112777c462a Alexander Stein 2011-04-11 808 input->name = pdata->name ? : pdev->name;
78a56aab11234e Phil Blundell 2007-01-18 809 input->phys = "gpio-keys/input0";
b4e66e7d1948e0 Guenter Roeck 2017-01-21 810 input->dev.parent = dev;
173bdd746b1282 Shubhrajyoti D 2010-08-03 811 input->open = gpio_keys_open;
173bdd746b1282 Shubhrajyoti D 2010-08-03 812 input->close = gpio_keys_close;
78a56aab11234e Phil Blundell 2007-01-18 813
78a56aab11234e Phil Blundell 2007-01-18 814 input->id.bustype = BUS_HOST;
78a56aab11234e Phil Blundell 2007-01-18 815 input->id.vendor = 0x0001;
78a56aab11234e Phil Blundell 2007-01-18 816 input->id.product = 0x0001;
78a56aab11234e Phil Blundell 2007-01-18 817 input->id.version = 0x0100;
78a56aab11234e Phil Blundell 2007-01-18 818
83e4947a569f4d Hans de Goede 2017-01-21 819 input->keycode = ddata->keymap;
83e4947a569f4d Hans de Goede 2017-01-21 820 input->keycodesize = sizeof(ddata->keymap[0]);
83e4947a569f4d Hans de Goede 2017-01-21 821 input->keycodemax = pdata->nbuttons;
83e4947a569f4d Hans de Goede 2017-01-21 822
b67b4b117746ae Dominic Curran 2008-10-27 823 /* Enable auto repeat feature of Linux input subsystem */
b67b4b117746ae Dominic Curran 2008-10-27 824 if (pdata->rep)
b67b4b117746ae Dominic Curran 2008-10-27 825 __set_bit(EV_REP, input->evbit);
b67b4b117746ae Dominic Curran 2008-10-27 826
78a56aab11234e Phil Blundell 2007-01-18 827 for (i = 0; i < pdata->nbuttons; i++) {
d9080921aa32c7 Dmitry Torokhov 2012-03-18 828 const struct gpio_keys_button *button = &pdata->buttons[i];
6a2e391190b17f Herbert Valerio Riedel 2007-11-21 829
700a38b27eefc5 Dmitry Torokhov 2016-10-19 830 if (!dev_get_platdata(dev)) {
b4e66e7d1948e0 Guenter Roeck 2017-01-21 831 child = device_get_next_child_node(dev, child);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 832 if (!child) {
b4e66e7d1948e0 Guenter Roeck 2017-01-21 833 dev_err(dev,
700a38b27eefc5 Dmitry Torokhov 2016-10-19 834 "missing child device node for entry %d\n",
700a38b27eefc5 Dmitry Torokhov 2016-10-19 835 i);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 836 return -EINVAL;
700a38b27eefc5 Dmitry Torokhov 2016-10-19 837 }
700a38b27eefc5 Dmitry Torokhov 2016-10-19 838 }
700a38b27eefc5 Dmitry Torokhov 2016-10-19 839
83e4947a569f4d Hans de Goede 2017-01-21 840 error = gpio_keys_setup_key(pdev, input, ddata,
83e4947a569f4d Hans de Goede 2017-01-21 841 button, i, child);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 842 if (error) {
700a38b27eefc5 Dmitry Torokhov 2016-10-19 843 fwnode_handle_put(child);
27245519f0de50 Alexander Shiyan 2014-04-28 844 return error;
700a38b27eefc5 Dmitry Torokhov 2016-10-19 845 }
84767d00a8fd54 Roman Moravcik 2007-05-01 846
e15b02138b89d7 Anti Sullin 2007-09-26 847 if (button->wakeup)
e15b02138b89d7 Anti Sullin 2007-09-26 848 wakeup = 1;
78a56aab11234e Phil Blundell 2007-01-18 849 }
78a56aab11234e Phil Blundell 2007-01-18 850
700a38b27eefc5 Dmitry Torokhov 2016-10-19 851 fwnode_handle_put(child);
700a38b27eefc5 Dmitry Torokhov 2016-10-19 852
9e3af04f878731 Mika Westerberg 2010-02-04 853 error = input_register_device(input);
9e3af04f878731 Mika Westerberg 2010-02-04 854 if (error) {
9e3af04f878731 Mika Westerberg 2010-02-04 855 dev_err(dev, "Unable to register input device, error: %d\n",
9e3af04f878731 Mika Westerberg 2010-02-04 856 error);
78a56aab11234e Phil Blundell 2007-01-18 857 return error;
78a56aab11234e Phil Blundell 2007-01-18 858 }
78a56aab11234e Phil Blundell 2007-01-18 859
3184125ee2da70 Dmitry Torokhov 2017-07-19 860 device_init_wakeup(dev, wakeup);
9e3af04f878731 Mika Westerberg 2010-02-04 861
78a56aab11234e Phil Blundell 2007-01-18 862 return 0;
78a56aab11234e Phil Blundell 2007-01-18 863 }
78a56aab11234e Phil Blundell 2007-01-18 864
:::::: The code at line 766 was first introduced by commit
:::::: 5298cc4cc753bbe4c530b41341834f6ef3344d0d Input: remove use of __devinit
:::::: TO: Bill Pemberton <wfp5p@virginia.edu>
:::::: CC: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 21795 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-05-05 6:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-05 6:51 [linux-next:master 6112/15890] drivers/input/keyboard/gpio_keys.c:766:12: warning: stack frame size of 2064 bytes in function 'gpio_keys_probe' kernel test robot
2021-05-05 6:51 ` kernel test robot
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.