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
09f5156c
Commit
09f5156c
authored
Aug 27, 2003
by
Chas Williams
Committed by
Stephen Hemminger
Aug 27, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ATM]: Clean up the code making use of sti/cli (from vinay-rc@naturesoft.net)
parent
f75865ce
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
126 deletions
+6
-126
drivers/atm/ambassador.c
drivers/atm/ambassador.c
+6
-126
No files found.
drivers/atm/ambassador.c
View file @
09f5156c
...
...
@@ -310,10 +310,11 @@ static u32 __initdata ucode_data[] = {
0xdeadbeef
};
static
void
do_housekeeping
(
unsigned
long
arg
);
/********** globals **********/
static
amb_dev
*
amb_devs
=
NULL
;
static
struct
timer_list
housekeeping
;
static
struct
timer_list
housekeeping
=
TIMER_INITIALIZER
(
do_housekeeping
,
0
,
1
)
;
static
unsigned
short
debug
=
0
;
static
unsigned
int
cmds
=
8
;
...
...
@@ -937,63 +938,6 @@ static irqreturn_t interrupt_handler(int irq, void *dev_id,
return
IRQ_HANDLED
;
}
/********** don't panic... yeah, right **********/
#ifdef DEBUG_AMBASSADOR
static
void
dont_panic
(
amb_dev
*
dev
)
{
amb_cq
*
cq
=
&
dev
->
cq
;
volatile
amb_cq_ptrs
*
ptrs
=
&
cq
->
ptrs
;
amb_txq
*
txq
;
amb_rxq
*
rxq
;
command
*
cmd
;
tx_in
*
tx
;
tx_simple
*
tx_descr
;
unsigned
char
pool
;
rx_in
*
rx
;
unsigned
long
flags
;
save_flags
(
flags
);
cli
();
PRINTK
(
KERN_INFO
,
"don't panic - putting adapter into reset"
);
wr_plain
(
dev
,
offsetof
(
amb_mem
,
reset_control
),
rd_plain
(
dev
,
offsetof
(
amb_mem
,
reset_control
))
|
AMB_RESET_BITS
);
PRINTK
(
KERN_INFO
,
"marking all commands complete"
);
for
(
cmd
=
ptrs
->
start
;
cmd
<
ptrs
->
limit
;
++
cmd
)
cmd
->
request
=
cpu_to_be32
(
SRB_COMPLETE
);
PRINTK
(
KERN_INFO
,
"completing all TXs"
);
txq
=
&
dev
->
txq
;
tx
=
txq
->
in
.
ptr
;
while
(
txq
->
pending
--
)
{
if
(
tx
==
txq
->
in
.
start
)
tx
=
txq
->
in
.
limit
;
--
tx
;
tx_descr
=
bus_to_virt
(
be32_to_cpu
(
tx
->
tx_descr_addr
));
amb_kfree_skb
(
tx_descr
->
skb
);
kfree
(
tx_descr
);
}
PRINTK
(
KERN_INFO
,
"freeing all RX buffers"
);
for
(
pool
=
0
;
pool
<
NUM_RX_POOLS
;
++
pool
)
{
rxq
=
&
dev
->
rxq
[
pool
];
rx
=
rxq
->
in
.
ptr
;
while
(
rxq
->
pending
--
)
{
if
(
rx
==
rxq
->
in
.
start
)
rx
=
rxq
->
in
.
limit
;
--
rx
;
dev_kfree_skb_any
(
bus_to_virt
(
rx
->
handle
));
}
}
PRINTK
(
KERN_INFO
,
"don't panic over - close all VCs and rmmod"
);
set_bit
(
dead
,
&
dev
->
flags
);
restore_flags
(
flags
);
return
;
}
#endif
/********** make rate (not quite as much fun as Horizon) **********/
static
unsigned
int
make_rate
(
unsigned
int
rate
,
rounding
r
,
...
...
@@ -1420,32 +1364,6 @@ static void amb_close (struct atm_vcc * atm_vcc) {
return
;
}
/********** DebugIoctl **********/
#if 0
static int amb_ioctl (struct atm_dev * dev, unsigned int cmd, void * arg) {
unsigned short newdebug;
if (cmd == AMB_SETDEBUG) {
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (copy_from_user (&newdebug, arg, sizeof(newdebug))) {
// moan
return -EFAULT;
} else {
debug = newdebug;
return 0;
}
} else if (cmd == AMB_DONTPANIC) {
if (!capable(CAP_NET_ADMIN))
return -EPERM;
dont_panic (dev);
} else {
// moan
return -ENOIOCTLCMD;
}
}
#endif
/********** Set socket options for a VC **********/
// int amb_getsockopt (struct atm_vcc * atm_vcc, int level, int optname, void * optval, int optlen);
...
...
@@ -1524,33 +1442,6 @@ static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) {
tx
.
tx_descr_length
=
cpu_to_be16
(
sizeof
(
tx_frag
)
+
sizeof
(
tx_frag_end
));
tx
.
tx_descr_addr
=
cpu_to_be32
(
virt_to_bus
(
&
tx_descr
->
tx_frag
));
#ifdef DEBUG_AMBASSADOR
/* wey-hey! */
if
(
vc
==
1023
)
{
unsigned
int
i
;
unsigned
short
d
=
0
;
char
*
s
=
skb
->
data
;
switch
(
*
s
++
)
{
case
'D'
:
{
for
(
i
=
0
;
i
<
4
;
++
i
)
{
d
=
(
d
<<
4
)
|
((
*
s
<=
'9'
)
?
(
*
s
-
'0'
)
:
(
*
s
-
'a'
+
10
));
++
s
;
}
PRINTK
(
KERN_INFO
,
"debug bitmap is now %hx"
,
debug
=
d
);
break
;
}
case
'R'
:
{
if
(
*
s
++
==
'e'
&&
*
s
++
==
's'
&&
*
s
++
==
'e'
&&
*
s
++
==
't'
)
dont_panic
(
dev
);
break
;
}
default:
{
break
;
}
}
}
#endif
while
(
tx_give
(
dev
,
&
tx
))
schedule
();
return
0
;
...
...
@@ -1663,21 +1554,14 @@ static int amb_proc_read (struct atm_dev * atm_dev, loff_t * pos, char * page) {
/********** Operation Structure **********/
static
const
struct
atmdev_ops
amb_ops
=
{
.
open
=
amb_open
,
.
open
=
amb_open
,
.
close
=
amb_close
,
.
send
=
amb_send
,
.
send
=
amb_send
,
.
proc_read
=
amb_proc_read
,
.
owner
=
THIS_MODULE
,
};
/********** housekeeping **********/
static
inline
void
set_timer
(
struct
timer_list
*
timer
,
unsigned
long
delay
)
{
timer
->
expires
=
jiffies
+
delay
;
add_timer
(
timer
);
return
;
}
static
void
do_housekeeping
(
unsigned
long
arg
)
{
amb_dev
*
dev
=
amb_devs
;
// data is set to zero at module unload
...
...
@@ -1693,7 +1577,7 @@ static void do_housekeeping (unsigned long arg) {
dev
=
dev
->
prev
;
}
set_timer
(
&
housekeeping
,
10
*
HZ
);
mod_timer
(
&
housekeeping
,
jiffies
+
10
*
HZ
);
}
return
;
...
...
@@ -2579,11 +2463,7 @@ static int __init amb_module_init (void) {
devs
=
amb_probe
();
if
(
devs
)
{
init_timer
(
&
housekeeping
);
housekeeping
.
function
=
do_housekeeping
;
// paranoia
housekeeping
.
data
=
1
;
set_timer
(
&
housekeeping
,
0
);
mod_timer
(
&
housekeeping
,
jiffies
);
}
else
{
PRINTK
(
KERN_INFO
,
"no (usable) adapters found"
);
}
...
...
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