Re: [PATCH 2/8] mpt3sas: Add persistent trigger pages support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Suganath,

I love your patch! Perhaps something to improve:

[auto build test WARNING on scsi/for-next]
[also build test WARNING on mkp-scsi/for-next v5.10-rc5 next-20201123]
[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/Suganath-Prabu-S/mpt3sas-Features-to-enhance-driver-debugging/20201124-115842
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/6ef897d0859c5415dc82c174e1f2a83b286e9ae2
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Suganath-Prabu-S/mpt3sas-Features-to-enhance-driver-debugging/20201124-115842
        git checkout 6ef897d0859c5415dc82c174e1f2a83b286e9ae2
        # 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@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/scsi/mpt3sas/mpt3sas_config.c:1793:1: warning: no previous prototype for '_config_set_driver_trigger_pg0' [-Wmissing-prototypes]
    1793 | _config_set_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/mpt3sas/mpt3sas_config.c:1835:1: warning: no previous prototype for 'mpt3sas_config_update_driver_trigger_pg0' [-Wmissing-prototypes]
    1835 | mpt3sas_config_update_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vim +/_config_set_driver_trigger_pg0 +1793 drivers/scsi/mpt3sas/mpt3sas_config.c

  1782	
  1783	/**
  1784	 * mpt3sas_config_set_driver_trigger_pg0 - write driver trigger page 0
  1785	 * @ioc: per adapter object
  1786	 * @mpi_reply: reply mf payload returned from firmware
  1787	 * @config_page: contents of the config page
  1788	 * Context: sleep.
  1789	 *
  1790	 * Returns 0 for success, non-zero for failure.
  1791	 */
  1792	int
> 1793	_config_set_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
  1794		Mpi2ConfigReply_t *mpi_reply, Mpi26DriverTriggerPage0_t *config_page)
  1795	{
  1796		Mpi2ConfigRequest_t mpi_request;
  1797		int r;
  1798	
  1799		memset(&mpi_request, 0, sizeof(Mpi2ConfigRequest_t));
  1800		mpi_request.Function = MPI2_FUNCTION_CONFIG;
  1801		mpi_request.Action = MPI2_CONFIG_ACTION_PAGE_HEADER;
  1802		mpi_request.Header.PageType = MPI2_CONFIG_PAGETYPE_EXTENDED;
  1803		mpi_request.ExtPageType =
  1804		    MPI2_CONFIG_EXTPAGETYPE_DRIVER_PERSISTENT_TRIGGER;
  1805		mpi_request.Header.PageNumber = 0;
  1806		mpi_request.Header.PageVersion = MPI26_DRIVER_TRIGGER_PAGE0_PAGEVERSION;
  1807		ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
  1808		r = _config_request(ioc, &mpi_request, mpi_reply,
  1809		    MPT3_CONFIG_PAGE_DEFAULT_TIMEOUT, NULL, 0);
  1810		if (r)
  1811			goto out;
  1812	
  1813		mpi_request.Action = MPI2_CONFIG_ACTION_PAGE_WRITE_CURRENT;
  1814		_config_request(ioc, &mpi_request, mpi_reply,
  1815		    MPT3_CONFIG_PAGE_DEFAULT_TIMEOUT, config_page,
  1816		    sizeof(*config_page));
  1817		mpi_request.Action = MPI2_CONFIG_ACTION_PAGE_WRITE_NVRAM;
  1818		r = _config_request(ioc, &mpi_request, mpi_reply,
  1819		    MPT3_CONFIG_PAGE_DEFAULT_TIMEOUT, config_page,
  1820		    sizeof(*config_page));
  1821	 out:
  1822		return r;
  1823	}
  1824	
  1825	/**
  1826	 * mpt3sas_config_update_driver_trigger_pg0 - update driver trigger page 0
  1827	 * @ioc: per adapter object
  1828	 * @trigger_flags: trigger type bit map
  1829	 * @set: set ot clear trigger values
  1830	 * Context: sleep.
  1831	 *
  1832	 * Returns 0 for success, non-zero for failure.
  1833	 */
  1834	int
> 1835	mpt3sas_config_update_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
  1836		u16 trigger_flag, bool set)
  1837	{
  1838		Mpi26DriverTriggerPage0_t tg_pg0;
  1839		Mpi2ConfigReply_t mpi_reply;
  1840		int rc;
  1841		u16 flags, ioc_status;
  1842	
  1843		rc = mpt3sas_config_get_driver_trigger_pg0(ioc, &mpi_reply, &tg_pg0);
  1844		if (rc)
  1845			return rc;
  1846		ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
  1847		    MPI2_IOCSTATUS_MASK;
  1848		if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
  1849			dcprintk(ioc,
  1850			    ioc_err(ioc,
  1851			    "%s: Failed to get trigger pg0, ioc_status(0x%04x)\n",
  1852			    __func__, ioc_status));
  1853			return -EFAULT;
  1854		}
  1855	
  1856		if (set)
  1857			flags = le16_to_cpu(tg_pg0.TriggerFlags) | trigger_flag;
  1858		else
  1859			flags = le16_to_cpu(tg_pg0.TriggerFlags) & ~trigger_flag;
  1860	
  1861		tg_pg0.TriggerFlags = cpu_to_le16(flags);
  1862	
  1863		rc = _config_set_driver_trigger_pg0(ioc, &mpi_reply, &tg_pg0);
  1864		if (rc)
  1865			return rc;
  1866		ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
  1867		    MPI2_IOCSTATUS_MASK;
  1868		if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
  1869			dcprintk(ioc,
  1870			    ioc_err(ioc,
  1871			    "%s: Failed to update trigger pg0, ioc_status(0x%04x)\n",
  1872			    __func__, ioc_status));
  1873			return -EFAULT;
  1874		}
  1875	
  1876		return 0;
  1877	}
  1878	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux