Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
ad3efdb7
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ad3efdb7
编写于
2月 03, 2017
作者:
J
James Bottomley
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'mkp-scsi/4.10/scsi-fixes' into fixes
上级
6f3e71c0
f2e767bb
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
2 deletion
+18
-2
drivers/scsi/mpt3sas/mpt3sas_scsih.c
drivers/scsi/mpt3sas/mpt3sas_scsih.c
+15
-0
drivers/scsi/qla2xxx/qla_isr.c
drivers/scsi/qla2xxx/qla_isr.c
+2
-1
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/qla2xxx/qla_os.c
+1
-1
未找到文件。
drivers/scsi/mpt3sas/mpt3sas_scsih.c
浏览文件 @
ad3efdb7
...
@@ -4657,6 +4657,7 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
...
@@ -4657,6 +4657,7 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
struct
MPT3SAS_DEVICE
*
sas_device_priv_data
;
struct
MPT3SAS_DEVICE
*
sas_device_priv_data
;
u32
response_code
=
0
;
u32
response_code
=
0
;
unsigned
long
flags
;
unsigned
long
flags
;
unsigned
int
sector_sz
;
mpi_reply
=
mpt3sas_base_get_reply_virt_addr
(
ioc
,
reply
);
mpi_reply
=
mpt3sas_base_get_reply_virt_addr
(
ioc
,
reply
);
scmd
=
_scsih_scsi_lookup_get_clear
(
ioc
,
smid
);
scmd
=
_scsih_scsi_lookup_get_clear
(
ioc
,
smid
);
...
@@ -4715,6 +4716,20 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
...
@@ -4715,6 +4716,20 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
}
}
xfer_cnt
=
le32_to_cpu
(
mpi_reply
->
TransferCount
);
xfer_cnt
=
le32_to_cpu
(
mpi_reply
->
TransferCount
);
/* In case of bogus fw or device, we could end up having
* unaligned partial completion. We can force alignment here,
* then scsi-ml does not need to handle this misbehavior.
*/
sector_sz
=
scmd
->
device
->
sector_size
;
if
(
unlikely
(
scmd
->
request
->
cmd_type
==
REQ_TYPE_FS
&&
sector_sz
&&
xfer_cnt
%
sector_sz
))
{
sdev_printk
(
KERN_INFO
,
scmd
->
device
,
"unaligned partial completion avoided (xfer_cnt=%u, sector_sz=%u)
\n
"
,
xfer_cnt
,
sector_sz
);
xfer_cnt
=
round_down
(
xfer_cnt
,
sector_sz
);
}
scsi_set_resid
(
scmd
,
scsi_bufflen
(
scmd
)
-
xfer_cnt
);
scsi_set_resid
(
scmd
,
scsi_bufflen
(
scmd
)
-
xfer_cnt
);
if
(
ioc_status
&
MPI2_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE
)
if
(
ioc_status
&
MPI2_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE
)
log_info
=
le32_to_cpu
(
mpi_reply
->
IOCLogInfo
);
log_info
=
le32_to_cpu
(
mpi_reply
->
IOCLogInfo
);
...
...
drivers/scsi/qla2xxx/qla_isr.c
浏览文件 @
ad3efdb7
...
@@ -3238,7 +3238,7 @@ qla2x00_free_irqs(scsi_qla_host_t *vha)
...
@@ -3238,7 +3238,7 @@ qla2x00_free_irqs(scsi_qla_host_t *vha)
* from a probe failure context.
* from a probe failure context.
*/
*/
if
(
!
ha
->
rsp_q_map
||
!
ha
->
rsp_q_map
[
0
])
if
(
!
ha
->
rsp_q_map
||
!
ha
->
rsp_q_map
[
0
])
return
;
goto
free_irqs
;
rsp
=
ha
->
rsp_q_map
[
0
];
rsp
=
ha
->
rsp_q_map
[
0
];
if
(
ha
->
flags
.
msix_enabled
)
{
if
(
ha
->
flags
.
msix_enabled
)
{
...
@@ -3258,6 +3258,7 @@ qla2x00_free_irqs(scsi_qla_host_t *vha)
...
@@ -3258,6 +3258,7 @@ qla2x00_free_irqs(scsi_qla_host_t *vha)
free_irq
(
pci_irq_vector
(
ha
->
pdev
,
0
),
rsp
);
free_irq
(
pci_irq_vector
(
ha
->
pdev
,
0
),
rsp
);
}
}
free_irqs:
pci_free_irq_vectors
(
ha
->
pdev
);
pci_free_irq_vectors
(
ha
->
pdev
);
}
}
...
...
drivers/scsi/qla2xxx/qla_os.c
浏览文件 @
ad3efdb7
...
@@ -1616,7 +1616,7 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
...
@@ -1616,7 +1616,7 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
/* Don't abort commands in adapter during EEH
/* Don't abort commands in adapter during EEH
* recovery as it's not accessible/responding.
* recovery as it's not accessible/responding.
*/
*/
if
(
!
ha
->
flags
.
eeh_busy
)
{
if
(
GET_CMD_SP
(
sp
)
&&
!
ha
->
flags
.
eeh_busy
)
{
/* Get a reference to the sp and drop the lock.
/* Get a reference to the sp and drop the lock.
* The reference ensures this sp->done() call
* The reference ensures this sp->done() call
* - and not the call in qla2xxx_eh_abort() -
* - and not the call in qla2xxx_eh_abort() -
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录