mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
[SCSI] lpfc 8.1.7: Misc Fixes
Misc Fixes: - Fix some sparse warnings - casts of address space - Fix handling of the adapter registration string. Each invocation was byteswapping, so every other adapter init attempt failed. - Correct comments and default value for the lpfc_max_luns parameter Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
b4c026520f
commit
65a29c166f
@ -706,12 +706,12 @@ LPFC_ATTR(discovery_threads, 32, 1, 64, "Maximum number of ELS commands "
|
||||
"during discovery");
|
||||
|
||||
/*
|
||||
# lpfc_max_luns: maximum number of LUNs per target driver will support
|
||||
# Value range is [1,32768]. Default value is 256.
|
||||
# NOTE: The SCSI layer will scan each target for this many luns
|
||||
# lpfc_max_luns: maximum allowed LUN.
|
||||
# Value range is [0,65535]. Default value is 255.
|
||||
# NOTE: The SCSI layer might probe all allowed LUN on some old targets.
|
||||
*/
|
||||
LPFC_ATTR_R(max_luns, 256, 1, 32768,
|
||||
"Maximum number of LUNs per target driver will support");
|
||||
LPFC_ATTR_R(max_luns, 255, 0, 65535,
|
||||
"Maximum allowed LUN");
|
||||
|
||||
/*
|
||||
# lpfc_poll_tmo: .Milliseconds driver will wait between polling FCP ring.
|
||||
|
@ -71,6 +71,7 @@ lpfc_config_port_prep(struct lpfc_hba * phba)
|
||||
uint16_t offset = 0;
|
||||
static char licensed[56] =
|
||||
"key unlock for use with gnu public licensed code only\0";
|
||||
static int init_key = 1;
|
||||
|
||||
pmb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
|
||||
if (!pmb) {
|
||||
@ -82,10 +83,13 @@ lpfc_config_port_prep(struct lpfc_hba * phba)
|
||||
phba->hba_state = LPFC_INIT_MBX_CMDS;
|
||||
|
||||
if (lpfc_is_LC_HBA(phba->pcidev->device)) {
|
||||
uint32_t *ptext = (uint32_t *) licensed;
|
||||
if (init_key) {
|
||||
uint32_t *ptext = (uint32_t *) licensed;
|
||||
|
||||
for (i = 0; i < 56; i += sizeof (uint32_t), ptext++)
|
||||
*ptext = cpu_to_be32(*ptext);
|
||||
for (i = 0; i < 56; i += sizeof (uint32_t), ptext++)
|
||||
*ptext = cpu_to_be32(*ptext);
|
||||
init_key = 0;
|
||||
}
|
||||
|
||||
lpfc_read_nv(phba, pmb);
|
||||
memset((char*)mb->un.varRDnvp.rsvd3, 0,
|
||||
|
@ -1547,8 +1547,8 @@ lpfc_sli_brdready(struct lpfc_hba * phba, uint32_t mask)
|
||||
|
||||
void lpfc_reset_barrier(struct lpfc_hba * phba)
|
||||
{
|
||||
uint32_t * resp_buf;
|
||||
uint32_t * mbox_buf;
|
||||
uint32_t __iomem *resp_buf;
|
||||
uint32_t __iomem *mbox_buf;
|
||||
volatile uint32_t mbox;
|
||||
uint32_t hc_copy;
|
||||
int i;
|
||||
@ -1564,7 +1564,7 @@ void lpfc_reset_barrier(struct lpfc_hba * phba)
|
||||
* Tell the other part of the chip to suspend temporarily all
|
||||
* its DMA activity.
|
||||
*/
|
||||
resp_buf = (uint32_t *)phba->MBslimaddr;
|
||||
resp_buf = phba->MBslimaddr;
|
||||
|
||||
/* Disable the error attention */
|
||||
hc_copy = readl(phba->HCregaddr);
|
||||
@ -1582,7 +1582,7 @@ void lpfc_reset_barrier(struct lpfc_hba * phba)
|
||||
((MAILBOX_t *)&mbox)->mbxOwner = OWN_CHIP;
|
||||
|
||||
writel(BARRIER_TEST_PATTERN, (resp_buf + 1));
|
||||
mbox_buf = (uint32_t *)phba->MBslimaddr;
|
||||
mbox_buf = phba->MBslimaddr;
|
||||
writel(mbox, mbox_buf);
|
||||
|
||||
for (i = 0;
|
||||
@ -1782,7 +1782,7 @@ lpfc_sli_brdrestart(struct lpfc_hba * phba)
|
||||
skip_post = 0;
|
||||
word0 = 0; /* This is really setting up word1 */
|
||||
}
|
||||
to_slim = (uint8_t *) phba->MBslimaddr + sizeof (uint32_t);
|
||||
to_slim = phba->MBslimaddr + sizeof (uint32_t);
|
||||
writel(*(uint32_t *) mb, to_slim);
|
||||
readl(to_slim); /* flush */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user