From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 9026/9759] drivers/i2c/busses/i2c-at91-master.c:717 at91_twi_xfer() error: uninitialized symbol 'dma_buf'.
Date: Sun, 08 May 2022 19:30:32 +0800 [thread overview]
Message-ID: <202205081947.fD7bMIMF-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 9629 bytes --]
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Michael Walle <michael@walle.cc>
CC: Wolfram Sang <wsa-dev@sang-engineering.com>
CC: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 38a288f5941ef03752887ad86f2d85442358c99a
commit: 03fbb903c8bf7e53e101e8d9a7b261264317c411 [9026/9759] i2c: at91: use dma safe buffers
:::::: branch date: 2 days ago
:::::: commit date: 4 days ago
config: csky-randconfig-m031-20220508 (https://download.01.org/0day-ci/archive/20220508/202205081947.fD7bMIMF-lkp(a)intel.com/config)
compiler: csky-linux-gcc (GCC) 11.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/i2c/busses/i2c-at91-master.c:717 at91_twi_xfer() error: uninitialized symbol 'dma_buf'.
Old smatch warnings:
drivers/i2c/busses/i2c-at91-master.c:837 at91_init_twi_recovery_gpio() warn: passing zero to 'PTR_ERR'
vim +/dma_buf +717 drivers/i2c/busses/i2c-at91-master.c
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 651
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 652 static int at91_twi_xfer(struct i2c_adapter *adap, struct i2c_msg *msg, int num)
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 653 {
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 654 struct at91_twi_dev *dev = i2c_get_adapdata(adap);
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 655 int ret;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 656 unsigned int_addr_flag = 0;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 657 struct i2c_msg *m_start = msg;
434f14e745442a drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2016-08-03 658 bool is_read;
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 659 u8 *dma_buf;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 660
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 661 dev_dbg(&adap->dev, "at91_xfer: processing %d messages:\n", num);
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 662
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 663 ret = pm_runtime_get_sync(dev->dev);
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 664 if (ret < 0)
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 665 goto out;
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 666
a7405844da1c80 drivers/i2c/busses/i2c-at91.c Wolfram Sang 2015-01-07 667 if (num == 2) {
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 668 int internal_address = 0;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 669 int i;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 670
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 671 /* 1st msg is put into the internal address, start with 2nd */
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 672 m_start = &msg[1];
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 673 for (i = 0; i < msg->len; ++i) {
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 674 const unsigned addr = msg->buf[msg->len - 1 - i];
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 675
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 676 internal_address |= addr << (8 * i);
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 677 int_addr_flag += AT91_TWI_IADRSZ_1;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 678 }
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 679 at91_twi_write(dev, AT91_TWI_IADR, internal_address);
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 680 }
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 681
434f14e745442a drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2016-08-03 682 dev->use_alt_cmd = false;
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 683 is_read = (m_start->flags & I2C_M_RD);
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 684 if (dev->pdata->has_alt_cmd) {
434f14e745442a drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2016-08-03 685 if (m_start->len > 0 &&
434f14e745442a drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2016-08-03 686 m_start->len < AT91_I2C_MAX_ALT_CMD_DATA_SIZE) {
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 687 at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_ACMEN);
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 688 at91_twi_write(dev, AT91_TWI_ACR,
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 689 AT91_TWI_ACR_DATAL(m_start->len) |
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 690 ((is_read) ? AT91_TWI_ACR_DIR : 0));
434f14e745442a drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2016-08-03 691 dev->use_alt_cmd = true;
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 692 } else {
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 693 at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_ACMDIS);
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 694 }
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 695 }
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 696
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 697 at91_twi_write(dev, AT91_TWI_MMR,
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 698 (m_start->addr << 16) |
0ef6f3213dac48 drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2015-06-09 699 int_addr_flag |
434f14e745442a drivers/i2c/busses/i2c-at91.c Cyrille Pitchen 2016-08-03 700 ((!dev->use_alt_cmd && is_read) ? AT91_TWI_MREAD : 0));
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 701
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 702 dev->buf_len = m_start->len;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 703 dev->buf = m_start->buf;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 704 dev->msg = m_start;
75b81f339c6af4 drivers/i2c/busses/i2c-at91.c Marek Roszko 2014-08-20 705 dev->recv_len_abort = false;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 706
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 707 if (dev->use_dma) {
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 708 dma_buf = i2c_get_dma_safe_msg_buf(m_start, 1);
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 709 if (!dma_buf) {
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 710 ret = -ENOMEM;
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 711 goto out;
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 712 }
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 713 dev->buf = dma_buf;
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 714 }
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 715
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 716 ret = at91_do_twi_transfer(dev);
03fbb903c8bf7e drivers/i2c/busses/i2c-at91-master.c Michael Walle 2022-04-07 @717 i2c_put_dma_safe_msg_buf(dma_buf, m_start, !ret);
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 718
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 719 ret = (ret < 0) ? ret : num;
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 720 out:
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 721 pm_runtime_mark_last_busy(dev->dev);
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 722 pm_runtime_put_autosuspend(dev->dev);
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 723
d64a818859af3b drivers/i2c/busses/i2c-at91.c Wenyou Yang 2014-10-24 724 return ret;
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 725 }
fac368a0404842 drivers/i2c/busses/i2c-at91.c Nikolaus Voss 2011-11-08 726
--
0-DAY CI Kernel Test Service
https://01.org/lkp
reply other threads:[~2022-05-08 11:30 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202205081947.fD7bMIMF-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.