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
602432c1
Commit
602432c1
authored
Oct 21, 2016
by
James Bottomley
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'mkp-scsi/4.9/scsi-fixes' into fixes
parents
ebbb7594
77f18a87
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
19 deletions
+28
-19
drivers/scsi/NCR5380.c
drivers/scsi/NCR5380.c
+3
-3
drivers/scsi/be2iscsi/be_main.c
drivers/scsi/be2iscsi/be_main.c
+23
-14
drivers/scsi/libiscsi.c
drivers/scsi/libiscsi.c
+2
-2
No files found.
drivers/scsi/NCR5380.c
View file @
602432c1
...
...
@@ -353,7 +353,7 @@ static void NCR5380_print_phase(struct Scsi_Host *instance)
#endif
static
int
probe_irq
__initdata
;
static
int
probe_irq
;
/**
* probe_intr - helper for IRQ autoprobe
...
...
@@ -365,7 +365,7 @@ static int probe_irq __initdata;
* used by the IRQ probe code.
*/
static
irqreturn_t
__init
probe_intr
(
int
irq
,
void
*
dev_id
)
static
irqreturn_t
probe_intr
(
int
irq
,
void
*
dev_id
)
{
probe_irq
=
irq
;
return
IRQ_HANDLED
;
...
...
@@ -380,7 +380,7 @@ static irqreturn_t __init probe_intr(int irq, void *dev_id)
* and then looking to see what interrupt actually turned up.
*/
static
int
__
init
__
maybe_unused
NCR5380_probe_irq
(
struct
Scsi_Host
*
instance
,
static
int
__maybe_unused
NCR5380_probe_irq
(
struct
Scsi_Host
*
instance
,
int
possible
)
{
struct
NCR5380_hostdata
*
hostdata
=
shost_priv
(
instance
);
...
...
drivers/scsi/be2iscsi/be_main.c
View file @
602432c1
...
...
@@ -900,8 +900,9 @@ void hwi_ring_cq_db(struct beiscsi_hba *phba,
static
struct
sgl_handle
*
alloc_io_sgl_handle
(
struct
beiscsi_hba
*
phba
)
{
struct
sgl_handle
*
psgl_handle
;
unsigned
long
flags
;
spin_lock_
bh
(
&
phba
->
io_sgl_lock
);
spin_lock_
irqsave
(
&
phba
->
io_sgl_lock
,
flags
);
if
(
phba
->
io_sgl_hndl_avbl
)
{
beiscsi_log
(
phba
,
KERN_INFO
,
BEISCSI_LOG_IO
,
"BM_%d : In alloc_io_sgl_handle,"
...
...
@@ -919,14 +920,16 @@ static struct sgl_handle *alloc_io_sgl_handle(struct beiscsi_hba *phba)
phba
->
io_sgl_alloc_index
++
;
}
else
psgl_handle
=
NULL
;
spin_unlock_
bh
(
&
phba
->
io_sgl_lock
);
spin_unlock_
irqrestore
(
&
phba
->
io_sgl_lock
,
flags
);
return
psgl_handle
;
}
static
void
free_io_sgl_handle
(
struct
beiscsi_hba
*
phba
,
struct
sgl_handle
*
psgl_handle
)
{
spin_lock_bh
(
&
phba
->
io_sgl_lock
);
unsigned
long
flags
;
spin_lock_irqsave
(
&
phba
->
io_sgl_lock
,
flags
);
beiscsi_log
(
phba
,
KERN_INFO
,
BEISCSI_LOG_IO
,
"BM_%d : In free_,io_sgl_free_index=%d
\n
"
,
phba
->
io_sgl_free_index
);
...
...
@@ -941,7 +944,7 @@ free_io_sgl_handle(struct beiscsi_hba *phba, struct sgl_handle *psgl_handle)
"value there=%p
\n
"
,
phba
->
io_sgl_free_index
,
phba
->
io_sgl_hndl_base
[
phba
->
io_sgl_free_index
]);
spin_unlock_
bh
(
&
phba
->
io_sgl_lock
);
spin_unlock_
irqrestore
(
&
phba
->
io_sgl_lock
,
flags
);
return
;
}
phba
->
io_sgl_hndl_base
[
phba
->
io_sgl_free_index
]
=
psgl_handle
;
...
...
@@ -950,7 +953,7 @@ free_io_sgl_handle(struct beiscsi_hba *phba, struct sgl_handle *psgl_handle)
phba
->
io_sgl_free_index
=
0
;
else
phba
->
io_sgl_free_index
++
;
spin_unlock_
bh
(
&
phba
->
io_sgl_lock
);
spin_unlock_
irqrestore
(
&
phba
->
io_sgl_lock
,
flags
);
}
static
inline
struct
wrb_handle
*
...
...
@@ -958,15 +961,16 @@ beiscsi_get_wrb_handle(struct hwi_wrb_context *pwrb_context,
unsigned
int
wrbs_per_cxn
)
{
struct
wrb_handle
*
pwrb_handle
;
unsigned
long
flags
;
spin_lock_
bh
(
&
pwrb_context
->
wrb_lock
);
spin_lock_
irqsave
(
&
pwrb_context
->
wrb_lock
,
flags
);
pwrb_handle
=
pwrb_context
->
pwrb_handle_base
[
pwrb_context
->
alloc_index
];
pwrb_context
->
wrb_handles_available
--
;
if
(
pwrb_context
->
alloc_index
==
(
wrbs_per_cxn
-
1
))
pwrb_context
->
alloc_index
=
0
;
else
pwrb_context
->
alloc_index
++
;
spin_unlock_
bh
(
&
pwrb_context
->
wrb_lock
);
spin_unlock_
irqrestore
(
&
pwrb_context
->
wrb_lock
,
flags
);
if
(
pwrb_handle
)
memset
(
pwrb_handle
->
pwrb
,
0
,
sizeof
(
*
pwrb_handle
->
pwrb
));
...
...
@@ -1001,14 +1005,16 @@ beiscsi_put_wrb_handle(struct hwi_wrb_context *pwrb_context,
struct
wrb_handle
*
pwrb_handle
,
unsigned
int
wrbs_per_cxn
)
{
spin_lock_bh
(
&
pwrb_context
->
wrb_lock
);
unsigned
long
flags
;
spin_lock_irqsave
(
&
pwrb_context
->
wrb_lock
,
flags
);
pwrb_context
->
pwrb_handle_base
[
pwrb_context
->
free_index
]
=
pwrb_handle
;
pwrb_context
->
wrb_handles_available
++
;
if
(
pwrb_context
->
free_index
==
(
wrbs_per_cxn
-
1
))
pwrb_context
->
free_index
=
0
;
else
pwrb_context
->
free_index
++
;
spin_unlock_
bh
(
&
pwrb_context
->
wrb_lock
);
spin_unlock_
irqrestore
(
&
pwrb_context
->
wrb_lock
,
flags
);
}
/**
...
...
@@ -1037,8 +1043,9 @@ free_wrb_handle(struct beiscsi_hba *phba, struct hwi_wrb_context *pwrb_context,
static
struct
sgl_handle
*
alloc_mgmt_sgl_handle
(
struct
beiscsi_hba
*
phba
)
{
struct
sgl_handle
*
psgl_handle
;
unsigned
long
flags
;
spin_lock_
bh
(
&
phba
->
mgmt_sgl_lock
);
spin_lock_
irqsave
(
&
phba
->
mgmt_sgl_lock
,
flags
);
if
(
phba
->
eh_sgl_hndl_avbl
)
{
psgl_handle
=
phba
->
eh_sgl_hndl_base
[
phba
->
eh_sgl_alloc_index
];
phba
->
eh_sgl_hndl_base
[
phba
->
eh_sgl_alloc_index
]
=
NULL
;
...
...
@@ -1056,14 +1063,16 @@ static struct sgl_handle *alloc_mgmt_sgl_handle(struct beiscsi_hba *phba)
phba
->
eh_sgl_alloc_index
++
;
}
else
psgl_handle
=
NULL
;
spin_unlock_
bh
(
&
phba
->
mgmt_sgl_lock
);
spin_unlock_
irqrestore
(
&
phba
->
mgmt_sgl_lock
,
flags
);
return
psgl_handle
;
}
void
free_mgmt_sgl_handle
(
struct
beiscsi_hba
*
phba
,
struct
sgl_handle
*
psgl_handle
)
{
spin_lock_bh
(
&
phba
->
mgmt_sgl_lock
);
unsigned
long
flags
;
spin_lock_irqsave
(
&
phba
->
mgmt_sgl_lock
,
flags
);
beiscsi_log
(
phba
,
KERN_INFO
,
BEISCSI_LOG_CONFIG
,
"BM_%d : In free_mgmt_sgl_handle,"
"eh_sgl_free_index=%d
\n
"
,
...
...
@@ -1078,7 +1087,7 @@ free_mgmt_sgl_handle(struct beiscsi_hba *phba, struct sgl_handle *psgl_handle)
"BM_%d : Double Free in eh SGL ,"
"eh_sgl_free_index=%d
\n
"
,
phba
->
eh_sgl_free_index
);
spin_unlock_
bh
(
&
phba
->
mgmt_sgl_lock
);
spin_unlock_
irqrestore
(
&
phba
->
mgmt_sgl_lock
,
flags
);
return
;
}
phba
->
eh_sgl_hndl_base
[
phba
->
eh_sgl_free_index
]
=
psgl_handle
;
...
...
@@ -1088,7 +1097,7 @@ free_mgmt_sgl_handle(struct beiscsi_hba *phba, struct sgl_handle *psgl_handle)
phba
->
eh_sgl_free_index
=
0
;
else
phba
->
eh_sgl_free_index
++
;
spin_unlock_
bh
(
&
phba
->
mgmt_sgl_lock
);
spin_unlock_
irqrestore
(
&
phba
->
mgmt_sgl_lock
,
flags
);
}
static
void
...
...
drivers/scsi/libiscsi.c
View file @
602432c1
...
...
@@ -791,9 +791,9 @@ __iscsi_conn_send_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
free_task:
/* regular RX path uses back_lock */
spin_lock
_bh
(
&
session
->
back_lock
);
spin_lock
(
&
session
->
back_lock
);
__iscsi_put_task
(
task
);
spin_unlock
_bh
(
&
session
->
back_lock
);
spin_unlock
(
&
session
->
back_lock
);
return
NULL
;
}
...
...
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