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
nexedi
linux
Commits
ce77b50c
Commit
ce77b50c
authored
Apr 23, 2004
by
David Brownell
Committed by
Greg Kroah-Hartman
Apr 23, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] USB: usbtest, smp unlink modes
Handle some SMP-visible unlink states better.
parent
3069353b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
3 additions
and
3 deletions
+3
-3
drivers/usb/misc/usbtest.c
drivers/usb/misc/usbtest.c
+3
-3
No files found.
drivers/usb/misc/usbtest.c
View file @
ce77b50c
...
@@ -802,6 +802,7 @@ static void ctrl_complete (struct urb *urb, struct pt_regs *regs)
...
@@ -802,6 +802,7 @@ static void ctrl_complete (struct urb *urb, struct pt_regs *regs)
switch
(
status
)
{
switch
(
status
)
{
case
-
EINPROGRESS
:
case
-
EINPROGRESS
:
case
-
EBUSY
:
case
-
EBUSY
:
case
-
EIDRM
:
continue
;
continue
;
default:
default:
dbg
(
"urb unlink --> %d"
,
status
);
dbg
(
"urb unlink --> %d"
,
status
);
...
@@ -1038,8 +1039,6 @@ static void unlink1_callback (struct urb *urb, struct pt_regs *regs)
...
@@ -1038,8 +1039,6 @@ static void unlink1_callback (struct urb *urb, struct pt_regs *regs)
if
(
!
status
)
if
(
!
status
)
status
=
usb_submit_urb
(
urb
,
SLAB_ATOMIC
);
status
=
usb_submit_urb
(
urb
,
SLAB_ATOMIC
);
if
(
status
)
{
if
(
status
)
{
if
(
status
==
-
ECONNRESET
||
status
==
-
ENOENT
)
status
=
0
;
urb
->
status
=
status
;
urb
->
status
=
status
;
complete
((
struct
completion
*
)
urb
->
context
);
complete
((
struct
completion
*
)
urb
->
context
);
}
}
...
@@ -1077,8 +1076,9 @@ static int unlink1 (struct usbtest_dev *dev, int pipe, int size, int async)
...
@@ -1077,8 +1076,9 @@ static int unlink1 (struct usbtest_dev *dev, int pipe, int size, int async)
wait_ms
(
jiffies
%
(
2
*
INTERRUPT_RATE
));
wait_ms
(
jiffies
%
(
2
*
INTERRUPT_RATE
));
retry:
retry:
retval
=
usb_unlink_urb
(
urb
);
retval
=
usb_unlink_urb
(
urb
);
if
(
retval
==
-
EBUSY
)
{
if
(
retval
==
-
EBUSY
||
retval
==
-
EIDRM
)
{
/* we can't unlink urbs while they're completing.
/* we can't unlink urbs while they're completing.
* or if they've completed, and we haven't resubmitted.
* "normal" drivers would prevent resubmission, but
* "normal" drivers would prevent resubmission, but
* since we're testing unlink paths, we can't.
* since we're testing unlink paths, we can't.
*/
*/
...
...
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