drivers/phy/cadence/phy-cadence-torrent.c:326 cdns_torrent_dp_init() warn: 'cdns_phy->clk' not released on lines: 280.
by Dan Carpenter
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5925fa68fe8244651b3f78a88c4af99190a88f0d
commit: e4b496a376f1ad83d708628e31e90c4e1093a867 phy: cadence-torrent: Add 19.2 MHz reference clock support
config: i386-randconfig-m021-20200916 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/phy/cadence/phy-cadence-torrent.c:326 cdns_torrent_dp_init() warn: 'cdns_phy->clk' not released on lines: 280.
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e4b496a376f1ad83d708628e31e90c4e1093a867
vim +326 drivers/phy/cadence/phy-cadence-torrent.c
92e9ccc6dc2249 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 253 static int cdns_torrent_dp_init(struct phy *phy)
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 254 {
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 255 unsigned char lane_bits;
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 256 int ret;
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 257
92e9ccc6dc2249 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 258 struct cdns_torrent_phy *cdns_phy = phy_get_drvdata(phy);
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 259
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 260 ret = clk_prepare_enable(cdns_phy->clk);
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 261 if (ret) {
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 262 dev_err(cdns_phy->dev, "Failed to prepare ref clock\n");
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 263 return ret;
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 264 }
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 265
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 266 cdns_phy->ref_clk_rate = clk_get_rate(cdns_phy->clk);
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 267 if (!(cdns_phy->ref_clk_rate)) {
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 268 dev_err(cdns_phy->dev, "Failed to get ref clock rate\n");
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 269 clk_disable_unprepare(cdns_phy->clk);
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 270 return -EINVAL;
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 271 }
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 272
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 273 switch (cdns_phy->ref_clk_rate) {
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 274 case REF_CLK_19_2MHz:
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 275 case REF_CLK_25MHz:
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 276 /* Valid Ref Clock Rate */
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 277 break;
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 278 default:
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 279 dev_err(cdns_phy->dev, "Unsupported Ref Clock Rate\n");
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 280 return -EINVAL;
This error path should probably call clk_disable_unprepare(cdns_phy->clk);
The same for the other error paths below? The check is only complaining
when the return is definitely negative, but it should probably updated
to say that the other non-zero returns are errors as well.
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 281 }
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 282
f61b3aed20003e drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 283 cdns_torrent_dp_write(cdns_phy, PHY_AUX_CTRL, 0x0003); /* enable AUX */
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 284
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 285 /* PHY PMA registers configuration function */
92e9ccc6dc2249 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 286 cdns_torrent_dp_pma_cfg(cdns_phy);
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 287
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 288 /*
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 289 * Set lines power state to A0
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 290 * Set lines pll clk enable to 0
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 291 */
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 292 cdns_torrent_dp_set_a0_pll(cdns_phy, cdns_phy->num_lanes);
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 293
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 294 /*
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 295 * release phy_l0*_reset_n and pma_tx_elec_idle_ln_* based on
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 296 * used lanes
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 297 */
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 298 lane_bits = (1 << cdns_phy->num_lanes) - 1;
f61b3aed20003e drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 299 cdns_torrent_dp_write(cdns_phy, PHY_RESET,
f61b3aed20003e drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 300 ((0xF & ~lane_bits) << 4) | (0xF & lane_bits));
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 301
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 302 /* release pma_xcvr_pllclk_en_ln_*, only for the master lane */
f61b3aed20003e drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 303 cdns_torrent_dp_write(cdns_phy, PHY_PMA_XCVR_PLLCLK_EN, 0x0001);
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 304
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 305 /* PHY PMA registers configuration functions */
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 306 /* Initialize PHY with max supported link rate, without SSC. */
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 307 if (cdns_phy->ref_clk_rate == REF_CLK_19_2MHz)
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 308 cdns_torrent_dp_pma_cmn_vco_cfg_19_2mhz(cdns_phy,
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 309 cdns_phy->max_bit_rate,
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 310 false);
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 311 else if (cdns_phy->ref_clk_rate == REF_CLK_25MHz)
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 312 cdns_torrent_dp_pma_cmn_vco_cfg_25mhz(cdns_phy,
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 313 cdns_phy->max_bit_rate,
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 314 false);
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 315 cdns_torrent_dp_pma_cmn_rate(cdns_phy, cdns_phy->max_bit_rate,
e4b496a376f1ad drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 316 cdns_phy->num_lanes);
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 317
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 318 /* take out of reset */
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 319 cdns_dp_phy_write_field(cdns_phy, PHY_RESET, 8, 1, 1);
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 320 ret = cdns_torrent_dp_wait_pma_cmn_ready(cdns_phy);
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 321 if (ret)
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 322 return ret;
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 323
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 324 ret = cdns_torrent_dp_run(cdns_phy);
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 325
21c79146a1bbc6 drivers/phy/cadence/phy-cadence-torrent.c Swapnil Jakhade 2020-02-06 @326 return ret;
c8b427edc7378f drivers/phy/cadence/phy-cadence-dp.c Scott Telford 2018-08-09 327 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
[hch-misc:alloc_vm_area 5/7] drivers/xen/xenbus/xenbus_client.c:710:6: warning: variable 'leaked' is used uninitialized whenever 'if' condition is true
by kernel test robot
tree: git://git.infradead.org/users/hch/misc.git alloc_vm_area
head: d574728eedb41cee38600f7f2199852e9018a50a
commit: 14e6831d7306306425df24459348bda79c30bb06 [5/7] xen/xenbus: open code alloc_vm_area in xenbus_map_ring_pv
config: x86_64-randconfig-a006-20200917 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 1321160a26e7e489baf9b10d6de90a342f898960)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 14e6831d7306306425df24459348bda79c30bb06
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/xen/xenbus/xenbus_client.c:710:6: warning: variable 'leaked' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (apply_to_page_range(&init_mm, (unsigned long)area->addr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/xen/xenbus/xenbus_client.c:734:7: note: uninitialized use occurs here
if (!leaked)
^~~~~~
drivers/xen/xenbus/xenbus_client.c:710:2: note: remove the 'if' if its condition is always false
if (apply_to_page_range(&init_mm, (unsigned long)area->addr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/xen/xenbus/xenbus_client.c:704:13: note: initialize the variable 'leaked' to silence this warning
bool leaked;
^
= 0
1 warning generated.
git remote add hch-misc git://git.infradead.org/users/hch/misc.git
git fetch --no-tags hch-misc alloc_vm_area
git checkout 14e6831d7306306425df24459348bda79c30bb06
vim +710 drivers/xen/xenbus/xenbus_client.c
694
695 static int xenbus_map_ring_pv(struct xenbus_device *dev,
696 struct map_ring_valloc *info,
697 grant_ref_t *gnt_refs,
698 unsigned int nr_grefs,
699 void **vaddr)
700 {
701 struct xenbus_map_node *node = info->node;
702 struct vm_struct *area;
703 int err = -ENOMEM;
704 bool leaked;
705
706 area = get_vm_area_caller(XEN_PAGE_SIZE * nr_grefs, VM_IOREMAP,
707 __builtin_return_address(0));
708 if (!area)
709 return -ENOMEM;
> 710 if (apply_to_page_range(&init_mm, (unsigned long)area->addr,
711 XEN_PAGE_SIZE * nr_grefs, map_ring_apply,
712 &info->phys_addrs))
713 goto failed;
714
715 err = __xenbus_map_ring(dev, gnt_refs, nr_grefs, node->handles,
716 info, GNTMAP_host_map | GNTMAP_contains_pte,
717 &leaked);
718 if (err)
719 goto failed;
720
721 node->nr_handles = nr_grefs;
722 node->pv.area = area;
723
724 spin_lock(&xenbus_valloc_lock);
725 list_add(&node->next, &xenbus_valloc_pages);
726 spin_unlock(&xenbus_valloc_lock);
727
728 *vaddr = area->addr;
729 info->node = NULL;
730
731 return 0;
732
733 failed:
734 if (!leaked)
735 free_vm_area(area);
736 else
737 pr_alert("leaking VM area %p size %u page(s)", area, nr_grefs);
738
739 return err;
740 }
741
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
[hch-misc:dma_alloc_pages 34/37] kernel/dma/direct.c:268: undefined reference to `dma_free_from_pool'
by kernel test robot
tree: git://git.infradead.org/users/hch/misc.git dma_alloc_pages
head: a16b2f06eb63d5638da06476cd7d21cac6ccf955
commit: 250f1c6e2d5b33ccd5650a4e3b3384b646edea3c [34/37] dma-mapping: add a new dma_alloc_pages API
config: s390-randconfig-r021-20200917 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
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
git checkout 250f1c6e2d5b33ccd5650a4e3b3384b646edea3c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
s390-linux-ld: kernel/dma/direct.o: in function `dma_direct_free':
>> kernel/dma/direct.c:268: undefined reference to `dma_free_from_pool'
s390-linux-ld: kernel/dma/direct.o: in function `dma_direct_free_pages':
kernel/dma/direct.c:330: undefined reference to `dma_free_from_pool'
git remote add hch-misc git://git.infradead.org/users/hch/misc.git
git fetch --no-tags hch-misc dma_alloc_pages
git checkout 250f1c6e2d5b33ccd5650a4e3b3384b646edea3c
vim +268 kernel/dma/direct.c
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 254
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 255 void dma_direct_free(struct device *dev, size_t size,
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 256 void *cpu_addr, dma_addr_t dma_addr, unsigned long attrs)
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 257 {
c10f07aa27dadf5 lib/dma-direct.c Christoph Hellwig 2018-03-19 258 unsigned int page_order = get_order(size);
080321d3b3139b3 lib/dma-direct.c Christoph Hellwig 2017-12-22 259
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 260 if (!IS_ENABLED(CONFIG_ARCH_HAS_DMA_SET_UNCACHED) &&
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 261 !IS_ENABLED(CONFIG_DMA_DIRECT_REMAP) &&
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 262 dma_alloc_need_uncached(dev, attrs)) {
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 263 arch_dma_free(dev, size, cpu_addr, dma_addr, attrs);
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 264 return;
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 265 }
2f5388a29be82a6 kernel/dma/direct.c Christoph Hellwig 2020-08-17 266
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 267 /* If cpu_addr is not from an atomic pool, dma_free_from_pool() fails */
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 @268 if (dma_should_free_from_pool(dev, attrs) &&
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 269 dma_free_from_pool(dev, cpu_addr, PAGE_ALIGN(size)))
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 270 return;
76a19940bd62a81 kernel/dma/direct.c David Rientjes 2020-04-14 271
cf14be0b41c659e kernel/dma/direct.c Christoph Hellwig 2019-08-06 272 if ((attrs & DMA_ATTR_NO_KERNEL_MAPPING) &&
cf14be0b41c659e kernel/dma/direct.c Christoph Hellwig 2019-08-06 273 !force_dma_unencrypted(dev)) {
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 274 /* cpu_addr is a struct page cookie, not a kernel address */
acaade1af358713 kernel/dma/direct.c Christoph Hellwig 2019-10-29 275 dma_free_contiguous(dev, cpu_addr, size);
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 276 return;
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 277 }
d98849aff879110 kernel/dma/direct.c Christoph Hellwig 2019-06-14 278
9087c37584fb7d8 kernel/dma/direct.c Tom Lendacky 2019-07-10 279 if (force_dma_unencrypted(dev))
c10f07aa27dadf5 lib/dma-direct.c Christoph Hellwig 2018-03-19 280 set_memory_encrypted((unsigned long)cpu_addr, 1 << page_order);
c30700db9eaabb3 kernel/dma/direct.c Christoph Hellwig 2019-06-03 281
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 282 if (IS_ENABLED(CONFIG_DMA_REMAP) && is_vmalloc_addr(cpu_addr))
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 283 vunmap(cpu_addr);
999a5d1203baa7c kernel/dma/direct.c Christoph Hellwig 2020-02-21 284 else if (IS_ENABLED(CONFIG_ARCH_HAS_DMA_CLEAR_UNCACHED))
999a5d1203baa7c kernel/dma/direct.c Christoph Hellwig 2020-02-21 285 arch_dma_clear_uncached(cpu_addr, size);
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 286
3acac065508f6cc kernel/dma/direct.c Christoph Hellwig 2019-10-29 287 dma_free_contiguous(dev, dma_direct_to_page(dev, dma_addr), size);
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 288 }
a8463d4b0e47d1f lib/dma-noop.c Christian Borntraeger 2016-02-02 289
:::::: The code at line 268 was first introduced by commit
:::::: 76a19940bd62a81148c303f3df6d0cee9ae4b509 dma-direct: atomic allocations must come from atomic coherent pools
:::::: TO: David Rientjes <rientjes(a)google.com>
:::::: CC: Christoph Hellwig <hch(a)lst.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
drivers/hwmon/w83627ehf.c:2417 w83627ehf_probe() warn: 'res->start' not released on lines: 2412.
by Dan Carpenter
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5925fa68fe8244651b3f78a88c4af99190a88f0d
commit: 266cd5835947d08b7c963b6d9d9f15d9e481bd0a hwmon: (w83627ehf) convert to with_info interface
config: i386-randconfig-m021-20200916 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/hwmon/w83627ehf.c:2417 w83627ehf_probe() warn: 'res->start' not released on lines: 2412.
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 266cd5835947d08b7c963b6d9d9f15d9e481bd0a
vim +2417 drivers/hwmon/w83627ehf.c
6c931ae1c09a96 drivers/hwmon/w83627ehf.c Bill Pemberton 2012-11-19 2015 static int w83627ehf_probe(struct platform_device *pdev)
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2016 {
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2017 struct device *dev = &pdev->dev;
a8b3a3a53f9a81 drivers/hwmon/w83627ehf.c Jingoo Han 2013-07-30 2018 struct w83627ehf_sio_data *sio_data = dev_get_platdata(dev);
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2019 struct w83627ehf_data *data;
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2020 struct resource *res;
03f5de2bb7125e drivers/hwmon/w83627ehf.c Jean Delvare 2011-10-13 2021 u8 en_vrm10;
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2022 int i, err = 0;
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2023 struct device *hwmon_dev;
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2024
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2025 res = platform_get_resource(pdev, IORESOURCE_IO, 0);
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2026 if (!request_region(res->start, IOREGION_LENGTH, DRVNAME)) {
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2027 err = -EBUSY;
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2028 dev_err(dev, "Failed to request region 0x%lx-0x%lx\n",
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2029 (unsigned long)res->start,
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2030 (unsigned long)res->start + IOREGION_LENGTH - 1);
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2031 goto exit;
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2032 }
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2033
32260d94408c55 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-03-12 2034 data = devm_kzalloc(&pdev->dev, sizeof(struct w83627ehf_data),
32260d94408c55 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-03-12 2035 GFP_KERNEL);
e7e1ca6ef4f331 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-04 2036 if (!data) {
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2037 err = -ENOMEM;
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2038 goto exit_release;
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2039 }
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2040
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2041 data->addr = res->start;
9a61bf6300533d drivers/hwmon/w83627ehf.c Ingo Molnar 2006-01-18 2042 mutex_init(&data->lock);
9a61bf6300533d drivers/hwmon/w83627ehf.c Ingo Molnar 2006-01-18 2043 mutex_init(&data->update_lock);
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2044 data->name = w83627ehf_device_names[sio_data->kind];
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2045 data->kind = sio_data->kind;
3300fb4f886880 drivers/hwmon/w83627ehf.c Jean Delvare 2012-11-05 2046 data->bank = 0xff; /* Force initial bank selection */
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2047 platform_set_drvdata(pdev, data);
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2048
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2049 /* 627EHG and 627EHF have 10 voltage inputs; 627DHG and 667HG have 9 */
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2050 data->in_num = (sio_data->kind == w83627ehf) ? 10 : 9;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2051 /* 667HG, NCT6775F, and NCT6776F have 3 pwms, and 627UHG has only 2 */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2052 switch (sio_data->kind) {
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2053 default:
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2054 data->pwm_num = 4;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2055 break;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2056 case w83667hg:
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2057 case w83667hg_b:
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2058 case nct6775:
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2059 case nct6776:
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2060 data->pwm_num = 3;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2061 break;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2062 case w83627uhg:
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2063 data->pwm_num = 2;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2064 break;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2065 }
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2066
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2067 /* Default to 3 temperature inputs, code below will adjust as needed */
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2068 data->have_temp = 0x07;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2069
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2070 /* Deal with temperature register setup first. */
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2071 if (sio_data->kind == nct6775 || sio_data->kind == nct6776) {
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2072 int mask = 0;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2073
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2074 /*
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2075 * Display temperature sensor output only if it monitors
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2076 * a source other than one already reported. Always display
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2077 * first three temperature registers, though.
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2078 */
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2079 for (i = 0; i < NUM_REG_TEMP; i++) {
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2080 u8 src;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2081
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2082 data->reg_temp[i] = NCT6775_REG_TEMP[i];
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2083 data->reg_temp_over[i] = NCT6775_REG_TEMP_OVER[i];
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2084 data->reg_temp_hyst[i] = NCT6775_REG_TEMP_HYST[i];
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2085 data->reg_temp_config[i] = NCT6775_REG_TEMP_CONFIG[i];
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2086
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2087 src = w83627ehf_read_value(data,
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2088 NCT6775_REG_TEMP_SOURCE[i]);
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2089 src &= 0x1f;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2090 if (src && !(mask & (1 << src))) {
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2091 data->have_temp |= 1 << i;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2092 mask |= 1 << src;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2093 }
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2094
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2095 data->temp_src[i] = src;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2096
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2097 /*
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2098 * Now do some register swapping if index 0..2 don't
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2099 * point to SYSTIN(1), CPUIN(2), and AUXIN(3).
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2100 * Idea is to have the first three attributes
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2101 * report SYSTIN, CPUIN, and AUXIN if possible
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2102 * without overriding the basic system configuration.
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2103 */
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2104 if (i > 0 && data->temp_src[0] != 1
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2105 && data->temp_src[i] == 1)
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2106 w82627ehf_swap_tempreg(data, 0, i);
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2107 if (i > 1 && data->temp_src[1] != 2
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2108 && data->temp_src[i] == 2)
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2109 w82627ehf_swap_tempreg(data, 1, i);
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2110 if (i > 2 && data->temp_src[2] != 3
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2111 && data->temp_src[i] == 3)
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2112 w82627ehf_swap_tempreg(data, 2, i);
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2113 }
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2114 if (sio_data->kind == nct6776) {
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2115 /*
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2116 * On NCT6776, AUXTIN and VIN3 pins are shared.
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2117 * Only way to detect it is to check if AUXTIN is used
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2118 * as a temperature source, and if that source is
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2119 * enabled.
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2120 *
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2121 * If that is the case, disable in6, which reports VIN3.
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2122 * Otherwise disable temp3.
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2123 */
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2124 if (data->temp_src[2] == 3) {
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2125 u8 reg;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2126
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2127 if (data->reg_temp_config[2])
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2128 reg = w83627ehf_read_value(data,
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2129 data->reg_temp_config[2]);
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2130 else
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2131 reg = 0; /* Assume AUXTIN is used */
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2132
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2133 if (reg & 0x01)
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2134 data->have_temp &= ~(1 << 2);
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2135 else
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2136 data->in6_skip = 1;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2137 }
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2138 data->temp_label = nct6776_temp_label;
02309ad2b8cbcf drivers/hwmon/w83627ehf.c Guenter Roeck 2011-03-10 2139 } else {
02309ad2b8cbcf drivers/hwmon/w83627ehf.c Guenter Roeck 2011-03-10 2140 data->temp_label = nct6775_temp_label;
02309ad2b8cbcf drivers/hwmon/w83627ehf.c Guenter Roeck 2011-03-10 2141 }
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2142 data->have_temp_offset = data->have_temp & 0x07;
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2143 for (i = 0; i < 3; i++) {
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2144 if (data->temp_src[i] > 3)
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2145 data->have_temp_offset &= ~(1 << i);
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2146 }
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2147 } else if (sio_data->kind == w83667hg_b) {
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2148 u8 reg;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2149
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2150 w83627ehf_set_temp_reg_ehf(data, 4);
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2151
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2152 /*
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2153 * Temperature sources are selected with bank 0, registers 0x49
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2154 * and 0x4a.
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2155 */
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2156 reg = w83627ehf_read_value(data, 0x4a);
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2157 data->temp_src[0] = reg >> 5;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2158 reg = w83627ehf_read_value(data, 0x49);
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2159 data->temp_src[1] = reg & 0x07;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2160 data->temp_src[2] = (reg >> 4) & 0x07;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2161
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2162 /*
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2163 * W83667HG-B has another temperature register at 0x7e.
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2164 * The temperature source is selected with register 0x7d.
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2165 * Support it if the source differs from already reported
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2166 * sources.
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2167 */
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2168 reg = w83627ehf_read_value(data, 0x7d);
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2169 reg &= 0x07;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2170 if (reg != data->temp_src[0] && reg != data->temp_src[1]
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2171 && reg != data->temp_src[2]) {
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2172 data->temp_src[3] = reg;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2173 data->have_temp |= 1 << 3;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2174 }
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2175
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2176 /*
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2177 * Chip supports either AUXTIN or VIN3. Try to find out which
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2178 * one.
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2179 */
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2180 reg = w83627ehf_read_value(data, W83627EHF_REG_TEMP_CONFIG[2]);
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2181 if (data->temp_src[2] == 2 && (reg & 0x01))
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2182 data->have_temp &= ~(1 << 2);
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2183
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2184 if ((data->temp_src[2] == 2 && (data->have_temp & (1 << 2)))
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2185 || (data->temp_src[3] == 2 && (data->have_temp & (1 << 3))))
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2186 data->in6_skip = 1;
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2187
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2188 data->temp_label = w83667hg_b_temp_label;
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2189 data->have_temp_offset = data->have_temp & 0x07;
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2190 for (i = 0; i < 3; i++) {
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2191 if (data->temp_src[i] > 2)
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2192 data->have_temp_offset &= ~(1 << i);
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2193 }
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2194 } else if (sio_data->kind == w83627uhg) {
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2195 u8 reg;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2196
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2197 w83627ehf_set_temp_reg_ehf(data, 3);
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2198
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2199 /*
aacb6b0052692c drivers/hwmon/w83627ehf.c Jean Delvare 2012-03-13 2200 * Temperature sources for temp2 and temp3 are selected with
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2201 * bank 0, registers 0x49 and 0x4a.
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2202 */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2203 data->temp_src[0] = 0; /* SYSTIN */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2204 reg = w83627ehf_read_value(data, 0x49) & 0x07;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2205 /* Adjust to have the same mapping as other source registers */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2206 if (reg == 0)
aacb6b0052692c drivers/hwmon/w83627ehf.c Jean Delvare 2012-03-13 2207 data->temp_src[1] = 1;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2208 else if (reg >= 2 && reg <= 5)
aacb6b0052692c drivers/hwmon/w83627ehf.c Jean Delvare 2012-03-13 2209 data->temp_src[1] = reg + 2;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2210 else /* should never happen */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2211 data->have_temp &= ~(1 << 1);
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2212 reg = w83627ehf_read_value(data, 0x4a);
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2213 data->temp_src[2] = reg >> 5;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2214
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2215 /*
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2216 * Skip temp3 if source is invalid or the same as temp1
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2217 * or temp2.
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2218 */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2219 if (data->temp_src[2] == 2 || data->temp_src[2] == 3 ||
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2220 data->temp_src[2] == data->temp_src[0] ||
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2221 ((data->have_temp & (1 << 1)) &&
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2222 data->temp_src[2] == data->temp_src[1]))
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2223 data->have_temp &= ~(1 << 2);
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2224 else
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2225 data->temp3_val_only = 1; /* No limit regs */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2226
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2227 data->in6_skip = 1; /* No VIN3 */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2228
d36cf32c9a6c4f drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-07 2229 data->temp_label = w83667hg_b_temp_label;
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2230 data->have_temp_offset = data->have_temp & 0x03;
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2231 for (i = 0; i < 3; i++) {
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2232 if (data->temp_src[i] > 1)
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2233 data->have_temp_offset &= ~(1 << i);
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2234 }
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2235 } else {
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2236 w83627ehf_set_temp_reg_ehf(data, 3);
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2237
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2238 /* Temperature sources are fixed */
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2239
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2240 if (sio_data->kind == w83667hg) {
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2241 u8 reg;
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2242
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2243 /*
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2244 * Chip supports either AUXTIN or VIN3. Try to find
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2245 * out which one.
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2246 */
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2247 reg = w83627ehf_read_value(data,
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2248 W83627EHF_REG_TEMP_CONFIG[2]);
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2249 if (reg & 0x01)
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2250 data->have_temp &= ~(1 << 2);
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2251 else
6ba71de5f81bbf drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2252 data->in6_skip = 1;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2253 }
840e191dba36f5 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-02-08 2254 data->have_temp_offset = data->have_temp & 0x07;
a157d06d4d7031 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2255 }
a157d06d4d7031 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2256
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2257 if (sio_data->kind == nct6775) {
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2258 data->has_fan_div = true;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2259 data->fan_from_reg = fan_from_reg16;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2260 data->fan_from_reg_min = fan_from_reg8;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2261 data->REG_PWM = NCT6775_REG_PWM;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2262 data->REG_TARGET = NCT6775_REG_TARGET;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2263 data->REG_FAN = NCT6775_REG_FAN;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2264 data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2265 data->REG_FAN_START_OUTPUT = NCT6775_REG_FAN_START_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2266 data->REG_FAN_STOP_OUTPUT = NCT6775_REG_FAN_STOP_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2267 data->REG_FAN_STOP_TIME = NCT6775_REG_FAN_STOP_TIME;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2268 data->REG_FAN_MAX_OUTPUT = NCT6775_REG_FAN_MAX_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2269 data->REG_FAN_STEP_OUTPUT = NCT6775_REG_FAN_STEP_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2270 } else if (sio_data->kind == nct6776) {
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2271 data->has_fan_div = false;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2272 data->fan_from_reg = fan_from_reg13;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2273 data->fan_from_reg_min = fan_from_reg13;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2274 data->REG_PWM = NCT6775_REG_PWM;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2275 data->REG_TARGET = NCT6775_REG_TARGET;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2276 data->REG_FAN = NCT6775_REG_FAN;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2277 data->REG_FAN_MIN = NCT6776_REG_FAN_MIN;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2278 data->REG_FAN_START_OUTPUT = NCT6775_REG_FAN_START_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2279 data->REG_FAN_STOP_OUTPUT = NCT6775_REG_FAN_STOP_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2280 data->REG_FAN_STOP_TIME = NCT6775_REG_FAN_STOP_TIME;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2281 } else if (sio_data->kind == w83667hg_b) {
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2282 data->has_fan_div = true;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2283 data->fan_from_reg = fan_from_reg8;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2284 data->fan_from_reg_min = fan_from_reg8;
279af1a91a0410 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2285 data->REG_PWM = W83627EHF_REG_PWM;
279af1a91a0410 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2286 data->REG_TARGET = W83627EHF_REG_TARGET;
279af1a91a0410 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2287 data->REG_FAN = W83627EHF_REG_FAN;
279af1a91a0410 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2288 data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN;
da2e025590cf70 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2289 data->REG_FAN_START_OUTPUT = W83627EHF_REG_FAN_START_OUTPUT;
da2e025590cf70 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2290 data->REG_FAN_STOP_OUTPUT = W83627EHF_REG_FAN_STOP_OUTPUT;
279af1a91a0410 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2291 data->REG_FAN_STOP_TIME = W83627EHF_REG_FAN_STOP_TIME;
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2292 data->REG_FAN_MAX_OUTPUT =
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2293 W83627EHF_REG_FAN_MAX_OUTPUT_W83667_B;
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2294 data->REG_FAN_STEP_OUTPUT =
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2295 W83627EHF_REG_FAN_STEP_OUTPUT_W83667_B;
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2296 } else {
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2297 data->has_fan_div = true;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2298 data->fan_from_reg = fan_from_reg8;
26bc440e3f14df drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-11 2299 data->fan_from_reg_min = fan_from_reg8;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2300 data->REG_PWM = W83627EHF_REG_PWM;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2301 data->REG_TARGET = W83627EHF_REG_TARGET;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2302 data->REG_FAN = W83627EHF_REG_FAN;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2303 data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2304 data->REG_FAN_START_OUTPUT = W83627EHF_REG_FAN_START_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2305 data->REG_FAN_STOP_OUTPUT = W83627EHF_REG_FAN_STOP_OUTPUT;
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2306 data->REG_FAN_STOP_TIME = W83627EHF_REG_FAN_STOP_TIME;
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2307 data->REG_FAN_MAX_OUTPUT =
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2308 W83627EHF_REG_FAN_MAX_OUTPUT_COMMON;
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2309 data->REG_FAN_STEP_OUTPUT =
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2310 W83627EHF_REG_FAN_STEP_OUTPUT_COMMON;
c39aedafb24260 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2311 }
da2e025590cf70 drivers/hwmon/w83627ehf.c Guenter Roeck 2010-08-14 2312
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2313 /* Setup input voltage scaling factors */
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2314 if (sio_data->kind == w83627uhg)
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2315 data->scale_in = scale_in_w83627uhg;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2316 else
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2317 data->scale_in = scale_in_common;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2318
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2319 /* Initialize the chip */
bf164c58e58328 drivers/hwmon/w83627ehf.c Jean Delvare 2011-10-13 2320 w83627ehf_init_device(data, sio_data->kind);
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2321
fc18d6c0479d5b drivers/hwmon/w83627ehf.c Jean Delvare 2007-06-24 2322 data->vrm = vid_which_vrm();
0d0235301b3a53 drivers/hwmon/w83627ehf.c Katsumi Sato 2017-02-22 2323
0d0235301b3a53 drivers/hwmon/w83627ehf.c Katsumi Sato 2017-02-22 2324 err = superio_enter(sio_data->sioreg);
0d0235301b3a53 drivers/hwmon/w83627ehf.c Katsumi Sato 2017-02-22 2325 if (err)
0d0235301b3a53 drivers/hwmon/w83627ehf.c Katsumi Sato 2017-02-22 2326 goto exit_release;
0d0235301b3a53 drivers/hwmon/w83627ehf.c Katsumi Sato 2017-02-22 2327
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2328 /* Read VID value */
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2329 if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b ||
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2330 sio_data->kind == nct6775 || sio_data->kind == nct6776) {
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2331 /*
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2332 * W83667HG has different pins for VID input and output, so
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2333 * we can get the VID input values directly at logical device D
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2334 * 0xe3.
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2335 */
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2336 superio_select(sio_data->sioreg, W83667HG_LD_VID);
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2337 data->vid = superio_inb(sio_data->sioreg, 0xe3);
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2338 data->have_vid = true;
eff7687d473c31 drivers/hwmon/w83627ehf.c Jean Delvare 2011-11-04 2339 } else if (sio_data->kind != w83627uhg) {
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2340 superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2341 if (superio_inb(sio_data->sioreg, SIO_REG_VID_CTRL) & 0x80) {
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2342 /*
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2343 * Set VID input sensibility if needed. In theory the
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2344 * BIOS should have set it, but in practice it's not
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2345 * always the case. We only do it for the W83627EHF/EHG
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2346 * because the W83627DHG is more complex in this
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2347 * respect.
8969e84d954af3 drivers/hwmon/w83627ehf.c Guenter Roeck 2012-01-19 2348 */
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2349 if (sio_data->kind == w83627ehf) {
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2350 en_vrm10 = superio_inb(sio_data->sioreg,
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2351 SIO_REG_EN_VRM10);
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2352 if ((en_vrm10 & 0x08) && data->vrm == 90) {
b55f375725ff85 drivers/hwmon/w83627ehf.c Guenter Roeck 2013-01-10 2353 dev_warn(dev,
b55f375725ff85 drivers/hwmon/w83627ehf.c Guenter Roeck 2013-01-10 2354 "Setting VID input voltage to TTL\n");
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2355 superio_outb(sio_data->sioreg,
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2356 SIO_REG_EN_VRM10,
fc18d6c0479d5b drivers/hwmon/w83627ehf.c Jean Delvare 2007-06-24 2357 en_vrm10 & ~0x08);
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2358 } else if (!(en_vrm10 & 0x08)
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2359 && data->vrm == 100) {
b55f375725ff85 drivers/hwmon/w83627ehf.c Guenter Roeck 2013-01-10 2360 dev_warn(dev,
b55f375725ff85 drivers/hwmon/w83627ehf.c Guenter Roeck 2013-01-10 2361 "Setting VID input voltage to VRM10\n");
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2362 superio_outb(sio_data->sioreg,
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2363 SIO_REG_EN_VRM10,
fc18d6c0479d5b drivers/hwmon/w83627ehf.c Jean Delvare 2007-06-24 2364 en_vrm10 | 0x08);
fc18d6c0479d5b drivers/hwmon/w83627ehf.c Jean Delvare 2007-06-24 2365 }
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2366 }
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2367
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2368 data->vid = superio_inb(sio_data->sioreg,
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2369 SIO_REG_VID_DATA);
cbe311f2a40b84 drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2370 if (sio_data->kind == w83627ehf) /* 6 VID pins only */
cbe311f2a40b84 drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2371 data->vid &= 0x3f;
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2372 data->have_vid = true;
58e6e78119da2b drivers/hwmon/w83627ehf.c Jean Delvare 2008-01-03 2373 } else {
b55f375725ff85 drivers/hwmon/w83627ehf.c Guenter Roeck 2013-01-10 2374 dev_info(dev,
b55f375725ff85 drivers/hwmon/w83627ehf.c Guenter Roeck 2013-01-10 2375 "VID pins in output mode, CPU VID not available\n");
fc18d6c0479d5b drivers/hwmon/w83627ehf.c Jean Delvare 2007-06-24 2376 }
237c8d2f54ff12 drivers/hwmon/w83627ehf.c Gong Jun 2009-03-30 2377 }
fc18d6c0479d5b drivers/hwmon/w83627ehf.c Jean Delvare 2007-06-24 2378
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2379 if (fan_debounce &&
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2380 (sio_data->kind == nct6775 || sio_data->kind == nct6776)) {
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2381 u8 tmp;
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2382
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2383 superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2384 tmp = superio_inb(sio_data->sioreg, NCT6775_REG_FAN_DEBOUNCE);
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2385 if (sio_data->kind == nct6776)
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2386 superio_outb(sio_data->sioreg, NCT6775_REG_FAN_DEBOUNCE,
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2387 0x3e | tmp);
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2388 else
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2389 superio_outb(sio_data->sioreg, NCT6775_REG_FAN_DEBOUNCE,
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2390 0x1e | tmp);
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2391 pr_info("Enabled fan debounce for chip %s\n", data->name);
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2392 }
d42e869acf0da4 drivers/hwmon/w83627ehf.c Ian Dobson 2011-03-07 2393
03f5de2bb7125e drivers/hwmon/w83627ehf.c Jean Delvare 2011-10-13 2394 w83627ehf_check_fan_inputs(sio_data, data);
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2395
0d0235301b3a53 drivers/hwmon/w83627ehf.c Katsumi Sato 2017-02-22 2396 superio_exit(sio_data->sioreg);
0d0235301b3a53 drivers/hwmon/w83627ehf.c Katsumi Sato 2017-02-22 2397
ea7be66c44e56b drivers/hwmon/w83627ehf.c Mark M. Hoffman 2007-08-05 2398 /* Read fan clock dividers immediately */
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2399 w83627ehf_update_fan_div_common(dev, data);
ec3e5a16446fef drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-02 2400
b84bb5186297d1 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2401 /* Read pwm data to save original values */
b84bb5186297d1 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2402 w83627ehf_update_pwm_common(dev, data);
b84bb5186297d1 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2403 for (i = 0; i < data->pwm_num; i++)
b84bb5186297d1 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2404 data->pwm_enable_orig[i] = data->pwm_enable[i];
b84bb5186297d1 drivers/hwmon/w83627ehf.c Guenter Roeck 2011-02-13 2405
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2406 hwmon_dev = devm_hwmon_device_register_with_info(&pdev->dev,
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2407 data->name,
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2408 data,
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2409 &w83627ehf_chip_info,
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2410 w83627ehf_groups);
08c79950a047db drivers/hwmon/w83627ehf.c Rudolf Marek 2006-07-05 2411
266cd5835947d0 drivers/hwmon/w83627ehf.c Dr. David Alan Gilbert 2019-11-24 2412 return PTR_ERR_OR_ZERO(hwmon_dev);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This should be:
if (IS_ERR(hwmon_dev)) {
err = PTR_ERR(hwmon_dev);
goto exit_release;
}
return 0;
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2413
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2414 exit_release:
1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c David Hubbard 2007-06-24 2415 release_region(res->start, IOREGION_LENGTH);
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2416 exit:
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 @2417 return err;
08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare 2005-04-25 2418 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
Re: [PATCH] ptp: mark symbols static where possible
by kernel test robot
Hi Herrington,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net/master]
[also build test ERROR on net-next/master linus/master v5.9-rc5 next-20200916]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Herrington/ptp-mark-symbols-stat...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git d5d325eae7823c85eedabf05f78f9cd574fe832b
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L306':
>> pch_gbe_main.c:(.text+0x2a04): undefined reference to `pch_ch_control_write'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L287':
pch_gbe_main.c:(.text+0x2a3c): undefined reference to `pch_ch_control_write'
>> riscv64-linux-ld: pch_gbe_main.c:(.text+0x2a76): undefined reference to `pch_ch_control_write'
riscv64-linux-ld: pch_gbe_main.c:(.text+0x2ab2): undefined reference to `pch_ch_control_write'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L0 ':
>> pch_gbe_main.c:(.text+0x2ad6): undefined reference to `pch_set_station_address'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L295':
>> pch_gbe_main.c:(.text+0x2b1c): undefined reference to `pch_ch_event_write'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L0 ':
>> pch_gbe_main.c:(.text+0x44ea): undefined reference to `pch_ch_event_read'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L447':
>> pch_gbe_main.c:(.text+0x468e): undefined reference to `pch_tx_snap_read'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L450':
pch_gbe_main.c:(.text+0x46ae): undefined reference to `pch_ch_event_write'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L508':
pch_gbe_main.c:(.text+0x522c): undefined reference to `pch_ch_event_read'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L509':
>> pch_gbe_main.c:(.text+0x5254): undefined reference to `pch_src_uuid_lo_read'
>> riscv64-linux-ld: pch_gbe_main.c:(.text+0x5266): undefined reference to `pch_src_uuid_hi_read'
riscv64-linux-ld: drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.o: in function `.L515':
>> pch_gbe_main.c:(.text+0x540e): undefined reference to `pch_rx_snap_read'
>> riscv64-linux-ld: pch_gbe_main.c:(.text+0x545c): undefined reference to `pch_ch_event_write'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
[rcu:rcu/next 34/42] kernel/rcu/tasks.h:601:20: error: static declaration of 'show_rcu_tasks_classic_gp_kthread' follows non-static declaration
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next
head: 7323bc24b9c5f4d11e9f926eb1d0f3f674f3bd1d
commit: 675d3ca52626bac52da2c6ddaec94dd1a3724f0f [34/42] rcutorture: Make grace-period kthread report match RCU flavor being tested
config: x86_64-kexec (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
git checkout 675d3ca52626bac52da2c6ddaec94dd1a3724f0f
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/rcu/update.c:578:
>> kernel/rcu/tasks.h:601:20: error: static declaration of 'show_rcu_tasks_classic_gp_kthread' follows non-static declaration
601 | static inline void show_rcu_tasks_classic_gp_kthread(void) { }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/rcu/update.c:49:
kernel/rcu/rcu.h:537:6: note: previous declaration of 'show_rcu_tasks_classic_gp_kthread' was here
537 | void show_rcu_tasks_classic_gp_kthread(void);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/rcu/update.c:578:
kernel/rcu/tasks.h:1222:20: error: static declaration of 'show_rcu_tasks_trace_gp_kthread' follows non-static declaration
1222 | static inline void show_rcu_tasks_trace_gp_kthread(void) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/rcu/update.c:49:
kernel/rcu/rcu.h:539:6: note: previous declaration of 'show_rcu_tasks_trace_gp_kthread' was here
539 | void show_rcu_tasks_trace_gp_kthread(void);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/com...
git remote add rcu https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
git fetch --no-tags rcu rcu/next
git checkout 675d3ca52626bac52da2c6ddaec94dd1a3724f0f
vim +/show_rcu_tasks_classic_gp_kthread +601 kernel/rcu/tasks.h
25246fc83155b25 Paul E. McKenney 2020-04-05 599
e21408ceec2de5b Paul E. McKenney 2020-03-16 600 #else /* #ifdef CONFIG_TASKS_RCU */
01c7eedbd55bd3d Paul E. McKenney 2020-08-25 @601 static inline void show_rcu_tasks_classic_gp_kthread(void) { }
25246fc83155b25 Paul E. McKenney 2020-04-05 602 void exit_tasks_rcu_start(void) { }
25246fc83155b25 Paul E. McKenney 2020-04-05 603 void exit_tasks_rcu_finish(void) { exit_tasks_rcu_finish_trace(current); }
e21408ceec2de5b Paul E. McKenney 2020-03-16 604 #endif /* #else #ifdef CONFIG_TASKS_RCU */
c84aad765406c4c Paul E. McKenney 2020-03-02 605
:::::: The code at line 601 was first introduced by commit
:::::: 01c7eedbd55bd3dd9ca881a979a99c6a0571011f rcu-tasks: Prevent complaints of unused show_rcu_tasks_classic_gp_kthread()
:::::: TO: Paul E. McKenney <paulmck(a)kernel.org>
:::::: CC: Paul E. McKenney <paulmck(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
[ceph-client:testing 2/3] net/ceph/mon_client.c:928:2: warning: function 'do_mon_command_vargs' might be a candidate for 'gnu_printf' format attribute
by kernel test robot
tree: https://github.com/ceph/ceph-client.git testing
head: a274f50dee76e2182580cafeb908d95bda2cac70
commit: c3e9a9f0a4b9178a5c4068b73d6579e8346cd3f3 [2/3] libceph: switch to the new "osd blocklist add" command
config: arm-randconfig-r012-20200916 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
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
git checkout c3e9a9f0a4b9178a5c4068b73d6579e8346cd3f3
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
net/ceph/mon_client.c: In function 'do_mon_command_vargs':
>> net/ceph/mon_client.c:928:2: warning: function 'do_mon_command_vargs' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
928 | len = vsprintf(h->str, fmt, ap);
| ^~~
# https://github.com/ceph/ceph-client/commit/c3e9a9f0a4b9178a5c4068b73d6579...
git remote add ceph-client https://github.com/ceph/ceph-client.git
git fetch --no-tags ceph-client testing
git checkout c3e9a9f0a4b9178a5c4068b73d6579e8346cd3f3
vim +928 net/ceph/mon_client.c
898
899 static int do_mon_command_vargs(struct ceph_mon_client *monc,
900 const char *fmt, va_list ap)
901 {
902 struct ceph_mon_generic_request *req;
903 struct ceph_mon_command *h;
904 int ret = -ENOMEM;
905 int len;
906
907 req = alloc_generic_request(monc, GFP_NOIO);
908 if (!req)
909 goto out;
910
911 req->request = ceph_msg_new(CEPH_MSG_MON_COMMAND, 256, GFP_NOIO, true);
912 if (!req->request)
913 goto out;
914
915 req->reply = ceph_msg_new(CEPH_MSG_MON_COMMAND_ACK, 512, GFP_NOIO,
916 true);
917 if (!req->reply)
918 goto out;
919
920 mutex_lock(&monc->mutex);
921 register_generic_request(req);
922 h = req->request->front.iov_base;
923 h->monhdr.have_version = 0;
924 h->monhdr.session_mon = cpu_to_le16(-1);
925 h->monhdr.session_mon_tid = 0;
926 h->fsid = monc->monmap->fsid;
927 h->num_strs = cpu_to_le32(1);
> 928 len = vsprintf(h->str, fmt, ap);
929 h->str_len = cpu_to_le32(len);
930 send_generic_request(monc, req);
931 mutex_unlock(&monc->mutex);
932
933 ret = wait_generic_request(req);
934 out:
935 put_generic_request(req);
936 return ret;
937 }
938
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:932:2: warning: 'strncpy' specified bound 128 equals destination size
by kernel test robot
Hi Jacopo,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5925fa68fe8244651b3f78a88c4af99190a88f0d
commit: b18ee53ad297264a79cf4ea566663f20786b6455 staging: bcm2835: Break MMAL support out from camera
date: 3 months ago
config: nds32-randconfig-r003-20200917 (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.3.0
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
git checkout b18ee53ad297264a79cf4ea566663f20786b6455
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nds32
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from ./arch/nds32/include/generated/asm/bug.h:1,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from include/asm-generic/preempt.h:5,
from ./arch/nds32/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/seqlock.h:36,
from include/linux/time.h:6,
from include/linux/stat.h:19,
from include/linux/module.h:13,
from drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:20:
include/linux/dma-mapping.h: In function 'dma_map_resource':
arch/nds32/include/asm/memory.h:82:32: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
82 | #define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
| ^~
include/asm-generic/bug.h:144:27: note: in definition of macro 'WARN_ON_ONCE'
144 | int __ret_warn_once = !!(condition); \
| ^~~~~~~~~
include/linux/dma-mapping.h:352:19: note: in expansion of macro 'pfn_valid'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c: In function 'create_component':
>> drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c:932:2: warning: 'strncpy' specified bound 128 equals destination size [-Wstringop-truncation]
932 | strncpy(m.u.component_create.name, name,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
933 | sizeof(m.u.component_create.name));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b18ee53ad297264a79cf4ea566663f20786b6455
vim +/strncpy +932 drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 918
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 919 /* create comonent on vc */
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 920 static int create_component(struct vchiq_mmal_instance *instance,
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 921 struct vchiq_mmal_component *component,
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 922 const char *name)
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 923 {
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 924 int ret;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 925 struct mmal_msg m;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 926 struct mmal_msg *rmsg;
9d4d3ac473912a drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c Dominic Braun 2018-12-14 927 struct vchi_held_msg rmsg_handle;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 928
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 929 /* build component create message */
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 930 m.h.type = MMAL_MSG_TYPE_COMPONENT_CREATE;
4fe08093094e5f drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c Michael Zoran 2017-03-09 931 m.u.component_create.client_component = (u32)(unsigned long)component;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 @932 strncpy(m.u.component_create.name, name,
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 933 sizeof(m.u.component_create.name));
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 934
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 935 ret = send_synchronous_mmal_msg(instance, &m,
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 936 sizeof(m.u.component_create),
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 937 &rmsg, &rmsg_handle);
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 938 if (ret)
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 939 return ret;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 940
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 941 if (rmsg->h.type != m.h.type) {
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 942 /* got an unexpected message type in reply */
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 943 ret = -EINVAL;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 944 goto release_msg;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 945 }
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 946
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 947 ret = -rmsg->u.component_create_reply.status;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 948 if (ret != MMAL_MSG_STATUS_SUCCESS)
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 949 goto release_msg;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 950
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 951 /* a valid component response received */
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 952 component->handle = rmsg->u.component_create_reply.component_handle;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 953 component->inputs = rmsg->u.component_create_reply.input_num;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 954 component->outputs = rmsg->u.component_create_reply.output_num;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 955 component->clocks = rmsg->u.component_create_reply.clock_num;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 956
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 957 pr_debug("Component handle:0x%x in:%d out:%d clock:%d\n",
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 958 component->handle,
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 959 component->inputs, component->outputs, component->clocks);
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 960
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 961 release_msg:
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 962 vchi_held_msg_release(&rmsg_handle);
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 963
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 964 return ret;
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 965 }
7b3ad5abf027b7 drivers/staging/media/platform/bcm2835/mmal-vchiq.c Eric Anholt 2017-01-27 966
:::::: The code at line 932 was first introduced by commit
:::::: 7b3ad5abf027b7643b38c4006d7f4ce47a86dd3a staging: Import the BCM2835 MMAL-based V4L2 camera driver.
:::::: TO: Eric Anholt <eric(a)anholt.net>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years
Re: [PATCH 2/3] powerpc/mce: Add debugfs interface to inject MCE
by kernel test robot
Hi Ganesh,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on powerpc/next]
[also build test WARNING on v5.9-rc5 next-20200916]
[cannot apply to scottwood/next mpe/next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Ganesh-Goudar/powerpc-mce-Fix-mc...
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
arch/powerpc/sysdev/mce_error_inject.c: In function 'insert_slb_entry':
>> arch/powerpc/sysdev/mce_error_inject.c:52:22: warning: variable 'paca' set but not used [-Wunused-but-set-variable]
52 | struct paca_struct *paca;
| ^~~~
# https://github.com/0day-ci/linux/commit/4ab1196e8e542fdf0e7cda8638dfb0e57...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ganesh-Goudar/powerpc-mce-Fix-mce-handler-and-add-selftest/20200917-092355
git checkout 4ab1196e8e542fdf0e7cda8638dfb0e5771fd98e
vim +/paca +52 arch/powerpc/sysdev/mce_error_inject.c
48
49 static void insert_slb_entry(char *p, int ssize)
50 {
51 unsigned long flags, entry;
> 52 struct paca_struct *paca;
53
54 flags = SLB_VSID_KERNEL | mmu_psize_defs[MMU_PAGE_64K].sllp;
55
56 preempt_disable();
57
58 paca = get_paca();
59
60 entry = get_slb_index();
61 asm volatile("slbmte %0,%1" :
62 : "r" (mk_vsid_data((unsigned long)p, ssize, flags)),
63 "r" (mk_esid_data((unsigned long)p, ssize, entry))
64 : "memory");
65
66 entry = get_slb_index();
67 asm volatile("slbmte %0,%1" :
68 : "r" (mk_vsid_data((unsigned long)p, ssize, flags)),
69 "r" (mk_esid_data((unsigned long)p, ssize, entry))
70 : "memory");
71 preempt_enable();
72 p[0] = '!';
73 }
74
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years