Re: [PATCH] ipmi: constify some struct and char arrays

From: kbuild test robot
Date: Thu Nov 05 2015 - 19:11:58 EST


Hi LABBE,

[auto build test WARNING on: char-misc/char-misc-next]
[also build test WARNING on: v4.3 next-20151105]

url: https://github.com/0day-ci/linux/commits/LABBE-Corentin/ipmi-constify-some-struct-and-char-arrays/20151105-173339
config: parisc-generic-64bit_defconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=parisc

All warnings (new ones prefixed by >>):

drivers/char/ipmi/ipmi_si_intf.c: In function 'init_ipmi_si':
>> drivers/char/ipmi/ipmi_si_intf.c:3809:2: warning: passing argument 1 of 'register_parisc_driver' discards 'const' qualifier from pointer target type
register_parisc_driver(&ipmi_parisc_driver);
^
In file included from arch/parisc/include/asm/processor.h:15:0,
from arch/parisc/include/asm/spinlock.h:6,
from arch/parisc/include/asm/atomic.h:21,
from include/linux/atomic.h:4,
from arch/parisc/include/asm/bitops.h:12,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/list.h:8,
from include/linux/module.h:9,
from drivers/char/ipmi/ipmi_si_intf.c:42:
arch/parisc/include/asm/hardware.h:110:12: note: expected 'struct parisc_driver *' but argument is of type 'const struct parisc_driver *'
extern int register_parisc_driver(struct parisc_driver *driver);
^
drivers/char/ipmi/ipmi_si_intf.c: In function 'cleanup_ipmi_si':
>> drivers/char/ipmi/ipmi_si_intf.c:3951:3: warning: passing argument 1 of 'unregister_parisc_driver' discards 'const' qualifier from pointer target type
unregister_parisc_driver(&ipmi_parisc_driver);
^
In file included from arch/parisc/include/asm/processor.h:15:0,
from arch/parisc/include/asm/spinlock.h:6,
from arch/parisc/include/asm/atomic.h:21,
from include/linux/atomic.h:4,
from arch/parisc/include/asm/bitops.h:12,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/list.h:8,
from include/linux/module.h:9,
from drivers/char/ipmi/ipmi_si_intf.c:42:
arch/parisc/include/asm/hardware.h:112:12: note: expected 'struct parisc_driver *' but argument is of type 'const struct parisc_driver *'
extern int unregister_parisc_driver(struct parisc_driver *driver);
^

vim +3809 drivers/char/ipmi/ipmi_si_intf.c

754d45318 Matthew Garrett 2010-05-26 3803 #ifdef CONFIG_ACPI
d941aeae4 Corey Minyard 2013-02-27 3804 if (si_tryacpi)
754d45318 Matthew Garrett 2010-05-26 3805 spmi_find_bmc();
754d45318 Matthew Garrett 2010-05-26 3806 #endif
754d45318 Matthew Garrett 2010-05-26 3807
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3808 #ifdef CONFIG_PARISC
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 @3809 register_parisc_driver(&ipmi_parisc_driver);
7aefac26f Corey Minyard 2014-04-14 3810 parisc_registered = true;
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3811 /* poking PC IO addresses will crash machine, don't do it */
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3812 si_trydefaults = 0;
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3813 #endif
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3814
06ee45940 Matthew Garrett 2010-05-26 3815 /* We prefer devices with interrupts, but in the case of a machine
06ee45940 Matthew Garrett 2010-05-26 3816 with multiple BMCs we assume that there will be several instances
06ee45940 Matthew Garrett 2010-05-26 3817 of a given type so if we succeed in registering a type then also
06ee45940 Matthew Garrett 2010-05-26 3818 try to register everything else of the same type */
d8cc5267b Matthew Garrett 2010-05-26 3819
2407d77a1 Matthew Garrett 2010-05-26 3820 mutex_lock(&smi_infos_lock);
2407d77a1 Matthew Garrett 2010-05-26 3821 list_for_each_entry(e, &smi_infos, link) {
06ee45940 Matthew Garrett 2010-05-26 3822 /* Try to register a device if it has an IRQ and we either
06ee45940 Matthew Garrett 2010-05-26 3823 haven't successfully registered a device yet or this
06ee45940 Matthew Garrett 2010-05-26 3824 device has the same type as one we successfully registered */
06ee45940 Matthew Garrett 2010-05-26 3825 if (e->irq && (!type || e->addr_source == type)) {
d8cc5267b Matthew Garrett 2010-05-26 3826 if (!try_smi_init(e)) {
06ee45940 Matthew Garrett 2010-05-26 3827 type = e->addr_source;
06ee45940 Matthew Garrett 2010-05-26 3828 }
d8cc5267b Matthew Garrett 2010-05-26 3829 }
d8cc5267b Matthew Garrett 2010-05-26 3830 }
06ee45940 Matthew Garrett 2010-05-26 3831
06ee45940 Matthew Garrett 2010-05-26 3832 /* type will only have been set if we successfully registered an si */
06ee45940 Matthew Garrett 2010-05-26 3833 if (type) {
06ee45940 Matthew Garrett 2010-05-26 3834 mutex_unlock(&smi_infos_lock);
06ee45940 Matthew Garrett 2010-05-26 3835 return 0;
d8cc5267b Matthew Garrett 2010-05-26 3836 }
d8cc5267b Matthew Garrett 2010-05-26 3837
d8cc5267b Matthew Garrett 2010-05-26 3838 /* Fall back to the preferred device */
d8cc5267b Matthew Garrett 2010-05-26 3839
d8cc5267b Matthew Garrett 2010-05-26 3840 list_for_each_entry(e, &smi_infos, link) {
06ee45940 Matthew Garrett 2010-05-26 3841 if (!e->irq && (!type || e->addr_source == type)) {
d8cc5267b Matthew Garrett 2010-05-26 3842 if (!try_smi_init(e)) {
06ee45940 Matthew Garrett 2010-05-26 3843 type = e->addr_source;
d8cc5267b Matthew Garrett 2010-05-26 3844 }
d8cc5267b Matthew Garrett 2010-05-26 3845 }
2407d77a1 Matthew Garrett 2010-05-26 3846 }
2407d77a1 Matthew Garrett 2010-05-26 3847 mutex_unlock(&smi_infos_lock);
2407d77a1 Matthew Garrett 2010-05-26 3848
06ee45940 Matthew Garrett 2010-05-26 3849 if (type)
06ee45940 Matthew Garrett 2010-05-26 3850 return 0;
06ee45940 Matthew Garrett 2010-05-26 3851
b0defcdbd Corey Minyard 2006-03-26 3852 if (si_trydefaults) {
d6dfd1310 Corey Minyard 2006-03-31 3853 mutex_lock(&smi_infos_lock);
b0defcdbd Corey Minyard 2006-03-26 3854 if (list_empty(&smi_infos)) {
b0defcdbd Corey Minyard 2006-03-26 3855 /* No BMC was found, try defaults. */
d6dfd1310 Corey Minyard 2006-03-31 3856 mutex_unlock(&smi_infos_lock);
b0defcdbd Corey Minyard 2006-03-26 3857 default_find_bmc();
2407d77a1 Matthew Garrett 2010-05-26 3858 } else
d6dfd1310 Corey Minyard 2006-03-31 3859 mutex_unlock(&smi_infos_lock);
b0defcdbd Corey Minyard 2006-03-26 3860 }
^1da177e4 Linus Torvalds 2005-04-16 3861
d6dfd1310 Corey Minyard 2006-03-31 3862 mutex_lock(&smi_infos_lock);
b361e27bb Corey Minyard 2006-12-06 3863 if (unload_when_empty && list_empty(&smi_infos)) {
d6dfd1310 Corey Minyard 2006-03-31 3864 mutex_unlock(&smi_infos_lock);
d2478521a Corey Minyard 2011-02-10 3865 cleanup_ipmi_si();
279fbd0c5 Myron Stowe 2010-05-26 3866 printk(KERN_WARNING PFX
279fbd0c5 Myron Stowe 2010-05-26 3867 "Unable to find any System Interface(s)\n");
^1da177e4 Linus Torvalds 2005-04-16 3868 return -ENODEV;
b0defcdbd Corey Minyard 2006-03-26 3869 } else {
d6dfd1310 Corey Minyard 2006-03-31 3870 mutex_unlock(&smi_infos_lock);
^1da177e4 Linus Torvalds 2005-04-16 3871 return 0;
^1da177e4 Linus Torvalds 2005-04-16 3872 }
b0defcdbd Corey Minyard 2006-03-26 3873 }
^1da177e4 Linus Torvalds 2005-04-16 3874 module_init(init_ipmi_si);
^1da177e4 Linus Torvalds 2005-04-16 3875
b361e27bb Corey Minyard 2006-12-06 3876 static void cleanup_one_si(struct smi_info *to_clean)
^1da177e4 Linus Torvalds 2005-04-16 3877 {
2407d77a1 Matthew Garrett 2010-05-26 3878 int rv = 0;
^1da177e4 Linus Torvalds 2005-04-16 3879
^1da177e4 Linus Torvalds 2005-04-16 3880 if (!to_clean)
^1da177e4 Linus Torvalds 2005-04-16 3881 return;
^1da177e4 Linus Torvalds 2005-04-16 3882
b874b985c Corey Minyard 2014-11-06 3883 if (to_clean->intf) {
b874b985c Corey Minyard 2014-11-06 3884 ipmi_smi_t intf = to_clean->intf;
b874b985c Corey Minyard 2014-11-06 3885
b874b985c Corey Minyard 2014-11-06 3886 to_clean->intf = NULL;
b874b985c Corey Minyard 2014-11-06 3887 rv = ipmi_unregister_smi(intf);
b874b985c Corey Minyard 2014-11-06 3888 if (rv) {
b874b985c Corey Minyard 2014-11-06 3889 pr_err(PFX "Unable to unregister device: errno=%d\n",
b874b985c Corey Minyard 2014-11-06 3890 rv);
b874b985c Corey Minyard 2014-11-06 3891 }
b874b985c Corey Minyard 2014-11-06 3892 }
b874b985c Corey Minyard 2014-11-06 3893
567eded96 Takao Indoh 2014-10-06 3894 if (to_clean->dev)
567eded96 Takao Indoh 2014-10-06 3895 dev_set_drvdata(to_clean->dev, NULL);
567eded96 Takao Indoh 2014-10-06 3896
b0defcdbd Corey Minyard 2006-03-26 3897 list_del(&to_clean->link);
b0defcdbd Corey Minyard 2006-03-26 3898
c305e3d38 Corey Minyard 2008-04-29 3899 /*
b874b985c Corey Minyard 2014-11-06 3900 * Make sure that interrupts, the timer and the thread are
b874b985c Corey Minyard 2014-11-06 3901 * stopped and will not run again.
c305e3d38 Corey Minyard 2008-04-29 3902 */
b874b985c Corey Minyard 2014-11-06 3903 if (to_clean->irq_cleanup)
b874b985c Corey Minyard 2014-11-06 3904 to_clean->irq_cleanup(to_clean);
a9a2c44ff Corey Minyard 2005-11-07 3905 wait_for_timer_and_thread(to_clean);
^1da177e4 Linus Torvalds 2005-04-16 3906
c305e3d38 Corey Minyard 2008-04-29 3907 /*
c305e3d38 Corey Minyard 2008-04-29 3908 * Timeouts are stopped, now make sure the interrupts are off
b874b985c Corey Minyard 2014-11-06 3909 * in the BMC. Note that timers and CPU interrupts are off,
b874b985c Corey Minyard 2014-11-06 3910 * so no need for locks.
c305e3d38 Corey Minyard 2008-04-29 3911 */
ee6cd5f8f Corey Minyard 2007-05-08 3912 while (to_clean->curr_msg || (to_clean->si_state != SI_NORMAL)) {
ee6cd5f8f Corey Minyard 2007-05-08 3913 poll(to_clean);
ee6cd5f8f Corey Minyard 2007-05-08 3914 schedule_timeout_uninterruptible(1);
ee6cd5f8f Corey Minyard 2007-05-08 3915 }
ee6cd5f8f Corey Minyard 2007-05-08 3916 disable_si_irq(to_clean);
e8b336173 Corey Minyard 2005-09-06 3917 while (to_clean->curr_msg || (to_clean->si_state != SI_NORMAL)) {
^1da177e4 Linus Torvalds 2005-04-16 3918 poll(to_clean);
da4cd8dfe Nishanth Aravamudan 2005-09-10 3919 schedule_timeout_uninterruptible(1);
^1da177e4 Linus Torvalds 2005-04-16 3920 }
^1da177e4 Linus Torvalds 2005-04-16 3921
2407d77a1 Matthew Garrett 2010-05-26 3922 if (to_clean->handlers)
^1da177e4 Linus Torvalds 2005-04-16 3923 to_clean->handlers->cleanup(to_clean->si_sm);
^1da177e4 Linus Torvalds 2005-04-16 3924
^1da177e4 Linus Torvalds 2005-04-16 3925 kfree(to_clean->si_sm);
^1da177e4 Linus Torvalds 2005-04-16 3926
b0defcdbd Corey Minyard 2006-03-26 3927 if (to_clean->addr_source_cleanup)
b0defcdbd Corey Minyard 2006-03-26 3928 to_clean->addr_source_cleanup(to_clean);
7767e126c Paolo Galtieri 2005-12-15 3929 if (to_clean->io_cleanup)
^1da177e4 Linus Torvalds 2005-04-16 3930 to_clean->io_cleanup(to_clean);
50c812b2b Corey Minyard 2006-03-26 3931
50c812b2b Corey Minyard 2006-03-26 3932 if (to_clean->dev_registered)
50c812b2b Corey Minyard 2006-03-26 3933 platform_device_unregister(to_clean->pdev);
50c812b2b Corey Minyard 2006-03-26 3934
50c812b2b Corey Minyard 2006-03-26 3935 kfree(to_clean);
^1da177e4 Linus Torvalds 2005-04-16 3936 }
^1da177e4 Linus Torvalds 2005-04-16 3937
0dcf334c4 Sergey Senozhatsky 2011-03-23 3938 static void cleanup_ipmi_si(void)
^1da177e4 Linus Torvalds 2005-04-16 3939 {
b0defcdbd Corey Minyard 2006-03-26 3940 struct smi_info *e, *tmp_e;
^1da177e4 Linus Torvalds 2005-04-16 3941
^1da177e4 Linus Torvalds 2005-04-16 3942 if (!initialized)
^1da177e4 Linus Torvalds 2005-04-16 3943 return;
^1da177e4 Linus Torvalds 2005-04-16 3944
b0defcdbd Corey Minyard 2006-03-26 3945 #ifdef CONFIG_PCI
56480287f Matthew Garrett 2010-06-29 3946 if (pci_registered)
b0defcdbd Corey Minyard 2006-03-26 3947 pci_unregister_driver(&ipmi_pci_driver);
b0defcdbd Corey Minyard 2006-03-26 3948 #endif
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3949 #ifdef CONFIG_PARISC
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3950 if (parisc_registered)
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 @3951 unregister_parisc_driver(&ipmi_parisc_driver);
fdbeb7de7 Thomas Bogendoerfer 2013-09-05 3952 #endif
b0defcdbd Corey Minyard 2006-03-26 3953
a1e9c9dd3 Rob Herring 2011-02-23 3954 platform_driver_unregister(&ipmi_driver);

:::::: The code at line 3809 was first introduced by commit
:::::: fdbeb7de700a3c8fc85d7e595a6bf1c92a27c0a1 BMC support for PARISC machines

:::::: TO: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data