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
7da60b9c
Commit
7da60b9c
authored
Mar 21, 2003
by
Alan Cox
Committed by
Linus Torvalds
Mar 21, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] Remove i2o pci abstractions
parent
fe015954
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
409 additions
and
175 deletions
+409
-175
drivers/message/i2o/i2o_block.c
drivers/message/i2o/i2o_block.c
+3
-3
drivers/message/i2o/i2o_core.c
drivers/message/i2o/i2o_core.c
+335
-87
drivers/message/i2o/i2o_pci.c
drivers/message/i2o/i2o_pci.c
+0
-3
drivers/message/i2o/i2o_proc.c
drivers/message/i2o/i2o_proc.c
+62
-44
include/linux/i2o.h
include/linux/i2o.h
+9
-38
No files found.
drivers/message/i2o/i2o_block.c
View file @
7da60b9c
...
...
@@ -754,7 +754,7 @@ static int i2ob_evt(void *dummy)
* hit the fan big time. The card seems to recover but loses
* the pending writes. Deeply ungood except for testing fsck
*/
if
(
i2ob_dev
[
unit
].
i2odev
->
controller
->
bus
.
pci
.
promise
)
if
(
i2ob_dev
[
unit
].
i2odev
->
controller
->
promise
)
panic
(
"I2O controller firmware failed. Reboot and force a filesystem check.
\n
"
);
default:
printk
(
KERN_INFO
"%s: Received event 0x%X we didn't register for
\n
"
...
...
@@ -1140,10 +1140,10 @@ static int i2ob_install_device(struct i2o_controller *c, struct i2o_device *d, i
if
(
d
->
controller
->
battery
==
0
)
i2ob_dev
[
i
].
wcache
=
CACHE_WRITETHROUGH
;
if
(
d
->
controller
->
type
==
I2O_TYPE_PCI
&&
d
->
controller
->
bus
.
pci
.
promise
)
if
(
d
->
controller
->
promise
)
i2ob_dev
[
i
].
wcache
=
CACHE_WRITETHROUGH
;
if
(
d
->
controller
->
type
==
I2O_TYPE_PCI
&&
d
->
controller
->
bus
.
pci
.
short_req
)
if
(
d
->
controller
->
short_req
)
{
blk_queue_max_sectors
(
q
,
8
);
blk_queue_max_phys_segments
(
q
,
8
);
...
...
drivers/message/i2o/i2o_core.c
View file @
7da60b9c
This diff is collapsed.
Click to expand it.
drivers/message/i2o/i2o_pci.c
View file @
7da60b9c
...
...
@@ -32,9 +32,6 @@
#include <asm/io.h>
#ifdef CONFIG_MTRR
#include <asm/mtrr.h>
#endif // CONFIG_MTRR
static
int
dpt
;
...
...
drivers/message/i2o/i2o_proc.c
View file @
7da60b9c
...
...
@@ -836,10 +836,14 @@ int i2o_proc_read_ddm_table(char *buf, char **start, off_t offset, int len,
u16
row_count
;
u16
more_flag
;
i2o_exec_execute_ddm_table
ddm_table
[
MAX_I2O_MODULES
];
}
result
;
}
*
result
;
i2o_exec_execute_ddm_table
ddm_table
;
result
=
kmalloc
(
sizeof
(
*
result
),
GFP_KERNEL
);
if
(
!
result
)
return
-
ENOMEM
;
spin_lock
(
&
i2o_proc_lock
);
len
=
0
;
...
...
@@ -847,18 +851,17 @@ int i2o_proc_read_ddm_table(char *buf, char **start, off_t offset, int len,
c
,
ADAPTER_TID
,
0x0003
,
-
1
,
NULL
,
0
,
&
result
,
sizeof
(
result
));
result
,
sizeof
(
*
result
));
if
(
token
<
0
)
{
len
+=
i2o_report_query_status
(
buf
+
len
,
token
,
"0x0003 Executing DDM List"
);
spin_unlock
(
&
i2o_proc_lock
);
return
len
;
goto
out
;
}
len
+=
sprintf
(
buf
+
len
,
"Tid Module_type Vendor Mod_id Module_name Vrs Data_size Code_size
\n
"
);
ddm_table
=
result
.
ddm_table
[
0
];
ddm_table
=
result
->
ddm_table
[
0
];
for
(
i
=
0
;
i
<
result
.
row_count
;
ddm_table
=
result
.
ddm_table
[
++
i
])
for
(
i
=
0
;
i
<
result
->
row_count
;
ddm_table
=
result
->
ddm_table
[
++
i
])
{
len
+=
sprintf
(
buf
+
len
,
"0x%03x "
,
ddm_table
.
ddm_tid
&
0xFFF
);
...
...
@@ -882,9 +885,9 @@ int i2o_proc_read_ddm_table(char *buf, char **start, off_t offset, int len,
len
+=
sprintf
(
buf
+
len
,
"
\n
"
);
}
out:
spin_unlock
(
&
i2o_proc_lock
);
kfree
(
result
);
return
len
;
}
...
...
@@ -1047,7 +1050,11 @@ int i2o_proc_read_groups(char *buf, char **start, off_t offset, int len,
u16
row_count
;
u16
more_flag
;
i2o_group_info
group
[
256
];
}
result
;
}
*
result
;
result
=
kmalloc
(
sizeof
(
*
result
),
GFP_KERNEL
);
if
(
!
result
)
return
-
ENOMEM
;
spin_lock
(
&
i2o_proc_lock
);
...
...
@@ -1055,24 +1062,23 @@ int i2o_proc_read_groups(char *buf, char **start, off_t offset, int len,
token
=
i2o_query_table
(
I2O_PARAMS_TABLE_GET
,
d
->
controller
,
d
->
lct_data
.
tid
,
0xF000
,
-
1
,
NULL
,
0
,
&
result
,
sizeof
(
result
));
result
,
sizeof
(
*
result
));
if
(
token
<
0
)
{
len
=
i2o_report_query_status
(
buf
+
len
,
token
,
"0xF000 Params Descriptor"
);
spin_unlock
(
&
i2o_proc_lock
);
return
len
;
goto
out
;
}
len
+=
sprintf
(
buf
+
len
,
"# Group FieldCount RowCount Type Add Del Clear
\n
"
);
for
(
i
=
0
;
i
<
result
.
row_count
;
i
++
)
for
(
i
=
0
;
i
<
result
->
row_count
;
i
++
)
{
len
+=
sprintf
(
buf
+
len
,
"%-3d"
,
i
);
len
+=
sprintf
(
buf
+
len
,
"0x%04X "
,
result
.
group
[
i
].
group_number
);
len
+=
sprintf
(
buf
+
len
,
"%10d "
,
result
.
group
[
i
].
field_count
);
len
+=
sprintf
(
buf
+
len
,
"%8d "
,
result
.
group
[
i
].
row_count
);
len
+=
sprintf
(
buf
+
len
,
"0x%04X "
,
result
->
group
[
i
].
group_number
);
len
+=
sprintf
(
buf
+
len
,
"%10d "
,
result
->
group
[
i
].
field_count
);
len
+=
sprintf
(
buf
+
len
,
"%8d "
,
result
->
group
[
i
].
row_count
);
properties
=
result
.
group
[
i
].
properties
;
properties
=
result
->
group
[
i
].
properties
;
if
(
properties
&
0x1
)
len
+=
sprintf
(
buf
+
len
,
"Table "
);
else
len
+=
sprintf
(
buf
+
len
,
"Scalar "
);
if
(
properties
&
0x2
)
len
+=
sprintf
(
buf
+
len
,
" + "
);
...
...
@@ -1085,11 +1091,11 @@ int i2o_proc_read_groups(char *buf, char **start, off_t offset, int len,
len
+=
sprintf
(
buf
+
len
,
"
\n
"
);
}
if
(
result
.
more_flag
)
if
(
result
->
more_flag
)
len
+=
sprintf
(
buf
+
len
,
"There is more...
\n
"
);
out:
spin_unlock
(
&
i2o_proc_lock
);
kfree
(
result
);
return
len
;
}
...
...
@@ -1220,7 +1226,11 @@ int i2o_proc_read_users(char *buf, char **start, off_t offset, int len,
u16
row_count
;
u16
more_flag
;
i2o_user_table
user
[
64
];
}
result
;
}
*
result
;
result
=
kmalloc
(
sizeof
(
*
result
),
GFP_KERNEL
);
if
(
!
result
)
return
-
ENOMEM
;
spin_lock
(
&
i2o_proc_lock
);
len
=
0
;
...
...
@@ -1228,28 +1238,28 @@ int i2o_proc_read_users(char *buf, char **start, off_t offset, int len,
token
=
i2o_query_table
(
I2O_PARAMS_TABLE_GET
,
d
->
controller
,
d
->
lct_data
.
tid
,
0xF003
,
-
1
,
NULL
,
0
,
&
result
,
sizeof
(
result
));
result
,
sizeof
(
*
result
));
if
(
token
<
0
)
{
len
+=
i2o_report_query_status
(
buf
+
len
,
token
,
"0xF003 User Table"
);
spin_unlock
(
&
i2o_proc_lock
);
return
len
;
goto
out
;
}
len
+=
sprintf
(
buf
+
len
,
"# Instance UserTid ClaimType
\n
"
);
for
(
i
=
0
;
i
<
result
.
row_count
;
i
++
)
for
(
i
=
0
;
i
<
result
->
row_count
;
i
++
)
{
len
+=
sprintf
(
buf
+
len
,
"%-3d"
,
i
);
len
+=
sprintf
(
buf
+
len
,
"%#8x "
,
result
.
user
[
i
].
instance
);
len
+=
sprintf
(
buf
+
len
,
"%#7x "
,
result
.
user
[
i
].
user_tid
);
len
+=
sprintf
(
buf
+
len
,
"%#9x
\n
"
,
result
.
user
[
i
].
claim_type
);
len
+=
sprintf
(
buf
+
len
,
"%#8x "
,
result
->
user
[
i
].
instance
);
len
+=
sprintf
(
buf
+
len
,
"%#7x "
,
result
->
user
[
i
].
user_tid
);
len
+=
sprintf
(
buf
+
len
,
"%#9x
\n
"
,
result
->
user
[
i
].
claim_type
);
}
if
(
result
.
more_flag
)
if
(
result
->
more_flag
)
len
+=
sprintf
(
buf
+
len
,
"There is more...
\n
"
);
out:
spin_unlock
(
&
i2o_proc_lock
);
kfree
(
result
);
return
len
;
}
...
...
@@ -2264,24 +2274,27 @@ int i2o_proc_read_lan_mcast_addr(char *buf, char **start, off_t offset,
u16
row_count
;
u16
more_flag
;
u8
mc_addr
[
256
][
8
];
}
result
;
}
*
result
;
result
=
kmalloc
(
sizeof
(
*
result
),
GFP_KERNEL
);
if
(
!
result
)
return
-
ENOMEM
;
spin_lock
(
&
i2o_proc_lock
);
len
=
0
;
token
=
i2o_query_table
(
I2O_PARAMS_TABLE_GET
,
d
->
controller
,
d
->
lct_data
.
tid
,
0x0002
,
-
1
,
NULL
,
0
,
&
result
,
sizeof
(
result
));
NULL
,
0
,
result
,
sizeof
(
*
result
));
if
(
token
<
0
)
{
len
+=
i2o_report_query_status
(
buf
+
len
,
token
,
"0x002 LAN Multicast MAC Address"
);
spin_unlock
(
&
i2o_proc_lock
);
return
len
;
goto
out
;
}
for
(
i
=
0
;
i
<
result
.
row_count
;
i
++
)
for
(
i
=
0
;
i
<
result
->
row_count
;
i
++
)
{
memcpy
(
mc_addr
,
result
.
mc_addr
[
i
],
8
);
memcpy
(
mc_addr
,
result
->
mc_addr
[
i
],
8
);
len
+=
sprintf
(
buf
+
len
,
"MC MAC address[%d]: "
"%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X
\n
"
,
...
...
@@ -2289,8 +2302,9 @@ int i2o_proc_read_lan_mcast_addr(char *buf, char **start, off_t offset,
mc_addr
[
3
],
mc_addr
[
4
],
mc_addr
[
5
],
mc_addr
[
6
],
mc_addr
[
7
]);
}
out:
spin_unlock
(
&
i2o_proc_lock
);
kfree
(
result
);
return
len
;
}
...
...
@@ -2495,32 +2509,36 @@ int i2o_proc_read_lan_alt_addr(char *buf, char **start, off_t offset, int len,
u16
row_count
;
u16
more_flag
;
u8
alt_addr
[
256
][
8
];
}
result
;
}
*
result
;
result
=
kmalloc
(
sizeof
(
*
result
),
GFP_KERNEL
);
if
(
!
result
)
return
-
ENOMEM
;
spin_lock
(
&
i2o_proc_lock
);
len
=
0
;
token
=
i2o_query_table
(
I2O_PARAMS_TABLE_GET
,
d
->
controller
,
d
->
lct_data
.
tid
,
0x0006
,
-
1
,
NULL
,
0
,
&
result
,
sizeof
(
result
));
0x0006
,
-
1
,
NULL
,
0
,
result
,
sizeof
(
*
result
));
if
(
token
<
0
)
{
len
+=
i2o_report_query_status
(
buf
+
len
,
token
,
"0x0006 LAN Alternate Address (optional)"
);
spin_unlock
(
&
i2o_proc_lock
);
return
len
;
goto
out
;
}
for
(
i
=
0
;
i
<
result
.
row_count
;
i
++
)
for
(
i
=
0
;
i
<
result
->
row_count
;
i
++
)
{
memcpy
(
alt_addr
,
result
.
alt_addr
[
i
],
8
);
memcpy
(
alt_addr
,
result
->
alt_addr
[
i
],
8
);
len
+=
sprintf
(
buf
+
len
,
"Alternate address[%d]: "
"%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X
\n
"
,
i
,
alt_addr
[
0
],
alt_addr
[
1
],
alt_addr
[
2
],
alt_addr
[
3
],
alt_addr
[
4
],
alt_addr
[
5
],
alt_addr
[
6
],
alt_addr
[
7
]);
}
out:
spin_unlock
(
&
i2o_proc_lock
);
kfree
(
result
);
return
len
;
}
...
...
include/linux/i2o.h
View file @
7da60b9c
...
...
@@ -23,7 +23,7 @@
#include <linux/i2o-dev.h>
/* How many different OSM's are we allowing */
#define MAX_I2O_MODULES
6
4
#define MAX_I2O_MODULES 4
/* How many OSMs can register themselves for device status updates? */
#define I2O_MAX_MANAGERS 4
...
...
@@ -76,10 +76,16 @@ struct i2o_device
};
/*
*
Resource data for each PCI I2O controller
*
Each I2O controller has one of these objects
*/
struct
i2o_
pci
struct
i2o_
controller
{
char
name
[
16
];
int
unit
;
int
type
;
int
enabled
;
struct
pci_dev
*
pdev
;
/* PCI device */
int
irq
;
int
short_req
:
1
;
/* Use small block sizes */
int
dpt
:
1
;
/* Don't quiesce */
...
...
@@ -88,25 +94,6 @@ struct i2o_pci
int
mtrr_reg0
;
int
mtrr_reg1
;
#endif
};
/*
* Transport types supported by I2O stack
*/
#define I2O_TYPE_PCI 0x01
/* PCI I2O controller */
/*
* Each I2O controller has one of these objects
*/
struct
i2o_controller
{
struct
pci_dev
*
pdev
;
/* PCI device */
char
name
[
16
];
int
unit
;
int
type
;
int
enabled
;
struct
notifier_block
*
event_notifer
;
/* Events */
atomic_t
users
;
...
...
@@ -143,22 +130,6 @@ struct i2o_controller
struct
proc_dir_entry
*
proc_entry
;
/* /proc dir */
union
{
/* Bus information */
struct
i2o_pci
pci
;
}
bus
;
/* Bus specific destructor */
void
(
*
destructor
)(
struct
i2o_controller
*
);
/* Bus specific attach/detach */
int
(
*
bind
)(
struct
i2o_controller
*
,
struct
i2o_device
*
);
/* Bus specific initiator */
int
(
*
unbind
)(
struct
i2o_controller
*
,
struct
i2o_device
*
);
/* Bus specific enable/disable */
void
(
*
bus_enable
)(
struct
i2o_controller
*
);
void
(
*
bus_disable
)(
struct
i2o_controller
*
);
void
*
page_frame
;
/* Message buffers */
dma_addr_t
page_frame_map
;
/* Cache map */
...
...
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