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
07342d62
Commit
07342d62
authored
May 06, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Automatic merge of
rsync://www.parisc-linux.org/~jejb/git/scsi-for-linus-2.6.git
parents
d4a1a732
e4862fed
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
48 additions
and
39 deletions
+48
-39
drivers/s390/scsi/zfcp_aux.c
drivers/s390/scsi/zfcp_aux.c
+1
-1
drivers/s390/scsi/zfcp_def.h
drivers/s390/scsi/zfcp_def.h
+0
-1
drivers/scsi/aacraid/linit.c
drivers/scsi/aacraid/linit.c
+1
-1
drivers/scsi/aic7xxx/aic7xxx_osm.c
drivers/scsi/aic7xxx/aic7xxx_osm.c
+0
-2
drivers/scsi/aic7xxx/aic7xxx_osm.h
drivers/scsi/aic7xxx/aic7xxx_osm.h
+0
-6
drivers/scsi/qla2xxx/qla_attr.c
drivers/scsi/qla2xxx/qla_attr.c
+1
-7
drivers/scsi/qla2xxx/qla_gbl.h
drivers/scsi/qla2xxx/qla_gbl.h
+2
-2
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/qla2xxx/qla_os.c
+2
-1
drivers/scsi/scsi.c
drivers/scsi/scsi.c
+1
-1
drivers/scsi/scsi_transport_spi.c
drivers/scsi/scsi_transport_spi.c
+34
-15
drivers/scsi/sr_ioctl.c
drivers/scsi/sr_ioctl.c
+3
-0
drivers/scsi/sym53c8xx_2/sym_glue.c
drivers/scsi/sym53c8xx_2/sym_glue.c
+3
-2
No files found.
drivers/s390/scsi/zfcp_aux.c
View file @
07342d62
...
@@ -52,7 +52,7 @@ static inline int zfcp_sg_list_copy_from_user(struct zfcp_sg_list *,
...
@@ -52,7 +52,7 @@ static inline int zfcp_sg_list_copy_from_user(struct zfcp_sg_list *,
static
inline
int
zfcp_sg_list_copy_to_user
(
void
__user
*
,
static
inline
int
zfcp_sg_list_copy_to_user
(
void
__user
*
,
struct
zfcp_sg_list
*
,
size_t
);
struct
zfcp_sg_list
*
,
size_t
);
static
int
zfcp_cfdc_dev_ioctl
(
struct
file
*
,
unsigned
int
,
unsigned
long
);
static
long
zfcp_cfdc_dev_ioctl
(
struct
file
*
,
unsigned
int
,
unsigned
long
);
#define ZFCP_CFDC_IOC_MAGIC 0xDD
#define ZFCP_CFDC_IOC_MAGIC 0xDD
#define ZFCP_CFDC_IOC \
#define ZFCP_CFDC_IOC \
...
...
drivers/s390/scsi/zfcp_def.h
View file @
07342d62
...
@@ -61,7 +61,6 @@
...
@@ -61,7 +61,6 @@
#include <linux/mempool.h>
#include <linux/mempool.h>
#include <linux/syscalls.h>
#include <linux/syscalls.h>
#include <linux/ioctl.h>
#include <linux/ioctl.h>
#include <linux/ioctl32.h>
/************************ DEBUG FLAGS *****************************************/
/************************ DEBUG FLAGS *****************************************/
...
...
drivers/scsi/aacraid/linit.c
View file @
07342d62
...
@@ -450,7 +450,7 @@ static int aac_cfg_open(struct inode *inode, struct file *file)
...
@@ -450,7 +450,7 @@ static int aac_cfg_open(struct inode *inode, struct file *file)
}
}
}
}
return
0
;
return
err
;
}
}
/**
/**
...
...
drivers/scsi/aic7xxx/aic7xxx_osm.c
View file @
07342d62
...
@@ -2335,8 +2335,6 @@ ahc_linux_free_target(struct ahc_softc *ahc, struct ahc_linux_target *targ)
...
@@ -2335,8 +2335,6 @@ ahc_linux_free_target(struct ahc_softc *ahc, struct ahc_linux_target *targ)
AHC_TRANS_GOAL
,
/*paused*/
FALSE
);
AHC_TRANS_GOAL
,
/*paused*/
FALSE
);
ahc_update_neg_request
(
ahc
,
&
devinfo
,
tstate
,
tinfo
,
AHC_NEG_ALWAYS
);
ahc_update_neg_request
(
ahc
,
&
devinfo
,
tstate
,
tinfo
,
AHC_NEG_ALWAYS
);
ahc
->
platform_data
->
targets
[
target_offset
]
=
NULL
;
ahc
->
platform_data
->
targets
[
target_offset
]
=
NULL
;
if
(
targ
->
inq_data
!=
NULL
)
free
(
targ
->
inq_data
,
M_DEVBUF
);
free
(
targ
,
M_DEVBUF
);
free
(
targ
,
M_DEVBUF
);
}
}
...
...
drivers/scsi/aic7xxx/aic7xxx_osm.h
View file @
07342d62
...
@@ -423,10 +423,6 @@ struct ahc_linux_device {
...
@@ -423,10 +423,6 @@ struct ahc_linux_device {
struct
ahc_linux_target
*
target
;
struct
ahc_linux_target
*
target
;
};
};
typedef
enum
{
AHC_INQ_VALID
=
0x02
,
}
ahc_linux_targ_flags
;
struct
ahc_linux_target
{
struct
ahc_linux_target
{
struct
ahc_linux_device
*
devices
[
AHC_NUM_LUNS
];
struct
ahc_linux_device
*
devices
[
AHC_NUM_LUNS
];
int
channel
;
int
channel
;
...
@@ -434,8 +430,6 @@ struct ahc_linux_target {
...
@@ -434,8 +430,6 @@ struct ahc_linux_target {
int
refcount
;
int
refcount
;
struct
ahc_transinfo
last_tinfo
;
struct
ahc_transinfo
last_tinfo
;
struct
ahc_softc
*
ahc
;
struct
ahc_softc
*
ahc
;
ahc_linux_targ_flags
flags
;
struct
scsi_inquiry_data
*
inq_data
;
};
};
/********************* Definitions Required by the Core ***********************/
/********************* Definitions Required by the Core ***********************/
...
...
drivers/scsi/qla2xxx/qla_attr.c
View file @
07342d62
...
@@ -300,7 +300,7 @@ qla2x00_set_rport_loss_tmo(struct fc_rport *rport, uint32_t timeout)
...
@@ -300,7 +300,7 @@ qla2x00_set_rport_loss_tmo(struct fc_rport *rport, uint32_t timeout)
rport
->
dev_loss_tmo
=
ha
->
port_down_retry_count
+
5
;
rport
->
dev_loss_tmo
=
ha
->
port_down_retry_count
+
5
;
}
}
st
atic
st
ruct
fc_function_template
qla2xxx_transport_functions
=
{
struct
fc_function_template
qla2xxx_transport_functions
=
{
.
show_host_node_name
=
1
,
.
show_host_node_name
=
1
,
.
show_host_port_name
=
1
,
.
show_host_port_name
=
1
,
...
@@ -322,12 +322,6 @@ static struct fc_function_template qla2xxx_transport_functions = {
...
@@ -322,12 +322,6 @@ static struct fc_function_template qla2xxx_transport_functions = {
};
};
struct
scsi_transport_template
*
qla2x00_alloc_transport_tmpl
(
void
)
{
return
(
fc_attach_transport
(
&
qla2xxx_transport_functions
));
}
void
void
qla2x00_init_host_attr
(
scsi_qla_host_t
*
ha
)
qla2x00_init_host_attr
(
scsi_qla_host_t
*
ha
)
{
{
...
...
drivers/scsi/qla2xxx/qla_gbl.h
View file @
07342d62
...
@@ -24,7 +24,6 @@
...
@@ -24,7 +24,6 @@
#define __QLA_GBL_H
#define __QLA_GBL_H
#include <linux/interrupt.h>
#include <linux/interrupt.h>
#include <scsi/scsi_transport.h>
extern
void
qla2x00_remove_one
(
struct
pci_dev
*
);
extern
void
qla2x00_remove_one
(
struct
pci_dev
*
);
extern
int
qla2x00_probe_one
(
struct
pci_dev
*
,
struct
qla_board_info
*
);
extern
int
qla2x00_probe_one
(
struct
pci_dev
*
,
struct
qla_board_info
*
);
...
@@ -248,9 +247,10 @@ extern void qla2x00_cancel_io_descriptors(scsi_qla_host_t *);
...
@@ -248,9 +247,10 @@ extern void qla2x00_cancel_io_descriptors(scsi_qla_host_t *);
/*
/*
* Global Function Prototypes in qla_attr.c source file.
* Global Function Prototypes in qla_attr.c source file.
*/
*/
struct
fc_function_template
;
extern
struct
fc_function_template
qla2xxx_transport_functions
;
extern
void
qla2x00_alloc_sysfs_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_alloc_sysfs_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_free_sysfs_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_free_sysfs_attr
(
scsi_qla_host_t
*
);
extern
struct
scsi_transport_template
*
qla2x00_alloc_transport_tmpl
(
void
);
extern
void
qla2x00_init_host_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_init_host_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_alloc_sysfs_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_alloc_sysfs_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_free_sysfs_attr
(
scsi_qla_host_t
*
);
extern
void
qla2x00_free_sysfs_attr
(
scsi_qla_host_t
*
);
...
...
drivers/scsi/qla2xxx/qla_os.c
View file @
07342d62
...
@@ -2350,7 +2350,8 @@ qla2x00_module_init(void)
...
@@ -2350,7 +2350,8 @@ qla2x00_module_init(void)
#if DEBUG_QLA2100
#if DEBUG_QLA2100
strcat
(
qla2x00_version_str
,
"-debug"
);
strcat
(
qla2x00_version_str
,
"-debug"
);
#endif
#endif
qla2xxx_transport_template
=
qla2x00_alloc_transport_tmpl
();
qla2xxx_transport_template
=
fc_attach_transport
(
&
qla2xxx_transport_functions
);
if
(
!
qla2xxx_transport_template
)
if
(
!
qla2xxx_transport_template
)
return
-
ENODEV
;
return
-
ENODEV
;
...
...
drivers/scsi/scsi.c
View file @
07342d62
...
@@ -542,7 +542,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
...
@@ -542,7 +542,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
* that the device is no longer present */
* that the device is no longer present */
cmd
->
result
=
DID_NO_CONNECT
<<
16
;
cmd
->
result
=
DID_NO_CONNECT
<<
16
;
atomic_inc
(
&
cmd
->
device
->
iorequest_cnt
);
atomic_inc
(
&
cmd
->
device
->
iorequest_cnt
);
scsi_done
(
cmd
);
__
scsi_done
(
cmd
);
/* return 0 (because the command has been processed) */
/* return 0 (because the command has been processed) */
goto
out
;
goto
out
;
}
}
...
...
drivers/scsi/scsi_transport_spi.c
View file @
07342d62
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
#include <linux/init.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/workqueue.h>
#include <linux/workqueue.h>
#include <linux/blkdev.h>
#include <asm/semaphore.h>
#include <asm/semaphore.h>
#include <scsi/scsi.h>
#include <scsi/scsi.h>
#include "scsi_priv.h"
#include "scsi_priv.h"
...
@@ -41,6 +42,11 @@
...
@@ -41,6 +42,11 @@
#define SPI_MAX_ECHO_BUFFER_SIZE 4096
#define SPI_MAX_ECHO_BUFFER_SIZE 4096
#define DV_LOOPS 3
#define DV_TIMEOUT (10*HZ)
#define DV_RETRIES 3
/* should only need at most
* two cc/ua clears */
/* Private data accessors (keep these out of the header file) */
/* Private data accessors (keep these out of the header file) */
#define spi_dv_pending(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_pending)
#define spi_dv_pending(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_pending)
#define spi_dv_sem(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_sem)
#define spi_dv_sem(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_sem)
...
@@ -100,6 +106,29 @@ static int sprint_frac(char *dest, int value, int denom)
...
@@ -100,6 +106,29 @@ static int sprint_frac(char *dest, int value, int denom)
return
result
;
return
result
;
}
}
/* Modification of scsi_wait_req that will clear UNIT ATTENTION conditions
* resulting from (likely) bus and device resets */
static
void
spi_wait_req
(
struct
scsi_request
*
sreq
,
const
void
*
cmd
,
void
*
buffer
,
unsigned
bufflen
)
{
int
i
;
for
(
i
=
0
;
i
<
DV_RETRIES
;
i
++
)
{
sreq
->
sr_request
->
flags
|=
REQ_FAILFAST
;
scsi_wait_req
(
sreq
,
cmd
,
buffer
,
bufflen
,
DV_TIMEOUT
,
/* retries */
1
);
if
(
sreq
->
sr_result
&
DRIVER_SENSE
)
{
struct
scsi_sense_hdr
sshdr
;
if
(
scsi_request_normalize_sense
(
sreq
,
&
sshdr
)
&&
sshdr
.
sense_key
==
UNIT_ATTENTION
)
continue
;
}
break
;
}
}
static
struct
{
static
struct
{
enum
spi_signal_type
value
;
enum
spi_signal_type
value
;
char
*
name
;
char
*
name
;
...
@@ -378,11 +407,6 @@ static CLASS_DEVICE_ATTR(signalling, S_IRUGO | S_IWUSR,
...
@@ -378,11 +407,6 @@ static CLASS_DEVICE_ATTR(signalling, S_IRUGO | S_IWUSR,
if(i->f->set_##x) \
if(i->f->set_##x) \
i->f->set_##x(sdev->sdev_target, y)
i->f->set_##x(sdev->sdev_target, y)
#define DV_LOOPS 3
#define DV_TIMEOUT (10*HZ)
#define DV_RETRIES 3
/* should only need at most
* two cc/ua clears */
enum
spi_compare_returns
{
enum
spi_compare_returns
{
SPI_COMPARE_SUCCESS
,
SPI_COMPARE_SUCCESS
,
SPI_COMPARE_FAILURE
,
SPI_COMPARE_FAILURE
,
...
@@ -446,8 +470,7 @@ spi_dv_device_echo_buffer(struct scsi_request *sreq, u8 *buffer,
...
@@ -446,8 +470,7 @@ spi_dv_device_echo_buffer(struct scsi_request *sreq, u8 *buffer,
for
(
r
=
0
;
r
<
retries
;
r
++
)
{
for
(
r
=
0
;
r
<
retries
;
r
++
)
{
sreq
->
sr_cmd_len
=
0
;
/* wait_req to fill in */
sreq
->
sr_cmd_len
=
0
;
/* wait_req to fill in */
sreq
->
sr_data_direction
=
DMA_TO_DEVICE
;
sreq
->
sr_data_direction
=
DMA_TO_DEVICE
;
scsi_wait_req
(
sreq
,
spi_write_buffer
,
buffer
,
len
,
spi_wait_req
(
sreq
,
spi_write_buffer
,
buffer
,
len
);
DV_TIMEOUT
,
DV_RETRIES
);
if
(
sreq
->
sr_result
||
!
scsi_device_online
(
sdev
))
{
if
(
sreq
->
sr_result
||
!
scsi_device_online
(
sdev
))
{
struct
scsi_sense_hdr
sshdr
;
struct
scsi_sense_hdr
sshdr
;
...
@@ -471,8 +494,7 @@ spi_dv_device_echo_buffer(struct scsi_request *sreq, u8 *buffer,
...
@@ -471,8 +494,7 @@ spi_dv_device_echo_buffer(struct scsi_request *sreq, u8 *buffer,
memset
(
ptr
,
0
,
len
);
memset
(
ptr
,
0
,
len
);
sreq
->
sr_cmd_len
=
0
;
/* wait_req to fill in */
sreq
->
sr_cmd_len
=
0
;
/* wait_req to fill in */
sreq
->
sr_data_direction
=
DMA_FROM_DEVICE
;
sreq
->
sr_data_direction
=
DMA_FROM_DEVICE
;
scsi_wait_req
(
sreq
,
spi_read_buffer
,
ptr
,
len
,
spi_wait_req
(
sreq
,
spi_read_buffer
,
ptr
,
len
);
DV_TIMEOUT
,
DV_RETRIES
);
scsi_device_set_state
(
sdev
,
SDEV_QUIESCE
);
scsi_device_set_state
(
sdev
,
SDEV_QUIESCE
);
if
(
memcmp
(
buffer
,
ptr
,
len
)
!=
0
)
if
(
memcmp
(
buffer
,
ptr
,
len
)
!=
0
)
...
@@ -500,8 +522,7 @@ spi_dv_device_compare_inquiry(struct scsi_request *sreq, u8 *buffer,
...
@@ -500,8 +522,7 @@ spi_dv_device_compare_inquiry(struct scsi_request *sreq, u8 *buffer,
memset
(
ptr
,
0
,
len
);
memset
(
ptr
,
0
,
len
);
scsi_wait_req
(
sreq
,
spi_inquiry
,
ptr
,
len
,
spi_wait_req
(
sreq
,
spi_inquiry
,
ptr
,
len
);
DV_TIMEOUT
,
DV_RETRIES
);
if
(
sreq
->
sr_result
||
!
scsi_device_online
(
sdev
))
{
if
(
sreq
->
sr_result
||
!
scsi_device_online
(
sdev
))
{
scsi_device_set_state
(
sdev
,
SDEV_QUIESCE
);
scsi_device_set_state
(
sdev
,
SDEV_QUIESCE
);
...
@@ -593,8 +614,7 @@ spi_dv_device_get_echo_buffer(struct scsi_request *sreq, u8 *buffer)
...
@@ -593,8 +614,7 @@ spi_dv_device_get_echo_buffer(struct scsi_request *sreq, u8 *buffer)
* (reservation conflict, device not ready, etc) just
* (reservation conflict, device not ready, etc) just
* skip the write tests */
* skip the write tests */
for
(
l
=
0
;
;
l
++
)
{
for
(
l
=
0
;
;
l
++
)
{
scsi_wait_req
(
sreq
,
spi_test_unit_ready
,
NULL
,
0
,
spi_wait_req
(
sreq
,
spi_test_unit_ready
,
NULL
,
0
);
DV_TIMEOUT
,
DV_RETRIES
);
if
(
sreq
->
sr_result
)
{
if
(
sreq
->
sr_result
)
{
if
(
l
>=
3
)
if
(
l
>=
3
)
...
@@ -608,8 +628,7 @@ spi_dv_device_get_echo_buffer(struct scsi_request *sreq, u8 *buffer)
...
@@ -608,8 +628,7 @@ spi_dv_device_get_echo_buffer(struct scsi_request *sreq, u8 *buffer)
sreq
->
sr_cmd_len
=
0
;
sreq
->
sr_cmd_len
=
0
;
sreq
->
sr_data_direction
=
DMA_FROM_DEVICE
;
sreq
->
sr_data_direction
=
DMA_FROM_DEVICE
;
scsi_wait_req
(
sreq
,
spi_read_buffer_descriptor
,
buffer
,
4
,
spi_wait_req
(
sreq
,
spi_read_buffer_descriptor
,
buffer
,
4
);
DV_TIMEOUT
,
DV_RETRIES
);
if
(
sreq
->
sr_result
)
if
(
sreq
->
sr_result
)
/* Device has no echo buffer */
/* Device has no echo buffer */
...
...
drivers/scsi/sr_ioctl.c
View file @
07342d62
...
@@ -281,6 +281,9 @@ int sr_get_mcn(struct cdrom_device_info *cdi, struct cdrom_mcn *mcn)
...
@@ -281,6 +281,9 @@ int sr_get_mcn(struct cdrom_device_info *cdi, struct cdrom_mcn *mcn)
char
*
buffer
=
kmalloc
(
32
,
GFP_KERNEL
|
SR_GFP_DMA
(
cd
));
char
*
buffer
=
kmalloc
(
32
,
GFP_KERNEL
|
SR_GFP_DMA
(
cd
));
int
result
;
int
result
;
if
(
!
buffer
)
return
-
ENOMEM
;
memset
(
&
cgc
,
0
,
sizeof
(
struct
packet_command
));
memset
(
&
cgc
,
0
,
sizeof
(
struct
packet_command
));
cgc
.
cmd
[
0
]
=
GPCMD_READ_SUBCHANNEL
;
cgc
.
cmd
[
0
]
=
GPCMD_READ_SUBCHANNEL
;
cgc
.
cmd
[
2
]
=
0x40
;
/* I do want the subchannel info */
cgc
.
cmd
[
2
]
=
0x40
;
/* I do want the subchannel info */
...
...
drivers/scsi/sym53c8xx_2/sym_glue.c
View file @
07342d62
...
@@ -2038,8 +2038,9 @@ static void sym2_set_period(struct scsi_target *starget, int period)
...
@@ -2038,8 +2038,9 @@ static void sym2_set_period(struct scsi_target *starget, int period)
struct
sym_hcb
*
np
=
sym_get_hcb
(
shost
);
struct
sym_hcb
*
np
=
sym_get_hcb
(
shost
);
struct
sym_tcb
*
tp
=
&
np
->
target
[
starget
->
id
];
struct
sym_tcb
*
tp
=
&
np
->
target
[
starget
->
id
];
/* have to have DT for these transfers */
/* have to have DT for these transfers, but DT will also
if
(
period
<=
np
->
minsync
)
* set width, so check that this is allowed */
if
(
period
<=
np
->
minsync
&&
spi_width
(
starget
))
tp
->
tgoal
.
dt
=
1
;
tp
->
tgoal
.
dt
=
1
;
tp
->
tgoal
.
period
=
period
;
tp
->
tgoal
.
period
=
period
;
...
...
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