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
de39d711
Commit
de39d711
authored
Jan 18, 2004
by
Andrew Morton
Committed by
Linus Torvalds
Jan 18, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] sn: General module.c clean up
From: Pat Gefre <pfg@sgi.com> General module.c clean up
parent
a611e51e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
89 deletions
+34
-89
arch/ia64/sn/io/sn2/module.c
arch/ia64/sn/io/sn2/module.c
+34
-88
include/asm-ia64/sn/module.h
include/asm-ia64/sn/module.h
+0
-1
No files found.
arch/ia64/sn/io/sn2/module.c
View file @
de39d711
...
...
@@ -39,40 +39,8 @@ int nummodules;
#define SN00_SERIAL_FUDGE 0x3b1af409d513c2
#define SN0_SERIAL_FUDGE 0x6e
void
encode_int_serial
(
uint64_t
src
,
uint64_t
*
dest
)
{
uint64_t
val
;
int
i
;
val
=
src
+
SN00_SERIAL_FUDGE
;
for
(
i
=
0
;
i
<
sizeof
(
long
long
);
i
++
)
{
((
char
*
)
dest
)[
i
]
=
((
char
*
)
&
val
)[
sizeof
(
long
long
)
/
2
+
((
i
%
2
)
?
((
i
/
2
*
-
1
)
-
1
)
:
(
i
/
2
))];
}
}
void
decode_int_serial
(
uint64_t
src
,
uint64_t
*
dest
)
{
uint64_t
val
;
int
i
;
for
(
i
=
0
;
i
<
sizeof
(
long
long
);
i
++
)
{
((
char
*
)
&
val
)[
sizeof
(
long
long
)
/
2
+
((
i
%
2
)
?
((
i
/
2
*
-
1
)
-
1
)
:
(
i
/
2
))]
=
((
char
*
)
&
src
)[
i
];
}
*
dest
=
val
-
SN00_SERIAL_FUDGE
;
}
void
static
void
__init
encode_str_serial
(
const
char
*
src
,
char
*
dest
)
{
int
i
;
...
...
@@ -85,20 +53,8 @@ encode_str_serial(const char *src, char *dest)
}
}
void
decode_str_serial
(
const
char
*
src
,
char
*
dest
)
{
int
i
;
for
(
i
=
0
;
i
<
MAX_SERIAL_NUM_SIZE
;
i
++
)
{
dest
[
MAX_SERIAL_NUM_SIZE
/
2
+
((
i
%
2
)
?
((
i
/
2
*
-
1
)
-
1
)
:
(
i
/
2
))]
=
src
[
i
]
-
SN0_SERIAL_FUDGE
;
}
}
module_t
*
module_lookup
(
moduleid_t
id
)
module_t
*
__init
module_lookup
(
moduleid_t
id
)
{
int
i
;
...
...
@@ -127,6 +83,7 @@ module_add_node(geoid_t geoid, cnodeid_t cnodeid)
int
i
;
char
buffer
[
16
];
moduleid_t
moduleid
;
slabid_t
slab_number
;
memset
(
buffer
,
0
,
16
);
moduleid
=
geo_module
(
geoid
);
...
...
@@ -135,14 +92,16 @@ module_add_node(geoid_t geoid, cnodeid_t cnodeid)
if
((
m
=
module_lookup
(
moduleid
))
==
0
)
{
m
=
kmalloc
(
sizeof
(
module_t
),
GFP_KERNEL
);
memset
(
m
,
0
,
sizeof
(
module_t
));
ASSERT_ALWAYS
(
m
);
memset
(
m
,
0
,
sizeof
(
module_t
));
for
(
slab_number
=
0
;
slab_number
<=
MAX_SLABS
;
slab_number
++
)
{
m
->
nodes
[
slab_number
]
=
-
1
;
}
m
->
id
=
moduleid
;
spin_lock_init
(
&
m
->
lock
);
init_MUTEX
(
&
m
->
thdcnt
);
/* Insert in sorted order by module number */
for
(
i
=
nummodules
;
i
>
0
&&
modules
[
i
-
1
]
->
id
>
moduleid
;
i
--
)
...
...
@@ -152,17 +111,26 @@ module_add_node(geoid_t geoid, cnodeid_t cnodeid)
nummodules
++
;
}
m
->
nodes
[
m
->
nodecnt
]
=
cnodeid
;
m
->
geoid
[
m
->
nodecnt
]
=
geoid
;
m
->
nodecnt
++
;
/*
* Save this information in the correct slab number of the node in the
* module.
*/
slab_number
=
geo_slab
(
geoid
);
DPRINTF
(
"slab number added 0x%x
\n
"
,
slab_number
);
if
(
m
->
nodes
[
slab_number
]
!=
-
1
)
{
printk
(
"module_add_node .. slab previously found
\n
"
);
return
NULL
;
}
DPRINTF
(
"module_add_node: module %s now has %d nodes
\n
"
,
buffer
,
m
->
nodecnt
);
m
->
nodes
[
slab_number
]
=
cnodeid
;
m
->
geoid
[
slab_number
]
=
geoid
;
return
m
;
}
static
int
__init
module_probe_snum
(
module_t
*
m
,
nasid_t
nasid
)
module_probe_snum
(
module_t
*
m
,
nasid_t
host_nasid
,
nasid_t
nasid
)
{
lboard_t
*
board
;
klmod_serial_num_t
*
comp
;
...
...
@@ -171,13 +139,10 @@ module_probe_snum(module_t *m, nasid_t nasid)
/*
* record brick serial number
*/
board
=
find_lboard
((
lboard_t
*
)
KL_CONFIG_INFO
(
nasid
),
KLTYPE_SNIA
);
board
=
find_lboard
((
lboard_t
*
)
KL_CONFIG_INFO
(
host_
nasid
),
KLTYPE_SNIA
);
if
(
!
board
||
KL_CONFIG_DUPLICATE_BOARD
(
board
))
{
#if LDEBUG
printf
(
"module_probe_snum: no IP35 board found!
\n
"
);
#endif
return
0
;
}
...
...
@@ -186,12 +151,6 @@ module_probe_snum(module_t *m, nasid_t nasid)
encode_str_serial
(
serial_number
,
m
->
snum
.
snum_str
);
m
->
snum_valid
=
1
;
}
#if LDEBUG
else
{
printf
(
"module_probe_snum: brick serial number is null!
\n
"
);
}
printf
(
"module_probe_snum: brick serial number == %s
\n
"
,
serial_number
);
#endif
/* DEBUG */
board
=
find_lboard
((
lboard_t
*
)
KL_CONFIG_INFO
(
nasid
),
KLTYPE_IOBRICK_XBOW
);
...
...
@@ -202,22 +161,10 @@ module_probe_snum(module_t *m, nasid_t nasid)
comp
=
GET_SNUM_COMP
(
board
);
if
(
comp
)
{
#if LDEBUG
int
i
;
printf
(
"********found module with id %x and string"
,
m
->
id
);
for
(
i
=
0
;
i
<
MAX_SERIAL_NUM_SIZE
;
i
++
)
printf
(
" %x "
,
comp
->
snum
.
snum_str
[
i
]);
printf
(
"
\n
"
);
/* Fudged string is not ASCII */
#endif
if
(
comp
->
snum
.
snum_str
[
0
]
!=
'\0'
)
{
memcpy
(
m
->
sys_snum
,
comp
->
snum
.
snum_str
,
MAX_SERIAL_NUM_SIZE
);
m
->
sys_snum_valid
=
1
;
memcpy
(
m
->
sys_snum
,
comp
->
snum
.
snum_str
,
MAX_SERIAL_NUM_SIZE
);
m
->
sys_snum_valid
=
1
;
}
}
...
...
@@ -243,21 +190,20 @@ io_module_init(void)
nserial
=
0
;
/*
* First pass just scan for compute node boards KLTYPE_SNIA.
* We do not support memoryless compute nodes.
*/
for
(
node
=
0
;
node
<
numnodes
;
node
++
)
{
nasid
=
COMPACT_TO_NASID_NODEID
(
node
);
board
=
find_lboard
((
lboard_t
*
)
KL_CONFIG_INFO
(
nasid
),
KLTYPE_SNIA
);
ASSERT
(
board
);
m
=
module_add_node
(
board
->
brd_geoid
,
node
);
HWGRAPH_DEBUG
((
__FILE__
,
__FUNCTION__
,
__LINE__
,
NULL
,
NULL
,
"Found Shub lboard 0x%lx nasid 0x%x cnode 0x%x
\n
"
,
(
unsigned
long
)
board
,
(
int
)
nasid
,
(
int
)
node
)
);
if
(
!
m
->
snum_valid
&&
module_probe_snum
(
m
,
nasid
))
m
=
module_add_node
(
board
->
brd_geoid
,
node
);
if
(
!
m
->
snum_valid
&&
module_probe_snum
(
m
,
nasid
,
nasid
))
nserial
++
;
}
DPRINTF
(
"********found total of %d serial numbers in the system
\n
"
,
nserial
);
if
(
nserial
==
0
)
DPRINTF
(
KERN_WARNING
"io_module_init: No serial number found.
\n
"
);
}
include/asm-ia64/sn/module.h
View file @
de39d711
...
...
@@ -166,7 +166,6 @@ struct module_s {
/* Fields for Module System Controller */
int
mesgpend
;
/* Message pending */
int
shutdown
;
/* Shutdown in progress */
struct
semaphore
thdcnt
;
/* Threads finished counter */
time_t
intrhist
[
MODULE_HIST_CNT
];
int
histptr
;
...
...
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