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
250cd4b0
Commit
250cd4b0
authored
Jul 31, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge penguin:v2.5/linux
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
7325bea7
c9bfb8b3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
11 deletions
+25
-11
drivers/usb/host/ohci-q.c
drivers/usb/host/ohci-q.c
+22
-7
include/asm-i386/smp.h
include/asm-i386/smp.h
+3
-2
mm/rmap.c
mm/rmap.c
+0
-2
No files found.
drivers/usb/host/ohci-q.c
View file @
250cd4b0
...
@@ -534,6 +534,8 @@ td_fill (unsigned int info,
...
@@ -534,6 +534,8 @@ td_fill (unsigned int info,
/* aim for only one interrupt per urb. mostly applies to control
/* aim for only one interrupt per urb. mostly applies to control
* and iso; other urbs rarely need more than one TD per urb.
* and iso; other urbs rarely need more than one TD per urb.
* this way, only final tds (or ones with an error) cause IRQs.
* this way, only final tds (or ones with an error) cause IRQs.
* at least immediately; use DI=6 in case any control request is
* tempted to die part way through.
*
*
* NOTE: could delay interrupts even for the last TD, and get fewer
* NOTE: could delay interrupts even for the last TD, and get fewer
* interrupts ... increasing per-urb latency by sharing interrupts.
* interrupts ... increasing per-urb latency by sharing interrupts.
...
@@ -541,7 +543,7 @@ td_fill (unsigned int info,
...
@@ -541,7 +543,7 @@ td_fill (unsigned int info,
*/
*/
if
(
index
!=
(
urb_priv
->
length
-
1
)
if
(
index
!=
(
urb_priv
->
length
-
1
)
||
(
urb
->
transfer_flags
&
URB_NO_INTERRUPT
))
||
(
urb
->
transfer_flags
&
URB_NO_INTERRUPT
))
info
|=
TD_DI_SET
(
7
);
info
|=
TD_DI_SET
(
6
);
/* use this td as the next dummy */
/* use this td as the next dummy */
td_pt
=
urb_priv
->
td
[
index
];
td_pt
=
urb_priv
->
td
[
index
];
...
@@ -809,12 +811,16 @@ static struct td *dl_reverse_done_list (struct ohci_hcd *ohci)
...
@@ -809,12 +811,16 @@ static struct td *dl_reverse_done_list (struct ohci_hcd *ohci)
ohci
->
hcca
->
done_head
=
0
;
ohci
->
hcca
->
done_head
=
0
;
while
(
td_list_hc
)
{
while
(
td_list_hc
)
{
int
cc
;
td_list
=
dma_to_td
(
ohci
,
td_list_hc
);
td_list
=
dma_to_td
(
ohci
,
td_list_hc
);
td_list
->
hwINFO
|=
cpu_to_le32
(
TD_DONE
);
td_list
->
hwINFO
|=
cpu_to_le32
(
TD_DONE
);
if
(
TD_CC_GET
(
le32_to_cpup
(
&
td_list
->
hwINFO
)))
{
cc
=
TD_CC_GET
(
le32_to_cpup
(
&
td_list
->
hwINFO
));
if
(
cc
!=
TD_CC_NOERROR
)
{
urb_priv
=
(
urb_priv_t
*
)
td_list
->
urb
->
hcpriv
;
urb_priv
=
(
urb_priv_t
*
)
td_list
->
urb
->
hcpriv
;
/* Non-iso endpoints can halt on error; un-halt,
/* Non-iso endpoints can halt on error; un-halt,
* and dequeue any other TDs from this urb.
* and dequeue any other TDs from this urb.
* No other TD could have caused the halt.
* No other TD could have caused the halt.
...
@@ -822,12 +828,21 @@ static struct td *dl_reverse_done_list (struct ohci_hcd *ohci)
...
@@ -822,12 +828,21 @@ static struct td *dl_reverse_done_list (struct ohci_hcd *ohci)
if
(
td_list
->
ed
->
hwHeadP
&
ED_H
)
{
if
(
td_list
->
ed
->
hwHeadP
&
ED_H
)
{
if
(
urb_priv
&&
((
td_list
->
index
+
1
)
if
(
urb_priv
&&
((
td_list
->
index
+
1
)
<
urb_priv
->
length
))
{
<
urb_priv
->
length
))
{
#ifdef OHCI_VERBOSE_DEBUG
struct
urb
*
urb
=
td_list
->
urb
;
dbg
(
"urb %p TD %p (%d/%d), patch ED"
,
td_list
->
urb
,
td_list
,
/* help for troubleshooting: */
dbg
(
"urb %p usb-%s-%s ep-%d-%s "
"(td %d/%d), "
"cc %d --> status %d"
,
td_list
->
urb
,
urb
->
dev
->
bus
->
bus_name
,
urb
->
dev
->
devpath
,
usb_pipeendpoint
(
urb
->
pipe
),
usb_pipein
(
urb
->
pipe
)
?
"IN"
:
"OUT"
,
1
+
td_list
->
index
,
1
+
td_list
->
index
,
urb_priv
->
length
);
urb_priv
->
length
,
#endif
cc
,
cc_to_error
[
cc
]);
td_list
->
ed
->
hwHeadP
=
td_list
->
ed
->
hwHeadP
=
(
urb_priv
->
td
[
urb_priv
->
length
-
1
]
->
hwNextTD
(
urb_priv
->
td
[
urb_priv
->
length
-
1
]
->
hwNextTD
&
__constant_cpu_to_le32
(
TD_MASK
))
&
__constant_cpu_to_le32
(
TD_MASK
))
...
...
include/asm-i386/smp.h
View file @
250cd4b0
...
@@ -85,7 +85,9 @@ extern volatile int logical_apicid_to_cpu[MAX_APICID];
...
@@ -85,7 +85,9 @@ extern volatile int logical_apicid_to_cpu[MAX_APICID];
*/
*/
#define smp_processor_id() (current_thread_info()->cpu)
#define smp_processor_id() (current_thread_info()->cpu)
#define cpu_possible(cpu) (phys_cpu_present_map & (1<<(cpu)))
extern
volatile
unsigned
long
cpu_callout_map
;
#define cpu_possible(cpu) (cpu_callout_map & (1<<(cpu)))
#define cpu_online(cpu) (cpu_online_map & (1<<(cpu)))
#define cpu_online(cpu) (cpu_online_map & (1<<(cpu)))
extern
inline
unsigned
int
num_online_cpus
(
void
)
extern
inline
unsigned
int
num_online_cpus
(
void
)
...
@@ -113,7 +115,6 @@ static __inline int logical_smp_processor_id(void)
...
@@ -113,7 +115,6 @@ static __inline int logical_smp_processor_id(void)
return
GET_APIC_LOGICAL_ID
(
*
(
unsigned
long
*
)(
APIC_BASE
+
APIC_LDR
));
return
GET_APIC_LOGICAL_ID
(
*
(
unsigned
long
*
)(
APIC_BASE
+
APIC_LDR
));
}
}
extern
volatile
unsigned
long
cpu_callout_map
;
/* We don't mark CPUs online until __cpu_up(), so we need another measure */
/* We don't mark CPUs online until __cpu_up(), so we need another measure */
static
inline
int
num_booting_cpus
(
void
)
static
inline
int
num_booting_cpus
(
void
)
{
{
...
...
mm/rmap.c
View file @
250cd4b0
...
@@ -208,8 +208,6 @@ void page_remove_rmap(struct page * page, pte_t * ptep)
...
@@ -208,8 +208,6 @@ void page_remove_rmap(struct page * page, pte_t * ptep)
}
}
printk
(
"
\n
"
);
printk
(
"
\n
"
);
printk
(
KERN_ERR
"page_remove_rmap: driver cleared PG_reserved ?
\n
"
);
printk
(
KERN_ERR
"page_remove_rmap: driver cleared PG_reserved ?
\n
"
);
#else
BUG
();
#endif
#endif
out:
out:
...
...
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