lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Wed, 18 Aug 2021 20:47:01 +0800
From:   kernel test robot <lkp@...el.com>
To:     Kees Cook <keescook@...omium.org>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        "Gustavo A. R. Silva" <gustavoars@...nel.org>
Subject: [kees:kspp/array-bounds/next-20210816/v1 9/10]
 drivers/scsi/megaraid.c:211:13: warning: array subscript 'mbox_t[0]' is
 partly outside array bounds of 'u8[15]' {aka 'unsigned char[15]'}

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git kspp/array-bounds/next-20210816/v1
head:   b07d5e8190ca172b1ffddd1412b921296000b379
commit: ecc23a9ee765008e439113eea38fb1cbbd3d7c83 [9/10] Makefile: Enable -Warray-bounds
config: arc-randconfig-r043-20210818 (attached as .config)
compiler: arceb-elf-gcc (GCC) 11.2.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
        # https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?id=ecc23a9ee765008e439113eea38fb1cbbd3d7c83
        git remote add kees https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git
        git fetch --no-tags kees kspp/array-bounds/next-20210816/v1
        git checkout ecc23a9ee765008e439113eea38fb1cbbd3d7c83
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

   drivers/scsi/megaraid.c: In function 'mega_query_adapter':
>> drivers/scsi/megaraid.c:211:13: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'u8[15]' {aka 'unsigned char[15]'} [-Warray-bounds]
     211 |         mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
         |             ^~
   drivers/scsi/megaraid.c:195:17: note: while referencing 'raw_mbox'
     195 |         u8      raw_mbox[sizeof(struct mbox_out)];
         |                 ^~~~~~~~
   drivers/scsi/megaraid.c:265:21: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'u8[15]' {aka 'unsigned char[15]'} [-Warray-bounds]
     265 |                 mbox->m_out.xferaddr = prod_info_dma_handle;
         |                     ^~
   drivers/scsi/megaraid.c:195:17: note: while referencing 'raw_mbox'
     195 |         u8      raw_mbox[sizeof(struct mbox_out)];
         |                 ^~~~~~~~
   drivers/scsi/megaraid.c:235:21: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'u8[15]' {aka 'unsigned char[15]'} [-Warray-bounds]
     235 |                 mbox->m_out.xferaddr = (u32)dma_handle;
         |                     ^~
   drivers/scsi/megaraid.c:195:17: note: while referencing 'raw_mbox'
     195 |         u8      raw_mbox[sizeof(struct mbox_out)];
         |                 ^~~~~~~~
   drivers/scsi/megaraid.c:238:21: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'u8[15]' {aka 'unsigned char[15]'} [-Warray-bounds]
     238 |                 mbox->m_out.cmd = MEGA_MBOXCMD_ADPEXTINQ;
         |                     ^~
   drivers/scsi/megaraid.c:195:17: note: while referencing 'raw_mbox'
     195 |         u8      raw_mbox[sizeof(struct mbox_out)];
         |                 ^~~~~~~~
>> drivers/scsi/megaraid.c:3881:30: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'unsigned char[15]' [-Warray-bounds]
    3881 |         mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
         |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/megaraid.c:3872:25: note: while referencing 'raw_mbox'
    3872 |         unsigned char   raw_mbox[sizeof(struct mbox_out)];
         |                         ^~~~~~~~
   drivers/scsi/megaraid.c: In function 'megaraid_probe_one':
   drivers/scsi/megaraid.c:3585:30: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'unsigned char[15]' [-Warray-bounds]
    3585 |         mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
         |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/megaraid.c:3576:25: note: while referencing 'raw_mbox'
    3576 |         unsigned char   raw_mbox[sizeof(struct mbox_out)];
         |                         ^~~~~~~~
   drivers/scsi/megaraid.c:3623:30: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'unsigned char[15]' [-Warray-bounds]
    3623 |         mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
         |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/megaraid.c:3607:23: note: while referencing 'raw_mbox'
    3607 |         unsigned char raw_mbox[sizeof(struct mbox_out)];
         |                       ^~~~~~~~
   drivers/scsi/megaraid.c:3678:30: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'unsigned char[15]' [-Warray-bounds]
    3678 |         mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
         |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/megaraid.c:3662:25: note: while referencing 'raw_mbox'
    3662 |         unsigned char   raw_mbox[sizeof(struct mbox_out)];
         |                         ^~~~~~~~
   drivers/scsi/megaraid.c:3926:30: warning: array subscript 'mbox_t[0]' is partly outside array bounds of 'unsigned char[15]' [-Warray-bounds]
    3926 |         mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
         |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/megaraid.c:3917:25: note: while referencing 'raw_mbox'
    3917 |         unsigned char   raw_mbox[sizeof(struct mbox_out)];
         |                         ^~~~~~~~
--
   drivers/thunderbolt/xdomain.c: In function 'tb_xdomain_properties_changed':
>> drivers/thunderbolt/xdomain.c:226:22: warning: array subscript 'const struct tb_xdp_error_response[0]' is partly outside array bounds of 'struct tb_xdp_properties_changed_response[1]' [-Warray-bounds]
     226 |         switch (error->error) {
         |                 ~~~~~^~~~~~~
   drivers/thunderbolt/xdomain.c:448:51: note: while referencing 'res'
     448 |         struct tb_xdp_properties_changed_response res;
         |                                                   ^~~
--
   drivers/gpu/drm/drm_dp_helper.c: In function 'drm_dp_get_adjust_request_post_cursor':
>> drivers/gpu/drm/drm_dp_helper.c:59:27: warning: array subscript 10 is outside array bounds of 'const u8[6]' {aka 'const unsigned char[6]'} [-Warray-bounds]
      59 |         return link_status[r - DP_LANE0_1_STATUS];
         |                ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_dp_helper.c:133:51: note: while referencing 'link_status'
     133 | u8 drm_dp_get_adjust_request_post_cursor(const u8 link_status[DP_LINK_STATUS_SIZE],
         |                                          ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_dp_helper.c: In function 'drm_dp_pcon_dsc_bpp_incr':
   drivers/gpu/drm/drm_dp_helper.c:2981:28: warning: array subscript 12 is outside array bounds of 'const u8[12]' {aka 'const unsigned char[12]'} [-Warray-bounds]
    2981 |         buf = pcon_dsc_dpcd[DP_PCON_DSC_BPP_INCR - DP_PCON_DSC_ENCODER];
         |               ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_dp_helper.c:2977:39: note: while referencing 'pcon_dsc_dpcd'
    2977 | int drm_dp_pcon_dsc_bpp_incr(const u8 pcon_dsc_dpcd[DP_PCON_DSC_ENCODER_CAP_SIZE])
         |                              ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
   In file included from net/mac80211/tx.c:15:
   net/mac80211/tx.c: In function 'ieee80211_xmit_fast':
>> include/linux/skbuff.h:2048:9: warning: array subscript 'struct sk_buff[0]' is partly outside array bounds of 'struct ieee80211_tx_data[1]' [-Warray-bounds]
    2048 |         __skb_insert(newsk, next->prev, next, list);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/mac80211/tx.c:3506:34: note: while referencing 'tx'
    3506 |         struct ieee80211_tx_data tx;
         |                                  ^~
--
   In file included from include/linux/if_ether.h:19,
                    from net/mac80211/ieee80211_i.h:16,
                    from net/mac80211/mesh.h:13,
                    from net/mac80211/mesh_ps.c:7:
   net/mac80211/mesh_ps.c: In function 'mps_frame_deliver':
>> include/linux/skbuff.h:2048:9: warning: array subscript 'struct sk_buff[0]' is partly outside array bounds of 'struct sk_buff_head[1]' [-Warray-bounds]
    2048 |         __skb_insert(newsk, next->prev, next, list);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/mac80211/mesh_ps.c:454:29: note: while referencing 'frames'
     454 |         struct sk_buff_head frames;
         |                             ^~~~~~
   In file included from include/linux/if_ether.h:19,
                    from net/mac80211/ieee80211_i.h:16,
                    from net/mac80211/mesh.h:13,
                    from net/mac80211/mesh_ps.c:7:
>> include/linux/skbuff.h:2048:9: warning: array subscript 'struct sk_buff[0]' is partly outside array bounds of 'struct sk_buff_head[1]' [-Warray-bounds]
    2048 |         __skb_insert(newsk, next->prev, next, list);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/mac80211/mesh_ps.c:454:29: note: while referencing 'frames'
     454 |         struct sk_buff_head frames;
         |                             ^~~~~~
--
   In file included from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from net/mac80211/sta_info.c:12:
   net/mac80211/sta_info.c: In function 'ieee80211_sta_ps_deliver_response':
>> include/linux/skbuff.h:2048:9: warning: array subscript 'struct sk_buff[0]' is partly outside array bounds of 'struct sk_buff_head[1]' [-Warray-bounds]
    2048 |         __skb_insert(newsk, next->prev, next, list);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/mac80211/sta_info.c:1577:29: note: while referencing 'frames'
    1577 |         struct sk_buff_head frames;
         |                             ^~~~~~
   In file included from include/linux/if_ether.h:19,
                    from include/linux/etherdevice.h:20,
                    from net/mac80211/sta_info.c:12:
>> include/linux/skbuff.h:2048:9: warning: array subscript 'struct sk_buff[0]' is partly outside array bounds of 'struct sk_buff_head[1]' [-Warray-bounds]
    2048 |         __skb_insert(newsk, next->prev, next, list);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/mac80211/sta_info.c:1620:37: note: while referencing 'pending'
    1620 |                 struct sk_buff_head pending;
         |                                     ^~~~~~~


vim +211 drivers/scsi/megaraid.c

^1da177e4c3f41 Linus Torvalds 2005-04-16  181  
^1da177e4c3f41 Linus Torvalds 2005-04-16  182  
^1da177e4c3f41 Linus Torvalds 2005-04-16  183  /*
^1da177e4c3f41 Linus Torvalds 2005-04-16  184   * mega_query_adapter()
^1da177e4c3f41 Linus Torvalds 2005-04-16  185   * @adapter - pointer to our soft state
^1da177e4c3f41 Linus Torvalds 2005-04-16  186   *
^1da177e4c3f41 Linus Torvalds 2005-04-16  187   * Issue the adapter inquiry commands to the controller and find out
^1da177e4c3f41 Linus Torvalds 2005-04-16  188   * information and parameter about the devices attached
^1da177e4c3f41 Linus Torvalds 2005-04-16  189   */
^1da177e4c3f41 Linus Torvalds 2005-04-16  190  static int
^1da177e4c3f41 Linus Torvalds 2005-04-16  191  mega_query_adapter(adapter_t *adapter)
^1da177e4c3f41 Linus Torvalds 2005-04-16  192  {
^1da177e4c3f41 Linus Torvalds 2005-04-16  193  	dma_addr_t	prod_info_dma_handle;
^1da177e4c3f41 Linus Torvalds 2005-04-16  194  	mega_inquiry3	*inquiry3;
^1da177e4c3f41 Linus Torvalds 2005-04-16  195  	u8	raw_mbox[sizeof(struct mbox_out)];
^1da177e4c3f41 Linus Torvalds 2005-04-16  196  	mbox_t	*mbox;
^1da177e4c3f41 Linus Torvalds 2005-04-16  197  	int	retval;
^1da177e4c3f41 Linus Torvalds 2005-04-16  198  
^1da177e4c3f41 Linus Torvalds 2005-04-16  199  	/* Initialize adapter inquiry mailbox */
^1da177e4c3f41 Linus Torvalds 2005-04-16  200  
^1da177e4c3f41 Linus Torvalds 2005-04-16  201  	mbox = (mbox_t *)raw_mbox;
^1da177e4c3f41 Linus Torvalds 2005-04-16  202  
^1da177e4c3f41 Linus Torvalds 2005-04-16  203  	memset((void *)adapter->mega_buffer, 0, MEGA_BUFFER_SIZE);
^1da177e4c3f41 Linus Torvalds 2005-04-16  204  	memset(&mbox->m_out, 0, sizeof(raw_mbox));
^1da177e4c3f41 Linus Torvalds 2005-04-16  205  
^1da177e4c3f41 Linus Torvalds 2005-04-16  206  	/*
^1da177e4c3f41 Linus Torvalds 2005-04-16  207  	 * Try to issue Inquiry3 command
^1da177e4c3f41 Linus Torvalds 2005-04-16  208  	 * if not succeeded, then issue MEGA_MBOXCMD_ADAPTERINQ command and
^1da177e4c3f41 Linus Torvalds 2005-04-16  209  	 * update enquiry3 structure
^1da177e4c3f41 Linus Torvalds 2005-04-16  210  	 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 @211  	mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
^1da177e4c3f41 Linus Torvalds 2005-04-16  212  
^1da177e4c3f41 Linus Torvalds 2005-04-16  213  	inquiry3 = (mega_inquiry3 *)adapter->mega_buffer;
^1da177e4c3f41 Linus Torvalds 2005-04-16  214  
^1da177e4c3f41 Linus Torvalds 2005-04-16  215  	raw_mbox[0] = FC_NEW_CONFIG;		/* i.e. mbox->cmd=0xA1 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  216  	raw_mbox[2] = NC_SUBOP_ENQUIRY3;	/* i.e. 0x0F */
^1da177e4c3f41 Linus Torvalds 2005-04-16  217  	raw_mbox[3] = ENQ3_GET_SOLICITED_FULL;	/* i.e. 0x02 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  218  
^1da177e4c3f41 Linus Torvalds 2005-04-16  219  	/* Issue a blocking command to the card */
^1da177e4c3f41 Linus Torvalds 2005-04-16  220  	if ((retval = issue_scb_block(adapter, raw_mbox))) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  221  		/* the adapter does not support 40ld */
^1da177e4c3f41 Linus Torvalds 2005-04-16  222  
^1da177e4c3f41 Linus Torvalds 2005-04-16  223  		mraid_ext_inquiry	*ext_inq;
^1da177e4c3f41 Linus Torvalds 2005-04-16  224  		mraid_inquiry		*inq;
^1da177e4c3f41 Linus Torvalds 2005-04-16  225  		dma_addr_t		dma_handle;
^1da177e4c3f41 Linus Torvalds 2005-04-16  226  
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  227  		ext_inq = dma_alloc_coherent(&adapter->dev->dev,
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  228  					     sizeof(mraid_ext_inquiry),
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  229  					     &dma_handle, GFP_KERNEL);
^1da177e4c3f41 Linus Torvalds 2005-04-16  230  
^1da177e4c3f41 Linus Torvalds 2005-04-16  231  		if( ext_inq == NULL ) return -1;
^1da177e4c3f41 Linus Torvalds 2005-04-16  232  
^1da177e4c3f41 Linus Torvalds 2005-04-16  233  		inq = &ext_inq->raid_inq;
^1da177e4c3f41 Linus Torvalds 2005-04-16  234  
^1da177e4c3f41 Linus Torvalds 2005-04-16  235  		mbox->m_out.xferaddr = (u32)dma_handle;
^1da177e4c3f41 Linus Torvalds 2005-04-16  236  
^1da177e4c3f41 Linus Torvalds 2005-04-16  237  		/*issue old 0x04 command to adapter */
^1da177e4c3f41 Linus Torvalds 2005-04-16  238  		mbox->m_out.cmd = MEGA_MBOXCMD_ADPEXTINQ;
^1da177e4c3f41 Linus Torvalds 2005-04-16  239  
^1da177e4c3f41 Linus Torvalds 2005-04-16  240  		issue_scb_block(adapter, raw_mbox);
^1da177e4c3f41 Linus Torvalds 2005-04-16  241  
^1da177e4c3f41 Linus Torvalds 2005-04-16  242  		/*
^1da177e4c3f41 Linus Torvalds 2005-04-16  243  		 * update Enquiry3 and ProductInfo structures with
^1da177e4c3f41 Linus Torvalds 2005-04-16  244  		 * mraid_inquiry structure
^1da177e4c3f41 Linus Torvalds 2005-04-16  245  		 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  246  		mega_8_to_40ld(inq, inquiry3,
^1da177e4c3f41 Linus Torvalds 2005-04-16  247  				(mega_product_info *)&adapter->product_info);
^1da177e4c3f41 Linus Torvalds 2005-04-16  248  
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  249  		dma_free_coherent(&adapter->dev->dev,
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  250  				  sizeof(mraid_ext_inquiry), ext_inq,
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  251  				  dma_handle);
^1da177e4c3f41 Linus Torvalds 2005-04-16  252  
^1da177e4c3f41 Linus Torvalds 2005-04-16  253  	} else {		/*adapter supports 40ld */
^1da177e4c3f41 Linus Torvalds 2005-04-16  254  		adapter->flag |= BOARD_40LD;
^1da177e4c3f41 Linus Torvalds 2005-04-16  255  
^1da177e4c3f41 Linus Torvalds 2005-04-16  256  		/*
^1da177e4c3f41 Linus Torvalds 2005-04-16  257  		 * get product_info, which is static information and will be
^1da177e4c3f41 Linus Torvalds 2005-04-16  258  		 * unchanged
^1da177e4c3f41 Linus Torvalds 2005-04-16  259  		 */
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  260  		prod_info_dma_handle = dma_map_single(&adapter->dev->dev,
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  261  						      (void *)&adapter->product_info,
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  262  						      sizeof(mega_product_info),
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  263  						      DMA_FROM_DEVICE);
^1da177e4c3f41 Linus Torvalds 2005-04-16  264  
^1da177e4c3f41 Linus Torvalds 2005-04-16  265  		mbox->m_out.xferaddr = prod_info_dma_handle;
^1da177e4c3f41 Linus Torvalds 2005-04-16  266  
^1da177e4c3f41 Linus Torvalds 2005-04-16  267  		raw_mbox[0] = FC_NEW_CONFIG;	/* i.e. mbox->cmd=0xA1 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  268  		raw_mbox[2] = NC_SUBOP_PRODUCT_INFO;	/* i.e. 0x0E */
^1da177e4c3f41 Linus Torvalds 2005-04-16  269  
^1da177e4c3f41 Linus Torvalds 2005-04-16  270  		if ((retval = issue_scb_block(adapter, raw_mbox)))
3b8a1ba378b750 Bjorn Helgaas  2015-07-07  271  			dev_warn(&adapter->dev->dev,
3b8a1ba378b750 Bjorn Helgaas  2015-07-07  272  				"Product_info cmd failed with error: %d\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16  273  				retval);
^1da177e4c3f41 Linus Torvalds 2005-04-16  274  
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  275  		dma_unmap_single(&adapter->dev->dev, prod_info_dma_handle,
ec090ef8cd1c23 Suraj Upadhyay 2020-07-29  276  				 sizeof(mega_product_info), DMA_FROM_DEVICE);
^1da177e4c3f41 Linus Torvalds 2005-04-16  277  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  278  
^1da177e4c3f41 Linus Torvalds 2005-04-16  279  
^1da177e4c3f41 Linus Torvalds 2005-04-16  280  	/*
^1da177e4c3f41 Linus Torvalds 2005-04-16  281  	 * kernel scans the channels from 0 to <= max_channel
^1da177e4c3f41 Linus Torvalds 2005-04-16  282  	 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  283  	adapter->host->max_channel =
^1da177e4c3f41 Linus Torvalds 2005-04-16  284  		adapter->product_info.nchannels + NVIRT_CHAN -1;
^1da177e4c3f41 Linus Torvalds 2005-04-16  285  
^1da177e4c3f41 Linus Torvalds 2005-04-16  286  	adapter->host->max_id = 16;	/* max targets per channel */
^1da177e4c3f41 Linus Torvalds 2005-04-16  287  
^1da177e4c3f41 Linus Torvalds 2005-04-16  288  	adapter->host->max_lun = 7;	/* Up to 7 luns for non disk devices */
^1da177e4c3f41 Linus Torvalds 2005-04-16  289  
^1da177e4c3f41 Linus Torvalds 2005-04-16  290  	adapter->host->cmd_per_lun = max_cmd_per_lun;
^1da177e4c3f41 Linus Torvalds 2005-04-16  291  
^1da177e4c3f41 Linus Torvalds 2005-04-16  292  	adapter->numldrv = inquiry3->num_ldrv;
^1da177e4c3f41 Linus Torvalds 2005-04-16  293  
^1da177e4c3f41 Linus Torvalds 2005-04-16  294  	adapter->max_cmds = adapter->product_info.max_commands;
^1da177e4c3f41 Linus Torvalds 2005-04-16  295  
^1da177e4c3f41 Linus Torvalds 2005-04-16  296  	if(adapter->max_cmds > MAX_COMMANDS)
^1da177e4c3f41 Linus Torvalds 2005-04-16  297  		adapter->max_cmds = MAX_COMMANDS;
^1da177e4c3f41 Linus Torvalds 2005-04-16  298  
^1da177e4c3f41 Linus Torvalds 2005-04-16  299  	adapter->host->can_queue = adapter->max_cmds - 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16  300  
^1da177e4c3f41 Linus Torvalds 2005-04-16  301  	/*
^1da177e4c3f41 Linus Torvalds 2005-04-16  302  	 * Get the maximum number of scatter-gather elements supported by this
^1da177e4c3f41 Linus Torvalds 2005-04-16  303  	 * firmware
^1da177e4c3f41 Linus Torvalds 2005-04-16  304  	 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  305  	mega_get_max_sgl(adapter);
^1da177e4c3f41 Linus Torvalds 2005-04-16  306  
^1da177e4c3f41 Linus Torvalds 2005-04-16  307  	adapter->host->sg_tablesize = adapter->sglen;
^1da177e4c3f41 Linus Torvalds 2005-04-16  308  
124dd90f6525ee Adam Radford   2012-01-10  309  	/* use HP firmware and bios version encoding
124dd90f6525ee Adam Radford   2012-01-10  310  	   Note: fw_version[0|1] and bios_version[0|1] were originally shifted
124dd90f6525ee Adam Radford   2012-01-10  311  	   right 8 bits making them zero. This 0 value was hardcoded to fix
124dd90f6525ee Adam Radford   2012-01-10  312  	   sparse warnings. */
54ebfd57813ada Jon Mason      2012-07-10  313  	if (adapter->product_info.subsysvid == PCI_VENDOR_ID_HP) {
875826a71c8b5e Arnd Bergmann  2017-07-14  314  		snprintf(adapter->fw_version, sizeof(adapter->fw_version),
875826a71c8b5e Arnd Bergmann  2017-07-14  315  			 "%c%d%d.%d%d",
^1da177e4c3f41 Linus Torvalds 2005-04-16  316  			 adapter->product_info.fw_version[2],
124dd90f6525ee Adam Radford   2012-01-10  317  			 0,
^1da177e4c3f41 Linus Torvalds 2005-04-16  318  			 adapter->product_info.fw_version[1] & 0x0f,
124dd90f6525ee Adam Radford   2012-01-10  319  			 0,
^1da177e4c3f41 Linus Torvalds 2005-04-16  320  			 adapter->product_info.fw_version[0] & 0x0f);
875826a71c8b5e Arnd Bergmann  2017-07-14  321  		snprintf(adapter->bios_version, sizeof(adapter->fw_version),
875826a71c8b5e Arnd Bergmann  2017-07-14  322  			 "%c%d%d.%d%d",
^1da177e4c3f41 Linus Torvalds 2005-04-16  323  			 adapter->product_info.bios_version[2],
124dd90f6525ee Adam Radford   2012-01-10  324  			 0,
^1da177e4c3f41 Linus Torvalds 2005-04-16  325  			 adapter->product_info.bios_version[1] & 0x0f,
124dd90f6525ee Adam Radford   2012-01-10  326  			 0,
^1da177e4c3f41 Linus Torvalds 2005-04-16  327  			 adapter->product_info.bios_version[0] & 0x0f);
^1da177e4c3f41 Linus Torvalds 2005-04-16  328  	} else {
^1da177e4c3f41 Linus Torvalds 2005-04-16  329  		memcpy(adapter->fw_version,
^1da177e4c3f41 Linus Torvalds 2005-04-16  330  				(char *)adapter->product_info.fw_version, 4);
^1da177e4c3f41 Linus Torvalds 2005-04-16  331  		adapter->fw_version[4] = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16  332  
^1da177e4c3f41 Linus Torvalds 2005-04-16  333  		memcpy(adapter->bios_version,
^1da177e4c3f41 Linus Torvalds 2005-04-16  334  				(char *)adapter->product_info.bios_version, 4);
^1da177e4c3f41 Linus Torvalds 2005-04-16  335  
^1da177e4c3f41 Linus Torvalds 2005-04-16  336  		adapter->bios_version[4] = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16  337  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  338  
3b8a1ba378b750 Bjorn Helgaas  2015-07-07  339  	dev_notice(&adapter->dev->dev, "[%s:%s] detected %d logical drives\n",
^1da177e4c3f41 Linus Torvalds 2005-04-16  340  		adapter->fw_version, adapter->bios_version, adapter->numldrv);
^1da177e4c3f41 Linus Torvalds 2005-04-16  341  
^1da177e4c3f41 Linus Torvalds 2005-04-16  342  	/*
^1da177e4c3f41 Linus Torvalds 2005-04-16  343  	 * Do we support extended (>10 bytes) cdbs
^1da177e4c3f41 Linus Torvalds 2005-04-16  344  	 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  345  	adapter->support_ext_cdb = mega_support_ext_cdb(adapter);
^1da177e4c3f41 Linus Torvalds 2005-04-16  346  	if (adapter->support_ext_cdb)
3b8a1ba378b750 Bjorn Helgaas  2015-07-07  347  		dev_notice(&adapter->dev->dev, "supports extended CDBs\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16  348  
^1da177e4c3f41 Linus Torvalds 2005-04-16  349  
^1da177e4c3f41 Linus Torvalds 2005-04-16  350  	return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16  351  }
^1da177e4c3f41 Linus Torvalds 2005-04-16  352  

:::::: The code at line 211 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@...970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@...970.osdl.org>

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

Download attachment ".config.gz" of type "application/gzip" (43248 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ