Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
c6986be4
Commit
c6986be4
authored
Mar 22, 2016
by
James Bottomley
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'mkp-scsi/4.6/scsi-fixes' into misc
parents
b86c75fd
ba083116
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
34 additions
and
31 deletions
+34
-31
drivers/scsi/fnic/fnic_scsi.c
drivers/scsi/fnic/fnic_scsi.c
+6
-7
drivers/scsi/lpfc/lpfc_init.c
drivers/scsi/lpfc/lpfc_init.c
+3
-2
drivers/scsi/megaraid/megaraid_sas_base.c
drivers/scsi/megaraid/megaraid_sas_base.c
+2
-1
drivers/scsi/qla2xxx/qla_target.c
drivers/scsi/qla2xxx/qla_target.c
+9
-7
drivers/scsi/scsi_common.c
drivers/scsi/scsi_common.c
+10
-2
drivers/scsi/ufs/Kconfig
drivers/scsi/ufs/Kconfig
+1
-0
include/scsi/scsi_transport_fc.h
include/scsi/scsi_transport_fc.h
+3
-12
No files found.
drivers/scsi/fnic/fnic_scsi.c
View file @
c6986be4
...
...
@@ -958,23 +958,22 @@ static void fnic_fcpio_icmnd_cmpl_handler(struct fnic *fnic,
case
FCPIO_INVALID_PARAM
:
/* some parameter in request invalid */
case
FCPIO_REQ_NOT_SUPPORTED
:
/* request type is not supported */
default:
shost_printk
(
KERN_ERR
,
fnic
->
lport
->
host
,
"hdr status = %s
\n
"
,
fnic_fcpio_status_to_str
(
hdr_status
));
sc
->
result
=
(
DID_ERROR
<<
16
)
|
icmnd_cmpl
->
scsi_status
;
break
;
}
if
(
hdr_status
!=
FCPIO_SUCCESS
)
{
atomic64_inc
(
&
fnic_stats
->
io_stats
.
io_failures
);
shost_printk
(
KERN_ERR
,
fnic
->
lport
->
host
,
"hdr status = %s
\n
"
,
fnic_fcpio_status_to_str
(
hdr_status
));
}
/* Break link with the SCSI command */
CMD_SP
(
sc
)
=
NULL
;
CMD_FLAGS
(
sc
)
|=
FNIC_IO_DONE
;
spin_unlock_irqrestore
(
io_lock
,
flags
);
if
(
hdr_status
!=
FCPIO_SUCCESS
)
{
atomic64_inc
(
&
fnic_stats
->
io_stats
.
io_failures
);
shost_printk
(
KERN_ERR
,
fnic
->
lport
->
host
,
"hdr status = %s
\n
"
,
fnic_fcpio_status_to_str
(
hdr_status
));
}
fnic_release_ioreq_buf
(
fnic
,
io_req
,
sc
);
mempool_free
(
io_req
,
fnic
->
io_req_pool
);
...
...
drivers/scsi/lpfc/lpfc_init.c
View file @
c6986be4
...
...
@@ -2860,7 +2860,7 @@ lpfc_online(struct lpfc_hba *phba)
}
vports
=
lpfc_create_vport_work_array
(
phba
);
if
(
vports
!=
NULL
)
if
(
vports
!=
NULL
)
{
for
(
i
=
0
;
i
<=
phba
->
max_vports
&&
vports
[
i
]
!=
NULL
;
i
++
)
{
struct
Scsi_Host
*
shost
;
shost
=
lpfc_shost_from_vport
(
vports
[
i
]);
...
...
@@ -2877,7 +2877,8 @@ lpfc_online(struct lpfc_hba *phba)
}
spin_unlock_irq
(
shost
->
host_lock
);
}
lpfc_destroy_vport_work_array
(
phba
,
vports
);
}
lpfc_destroy_vport_work_array
(
phba
,
vports
);
lpfc_unblock_mgmt_io
(
phba
);
return
0
;
...
...
drivers/scsi/megaraid/megaraid_sas_base.c
View file @
c6986be4
...
...
@@ -6656,12 +6656,13 @@ megasas_mgmt_fw_ioctl(struct megasas_instance *instance,
}
for
(
i
=
0
;
i
<
ioc
->
sge_count
;
i
++
)
{
if
(
kbuff_arr
[
i
])
if
(
kbuff_arr
[
i
])
{
dma_free_coherent
(
&
instance
->
pdev
->
dev
,
le32_to_cpu
(
kern_sge32
[
i
].
length
),
kbuff_arr
[
i
],
le32_to_cpu
(
kern_sge32
[
i
].
phys_addr
));
kbuff_arr
[
i
]
=
NULL
;
}
}
megasas_return_cmd
(
instance
,
cmd
);
...
...
drivers/scsi/qla2xxx/qla_target.c
View file @
c6986be4
...
...
@@ -1872,15 +1872,17 @@ static int qlt_check_reserve_free_req(struct scsi_qla_host *vha,
else
vha
->
req
->
cnt
=
vha
->
req
->
length
-
(
vha
->
req
->
ring_index
-
cnt
);
}
if
(
unlikely
(
vha
->
req
->
cnt
<
(
req_cnt
+
2
)))
{
ql_dbg
(
ql_dbg_io
,
vha
,
0x305a
,
"qla_target(%d): There is no room in the request ring: vha->req->ring_index=%d, vha->req->cnt=%d, req_cnt=%d Req-out=%d Req-in=%d Req-Length=%d
\n
"
,
vha
->
vp_idx
,
vha
->
req
->
ring_index
,
vha
->
req
->
cnt
,
req_cnt
,
cnt
,
cnt_in
,
vha
->
req
->
length
);
return
-
EAGAIN
;
if
(
unlikely
(
vha
->
req
->
cnt
<
(
req_cnt
+
2
)))
{
ql_dbg
(
ql_dbg_io
,
vha
,
0x305a
,
"qla_target(%d): There is no room in the request ring: vha->req->ring_index=%d, vha->req->cnt=%d, req_cnt=%d Req-out=%d Req-in=%d Req-Length=%d
\n
"
,
vha
->
vp_idx
,
vha
->
req
->
ring_index
,
vha
->
req
->
cnt
,
req_cnt
,
cnt
,
cnt_in
,
vha
->
req
->
length
);
return
-
EAGAIN
;
}
}
vha
->
req
->
cnt
-=
req_cnt
;
return
0
;
...
...
drivers/scsi/scsi_common.c
View file @
c6986be4
...
...
@@ -278,8 +278,16 @@ int scsi_set_sense_information(u8 *buf, int buf_len, u64 info)
ucp
[
3
]
=
0
;
put_unaligned_be64
(
info
,
&
ucp
[
4
]);
}
else
if
((
buf
[
0
]
&
0x7f
)
==
0x70
)
{
buf
[
0
]
|=
0x80
;
put_unaligned_be64
(
info
,
&
buf
[
3
]);
/*
* Only set the 'VALID' bit if we can represent the value
* correctly; otherwise just fill out the lower bytes and
* clear the 'VALID' flag.
*/
if
(
info
<=
0xffffffffUL
)
buf
[
0
]
|=
0x80
;
else
buf
[
0
]
&=
0x7f
;
put_unaligned_be32
((
u32
)
info
,
&
buf
[
3
]);
}
return
0
;
...
...
drivers/scsi/ufs/Kconfig
View file @
c6986be4
...
...
@@ -37,6 +37,7 @@ config SCSI_UFSHCD
depends on SCSI && SCSI_DMA
select PM_DEVFREQ
select DEVFREQ_GOV_SIMPLE_ONDEMAND
select NLS
---help---
This selects the support for UFS devices in Linux, say Y and make
sure that you know the name of your UFS host adapter (the card
...
...
include/scsi/scsi_transport_fc.h
View file @
c6986be4
...
...
@@ -28,6 +28,7 @@
#define SCSI_TRANSPORT_FC_H
#include <linux/sched.h>
#include <asm/unaligned.h>
#include <scsi/scsi.h>
#include <scsi/scsi_netlink.h>
...
...
@@ -797,22 +798,12 @@ fc_remote_port_chkready(struct fc_rport *rport)
static
inline
u64
wwn_to_u64
(
u8
*
wwn
)
{
return
(
u64
)
wwn
[
0
]
<<
56
|
(
u64
)
wwn
[
1
]
<<
48
|
(
u64
)
wwn
[
2
]
<<
40
|
(
u64
)
wwn
[
3
]
<<
32
|
(
u64
)
wwn
[
4
]
<<
24
|
(
u64
)
wwn
[
5
]
<<
16
|
(
u64
)
wwn
[
6
]
<<
8
|
(
u64
)
wwn
[
7
];
return
get_unaligned_be64
(
wwn
);
}
static
inline
void
u64_to_wwn
(
u64
inm
,
u8
*
wwn
)
{
wwn
[
0
]
=
(
inm
>>
56
)
&
0xff
;
wwn
[
1
]
=
(
inm
>>
48
)
&
0xff
;
wwn
[
2
]
=
(
inm
>>
40
)
&
0xff
;
wwn
[
3
]
=
(
inm
>>
32
)
&
0xff
;
wwn
[
4
]
=
(
inm
>>
24
)
&
0xff
;
wwn
[
5
]
=
(
inm
>>
16
)
&
0xff
;
wwn
[
6
]
=
(
inm
>>
8
)
&
0xff
;
wwn
[
7
]
=
inm
&
0xff
;
put_unaligned_be64
(
inm
,
wwn
);
}
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment