Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
12ffbbe9
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
12ffbbe9
编写于
2月 04, 2016
作者:
J
James Bottomley
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes
上级
6344a5cd
0fb5b1fb
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
31 addition
and
20 deletion
+31
-20
block/blk-core.c
block/blk-core.c
+4
-2
drivers/scsi/device_handler/scsi_dh_rdac.c
drivers/scsi/device_handler/scsi_dh_rdac.c
+3
-1
drivers/scsi/hisi_sas/Kconfig
drivers/scsi/hisi_sas/Kconfig
+1
-1
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+3
-6
drivers/scsi/scsi_devinfo.c
drivers/scsi/scsi_devinfo.c
+1
-0
drivers/scsi/sd.c
drivers/scsi/sd.c
+2
-2
drivers/scsi/storvsc_drv.c
drivers/scsi/storvsc_drv.c
+11
-5
include/linux/blkdev.h
include/linux/blkdev.h
+6
-3
未找到文件。
block/blk-core.c
浏览文件 @
12ffbbe9
...
...
@@ -2455,14 +2455,16 @@ struct request *blk_peek_request(struct request_queue *q)
rq
=
NULL
;
break
;
}
else
if
(
ret
==
BLKPREP_KILL
)
{
}
else
if
(
ret
==
BLKPREP_KILL
||
ret
==
BLKPREP_INVALID
)
{
int
err
=
(
ret
==
BLKPREP_INVALID
)
?
-
EREMOTEIO
:
-
EIO
;
rq
->
cmd_flags
|=
REQ_QUIET
;
/*
* Mark this request as started so we don't trigger
* any debug logic in the end I/O path.
*/
blk_start_request
(
rq
);
__blk_end_request_all
(
rq
,
-
EIO
);
__blk_end_request_all
(
rq
,
err
);
}
else
{
printk
(
KERN_ERR
"%s: bad return=%d
\n
"
,
__func__
,
ret
);
break
;
...
...
drivers/scsi/device_handler/scsi_dh_rdac.c
浏览文件 @
12ffbbe9
...
...
@@ -562,7 +562,7 @@ static int mode_select_handle_sense(struct scsi_device *sdev,
/*
* Command Lock contention
*/
err
=
SCSI_DH_RETRY
;
err
=
SCSI_DH_
IMM_
RETRY
;
break
;
default:
break
;
...
...
@@ -612,6 +612,8 @@ static void send_mode_select(struct work_struct *work)
err
=
mode_select_handle_sense
(
sdev
,
h
->
sense
);
if
(
err
==
SCSI_DH_RETRY
&&
retry_cnt
--
)
goto
retry
;
if
(
err
==
SCSI_DH_IMM_RETRY
)
goto
retry
;
}
if
(
err
==
SCSI_DH_OK
)
{
h
->
state
=
RDAC_STATE_ACTIVE
;
...
...
drivers/scsi/hisi_sas/Kconfig
浏览文件 @
12ffbbe9
config SCSI_HISI_SAS
tristate "HiSilicon SAS"
depends on HAS_DMA
depends on HAS_DMA
&& HAS_IOMEM
depends on ARM64 || COMPILE_TEST
select SCSI_SAS_LIBSAS
select BLK_DEV_INTEGRITY
...
...
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
浏览文件 @
12ffbbe9
...
...
@@ -1289,13 +1289,10 @@ static int slot_complete_v1_hw(struct hisi_hba *hisi_hba,
goto
out
;
}
if
(
cmplt_hdr_data
&
CMPLT_HDR_ERR_RCRD_XFRD_MSK
)
{
if
(
!
(
cmplt_hdr_data
&
CMPLT_HDR_CMD_CMPLT_MSK
)
||
!
(
cmplt_hdr_data
&
CMPLT_HDR_RSPNS_XFRD_MSK
))
ts
->
stat
=
SAS_DATA_OVERRUN
;
else
slot_err_v1_hw
(
hisi_hba
,
task
,
slot
);
if
(
cmplt_hdr_data
&
CMPLT_HDR_ERR_RCRD_XFRD_MSK
&&
!
(
cmplt_hdr_data
&
CMPLT_HDR_RSPNS_XFRD_MSK
))
{
slot_err_v1_hw
(
hisi_hba
,
task
,
slot
);
goto
out
;
}
...
...
drivers/scsi/scsi_devinfo.c
浏览文件 @
12ffbbe9
...
...
@@ -205,6 +205,7 @@ static struct {
{
"Intel"
,
"Multi-Flex"
,
NULL
,
BLIST_NO_RSOC
},
{
"iRiver"
,
"iFP Mass Driver"
,
NULL
,
BLIST_NOT_LOCKABLE
|
BLIST_INQUIRY_36
},
{
"LASOUND"
,
"CDX7405"
,
"3.10"
,
BLIST_MAX5LUN
|
BLIST_SINGLELUN
},
{
"Marvell"
,
"Console"
,
NULL
,
BLIST_SKIP_VPD_PAGES
},
{
"MATSHITA"
,
"PD-1"
,
NULL
,
BLIST_FORCELUN
|
BLIST_SINGLELUN
},
{
"MATSHITA"
,
"DMC-LC5"
,
NULL
,
BLIST_NOT_LOCKABLE
|
BLIST_INQUIRY_36
},
{
"MATSHITA"
,
"DMC-LC40"
,
NULL
,
BLIST_NOT_LOCKABLE
|
BLIST_INQUIRY_36
},
...
...
drivers/scsi/sd.c
浏览文件 @
12ffbbe9
...
...
@@ -761,7 +761,7 @@ static int sd_setup_discard_cmnd(struct scsi_cmnd *cmd)
break
;
default:
ret
=
BLKPREP_
KILL
;
ret
=
BLKPREP_
INVALID
;
goto
out
;
}
...
...
@@ -839,7 +839,7 @@ static int sd_setup_write_same_cmnd(struct scsi_cmnd *cmd)
int
ret
;
if
(
sdkp
->
device
->
no_write_same
)
return
BLKPREP_
KILL
;
return
BLKPREP_
INVALID
;
BUG_ON
(
bio_offset
(
bio
)
||
bio_iovec
(
bio
).
bv_len
!=
sdp
->
sector_size
);
...
...
drivers/scsi/storvsc_drv.c
浏览文件 @
12ffbbe9
...
...
@@ -42,6 +42,7 @@
#include <scsi/scsi_devinfo.h>
#include <scsi/scsi_dbg.h>
#include <scsi/scsi_transport_fc.h>
#include <scsi/scsi_transport.h>
/*
* All wire protocol details (storage protocol between the guest and the host)
...
...
@@ -477,19 +478,18 @@ struct hv_host_device {
struct
storvsc_scan_work
{
struct
work_struct
work
;
struct
Scsi_Host
*
host
;
uint
lun
;
u8
lun
;
u8
tgt_id
;
};
static
void
storvsc_device_scan
(
struct
work_struct
*
work
)
{
struct
storvsc_scan_work
*
wrk
;
uint
lun
;
struct
scsi_device
*
sdev
;
wrk
=
container_of
(
work
,
struct
storvsc_scan_work
,
work
);
lun
=
wrk
->
lun
;
sdev
=
scsi_device_lookup
(
wrk
->
host
,
0
,
0
,
lun
);
sdev
=
scsi_device_lookup
(
wrk
->
host
,
0
,
wrk
->
tgt_id
,
wrk
->
lun
);
if
(
!
sdev
)
goto
done
;
scsi_rescan_device
(
&
sdev
->
sdev_gendev
);
...
...
@@ -540,7 +540,7 @@ static void storvsc_remove_lun(struct work_struct *work)
if
(
!
scsi_host_get
(
wrk
->
host
))
goto
done
;
sdev
=
scsi_device_lookup
(
wrk
->
host
,
0
,
0
,
wrk
->
lun
);
sdev
=
scsi_device_lookup
(
wrk
->
host
,
0
,
wrk
->
tgt_id
,
wrk
->
lun
);
if
(
sdev
)
{
scsi_remove_device
(
sdev
);
...
...
@@ -940,6 +940,7 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
wrk
->
host
=
host
;
wrk
->
lun
=
vm_srb
->
lun
;
wrk
->
tgt_id
=
vm_srb
->
target_id
;
INIT_WORK
(
&
wrk
->
work
,
process_err_fn
);
schedule_work
(
&
wrk
->
work
);
}
...
...
@@ -1770,6 +1771,11 @@ static int __init storvsc_drv_init(void)
fc_transport_template
=
fc_attach_transport
(
&
fc_transport_functions
);
if
(
!
fc_transport_template
)
return
-
ENODEV
;
/*
* Install Hyper-V specific timeout handler.
*/
fc_transport_template
->
eh_timed_out
=
storvsc_eh_timed_out
;
#endif
ret
=
vmbus_driver_register
(
&
storvsc_drv
);
...
...
include/linux/blkdev.h
浏览文件 @
12ffbbe9
...
...
@@ -682,9 +682,12 @@ static inline bool blk_write_same_mergeable(struct bio *a, struct bio *b)
/*
* q->prep_rq_fn return values
*/
#define BLKPREP_OK 0
/* serve it */
#define BLKPREP_KILL 1
/* fatal error, kill */
#define BLKPREP_DEFER 2
/* leave on queue */
enum
{
BLKPREP_OK
,
/* serve it */
BLKPREP_KILL
,
/* fatal error, kill, return -EIO */
BLKPREP_DEFER
,
/* leave on queue */
BLKPREP_INVALID
,
/* invalid command, kill, return -EREMOTEIO */
};
extern
unsigned
long
blk_max_low_pfn
,
blk_max_pfn
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录