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
Kirill Smelkov
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
Show 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,
...
@@ -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_INVALID_PARAM
:
/* some parameter in request invalid */
case
FCPIO_REQ_NOT_SUPPORTED
:
/* request type is not supported */
case
FCPIO_REQ_NOT_SUPPORTED
:
/* request type is not supported */
default:
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
;
sc
->
result
=
(
DID_ERROR
<<
16
)
|
icmnd_cmpl
->
scsi_status
;
break
;
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 */
/* Break link with the SCSI command */
CMD_SP
(
sc
)
=
NULL
;
CMD_SP
(
sc
)
=
NULL
;
CMD_FLAGS
(
sc
)
|=
FNIC_IO_DONE
;
CMD_FLAGS
(
sc
)
|=
FNIC_IO_DONE
;
spin_unlock_irqrestore
(
io_lock
,
flags
);
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
);
fnic_release_ioreq_buf
(
fnic
,
io_req
,
sc
);
mempool_free
(
io_req
,
fnic
->
io_req_pool
);
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)
...
@@ -2860,7 +2860,7 @@ lpfc_online(struct lpfc_hba *phba)
}
}
vports
=
lpfc_create_vport_work_array
(
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
++
)
{
for
(
i
=
0
;
i
<=
phba
->
max_vports
&&
vports
[
i
]
!=
NULL
;
i
++
)
{
struct
Scsi_Host
*
shost
;
struct
Scsi_Host
*
shost
;
shost
=
lpfc_shost_from_vport
(
vports
[
i
]);
shost
=
lpfc_shost_from_vport
(
vports
[
i
]);
...
@@ -2877,6 +2877,7 @@ lpfc_online(struct lpfc_hba *phba)
...
@@ -2877,6 +2877,7 @@ lpfc_online(struct lpfc_hba *phba)
}
}
spin_unlock_irq
(
shost
->
host_lock
);
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
);
lpfc_unblock_mgmt_io
(
phba
);
...
...
drivers/scsi/megaraid/megaraid_sas_base.c
View file @
c6986be4
...
@@ -6656,13 +6656,14 @@ megasas_mgmt_fw_ioctl(struct megasas_instance *instance,
...
@@ -6656,13 +6656,14 @@ megasas_mgmt_fw_ioctl(struct megasas_instance *instance,
}
}
for
(
i
=
0
;
i
<
ioc
->
sge_count
;
i
++
)
{
for
(
i
=
0
;
i
<
ioc
->
sge_count
;
i
++
)
{
if
(
kbuff_arr
[
i
])
if
(
kbuff_arr
[
i
])
{
dma_free_coherent
(
&
instance
->
pdev
->
dev
,
dma_free_coherent
(
&
instance
->
pdev
->
dev
,
le32_to_cpu
(
kern_sge32
[
i
].
length
),
le32_to_cpu
(
kern_sge32
[
i
].
length
),
kbuff_arr
[
i
],
kbuff_arr
[
i
],
le32_to_cpu
(
kern_sge32
[
i
].
phys_addr
));
le32_to_cpu
(
kern_sge32
[
i
].
phys_addr
));
kbuff_arr
[
i
]
=
NULL
;
kbuff_arr
[
i
]
=
NULL
;
}
}
}
megasas_return_cmd
(
instance
,
cmd
);
megasas_return_cmd
(
instance
,
cmd
);
return
error
;
return
error
;
...
...
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,
...
@@ -1872,15 +1872,17 @@ static int qlt_check_reserve_free_req(struct scsi_qla_host *vha,
else
else
vha
->
req
->
cnt
=
vha
->
req
->
length
-
vha
->
req
->
cnt
=
vha
->
req
->
length
-
(
vha
->
req
->
ring_index
-
cnt
);
(
vha
->
req
->
ring_index
-
cnt
);
}
if
(
unlikely
(
vha
->
req
->
cnt
<
(
req_cnt
+
2
)))
{
if
(
unlikely
(
vha
->
req
->
cnt
<
(
req_cnt
+
2
)))
{
ql_dbg
(
ql_dbg_io
,
vha
,
0x305a
,
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
"
,
"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
->
vp_idx
,
vha
->
req
->
ring_index
,
vha
->
req
->
cnt
,
req_cnt
,
cnt
,
cnt_in
,
vha
->
req
->
length
);
vha
->
req
->
cnt
,
req_cnt
,
cnt
,
cnt_in
,
vha
->
req
->
length
);
return
-
EAGAIN
;
return
-
EAGAIN
;
}
}
}
vha
->
req
->
cnt
-=
req_cnt
;
vha
->
req
->
cnt
-=
req_cnt
;
return
0
;
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)
...
@@ -278,8 +278,16 @@ int scsi_set_sense_information(u8 *buf, int buf_len, u64 info)
ucp
[
3
]
=
0
;
ucp
[
3
]
=
0
;
put_unaligned_be64
(
info
,
&
ucp
[
4
]);
put_unaligned_be64
(
info
,
&
ucp
[
4
]);
}
else
if
((
buf
[
0
]
&
0x7f
)
==
0x70
)
{
}
else
if
((
buf
[
0
]
&
0x7f
)
==
0x70
)
{
/*
* 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
;
buf
[
0
]
|=
0x80
;
put_unaligned_be64
(
info
,
&
buf
[
3
]);
else
buf
[
0
]
&=
0x7f
;
put_unaligned_be32
((
u32
)
info
,
&
buf
[
3
]);
}
}
return
0
;
return
0
;
...
...
drivers/scsi/ufs/Kconfig
View file @
c6986be4
...
@@ -37,6 +37,7 @@ config SCSI_UFSHCD
...
@@ -37,6 +37,7 @@ config SCSI_UFSHCD
depends on SCSI && SCSI_DMA
depends on SCSI && SCSI_DMA
select PM_DEVFREQ
select PM_DEVFREQ
select DEVFREQ_GOV_SIMPLE_ONDEMAND
select DEVFREQ_GOV_SIMPLE_ONDEMAND
select NLS
---help---
---help---
This selects the support for UFS devices in Linux, say Y and make
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
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 @@
...
@@ -28,6 +28,7 @@
#define SCSI_TRANSPORT_FC_H
#define SCSI_TRANSPORT_FC_H
#include <linux/sched.h>
#include <linux/sched.h>
#include <asm/unaligned.h>
#include <scsi/scsi.h>
#include <scsi/scsi.h>
#include <scsi/scsi_netlink.h>
#include <scsi/scsi_netlink.h>
...
@@ -797,22 +798,12 @@ fc_remote_port_chkready(struct fc_rport *rport)
...
@@ -797,22 +798,12 @@ fc_remote_port_chkready(struct fc_rport *rport)
static
inline
u64
wwn_to_u64
(
u8
*
wwn
)
static
inline
u64
wwn_to_u64
(
u8
*
wwn
)
{
{
return
(
u64
)
wwn
[
0
]
<<
56
|
(
u64
)
wwn
[
1
]
<<
48
|
return
get_unaligned_be64
(
wwn
);
(
u64
)
wwn
[
2
]
<<
40
|
(
u64
)
wwn
[
3
]
<<
32
|
(
u64
)
wwn
[
4
]
<<
24
|
(
u64
)
wwn
[
5
]
<<
16
|
(
u64
)
wwn
[
6
]
<<
8
|
(
u64
)
wwn
[
7
];
}
}
static
inline
void
u64_to_wwn
(
u64
inm
,
u8
*
wwn
)
static
inline
void
u64_to_wwn
(
u64
inm
,
u8
*
wwn
)
{
{
wwn
[
0
]
=
(
inm
>>
56
)
&
0xff
;
put_unaligned_be64
(
inm
,
wwn
);
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
;
}
}
/**
/**
...
...
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