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
d0229603
Commit
d0229603
authored
Dec 07, 2002
by
Paul Mackerras
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/home/paulus/kernel/linux-2.5
into samba.org:/home/paulus/kernel/for-linus-ppc
parents
cfc0e9b7
05d43c5f
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
185 additions
and
238 deletions
+185
-238
arch/i386/kernel/edd.c
arch/i386/kernel/edd.c
+33
-14
drivers/block/acsi.c
drivers/block/acsi.c
+6
-9
drivers/block/acsi_slm.c
drivers/block/acsi_slm.c
+5
-7
drivers/block/amiflop.c
drivers/block/amiflop.c
+12
-15
drivers/block/ataflop.c
drivers/block/ataflop.c
+7
-9
drivers/block/cciss.c
drivers/block/cciss.c
+10
-10
drivers/block/cciss.h
drivers/block/cciss.h
+0
-2
drivers/block/cpqarray.c
drivers/block/cpqarray.c
+13
-18
drivers/block/floppy.c
drivers/block/floppy.c
+10
-11
drivers/block/loop.c
drivers/block/loop.c
+3
-5
drivers/block/nbd.c
drivers/block/nbd.c
+28
-6
drivers/block/paride/pcd.c
drivers/block/paride/pcd.c
+4
-11
drivers/block/paride/pd.c
drivers/block/paride/pd.c
+5
-10
drivers/block/paride/pf.c
drivers/block/paride/pf.c
+5
-12
drivers/block/ps2esdi.c
drivers/block/ps2esdi.c
+8
-14
drivers/block/rd.c
drivers/block/rd.c
+7
-15
drivers/block/swim3.c
drivers/block/swim3.c
+7
-9
drivers/block/swim_iop.c
drivers/block/swim_iop.c
+5
-8
drivers/block/umem.c
drivers/block/umem.c
+2
-3
drivers/block/xd.c
drivers/block/xd.c
+7
-9
drivers/block/z2ram.c
drivers/block/z2ram.c
+8
-10
include/linux/nbd.h
include/linux/nbd.h
+0
-31
No files found.
arch/i386/kernel/edd.c
View file @
d0229603
...
...
@@ -575,17 +575,25 @@ static EDD_DEVICE_ATTR(interface, 0444, edd_show_interface, edd_has_edd30);
static
EDD_DEVICE_ATTR
(
host_bus
,
0444
,
edd_show_host_bus
,
edd_has_edd30
);
/* These are default attributes that are added for every edd
* device discovered.
*/
static
struct
attribute
*
def_attrs
[]
=
{
&
edd_attr_raw_data
.
attr
,
&
edd_attr_version
.
attr
,
&
edd_attr_extensions
.
attr
,
&
edd_attr_info_flags
.
attr
,
&
edd_attr_sectors
.
attr
,
&
edd_attr_default_cylinders
.
attr
,
&
edd_attr_default_heads
.
attr
,
&
edd_attr_default_sectors_per_track
.
attr
,
&
edd_attr_interface
.
attr
,
&
edd_attr_host_bus
.
attr
,
NULL
,
};
/* These attributes are conditional and only added for some devices. */
static
struct
edd_attribute
*
edd_attrs
[]
=
{
&
edd_attr_default_cylinders
,
&
edd_attr_default_heads
,
&
edd_attr_default_sectors_per_track
,
&
edd_attr_interface
,
&
edd_attr_host_bus
,
NULL
,
};
...
...
@@ -686,8 +694,6 @@ edd_match_scsidev(struct edd_device *edev, struct scsi_device *sd)
* The reference counting probably isn't the best it could be.
*/
#define to_scsi_host(d) \
container_of(d, struct Scsi_Host, host_driverfs_dev)
#define children_to_dev(n) container_of(n,struct device,node)
static
struct
scsi_device
*
edd_find_matching_scsi_device
(
struct
edd_device
*
edev
)
...
...
@@ -697,7 +703,6 @@ edd_find_matching_scsi_device(struct edd_device *edev)
struct
scsi_device
*
sd
=
NULL
;
struct
device
*
shost_dev
,
*
sdev_dev
;
struct
pci_dev
*
pci_dev
;
struct
Scsi_Host
*
sh
;
rc
=
edd_dev_is_type
(
edev
,
"SCSI"
);
if
(
rc
)
...
...
@@ -712,7 +717,6 @@ edd_find_matching_scsi_device(struct edd_device *edev)
list_for_each
(
shost_node
,
&
pci_dev
->
dev
.
children
)
{
shost_dev
=
children_to_dev
(
shost_node
);
get_device
(
shost_dev
);
sh
=
to_scsi_host
(
shost_dev
);
list_for_each
(
sdev_node
,
&
shost_dev
->
children
)
{
sdev_dev
=
children_to_dev
(
sdev_node
);
...
...
@@ -771,6 +775,24 @@ edd_device_unregister(struct edd_device *edev)
kobject_unregister
(
&
edev
->
kobj
);
}
static
void
populate_dir
(
struct
edd_device
*
edev
)
{
struct
edd_attribute
*
attr
;
int
error
=
0
;
int
i
;
for
(
i
=
0
;
(
attr
=
edd_attrs
[
i
])
&&
!
error
;
i
++
)
{
if
(
!
attr
->
test
||
(
attr
->
test
&&
!
attr
->
test
(
edev
)))
error
=
sysfs_create_file
(
&
edev
->
kobj
,
&
attr
->
attr
);
}
if
(
!
error
)
{
edd_create_symlink_to_pcidev
(
edev
);
edd_create_symlink_to_scsidev
(
edev
);
}
}
static
int
edd_device_register
(
struct
edd_device
*
edev
,
int
i
)
{
...
...
@@ -780,15 +802,12 @@ edd_device_register(struct edd_device *edev, int i)
return
1
;
memset
(
edev
,
0
,
sizeof
(
*
edev
));
edd_dev_set_info
(
edev
,
&
edd
[
i
]);
kobject_init
(
&
edev
->
kobj
);
snprintf
(
edev
->
kobj
.
name
,
EDD_DEVICE_NAME_SIZE
,
"int13_dev%02x"
,
edd
[
i
].
device
);
edev
->
kobj
.
subsys
=
&
edd_subsys
;
error
=
kobject_register
(
&
edev
->
kobj
);
if
(
!
error
)
{
edd_create_symlink_to_pcidev
(
edev
);
edd_create_symlink_to_scsidev
(
edev
);
}
if
(
!
error
)
populate_dir
(
edev
);
return
error
;
}
...
...
drivers/block/acsi.c
View file @
d0229603
...
...
@@ -43,9 +43,6 @@
*
*/
#define MAJOR_NR ACSI_MAJOR
#define DEVICE_NAME "ACSI"
#include <linux/config.h>
#include <linux/module.h>
#include <linux/errno.h>
...
...
@@ -971,7 +968,7 @@ static void redo_acsi_request( void )
aip
=
disk
->
private_data
;
if
(
CURRENT
->
bh
)
{
if
(
!
CURRENT
->
bh
&&
!
buffer_locked
(
CURRENT
->
bh
))
panic
(
DEVICE_NAME
"
: block not locked"
);
panic
(
"ACSI
: block not locked"
);
}
block
=
CURRENT
->
sector
;
...
...
@@ -1627,8 +1624,8 @@ int acsi_init( void )
#endif
if
(
!
MACH_IS_ATARI
||
!
ATARIHW_PRESENT
(
ACSI
))
return
0
;
if
(
register_blkdev
(
MAJOR_N
R
,
"ad"
,
&
acsi_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for ACSI
\n
"
,
MAJOR_N
R
);
if
(
register_blkdev
(
ACSI_MAJO
R
,
"ad"
,
&
acsi_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for ACSI
\n
"
,
ACSI_MAJO
R
);
err
=
-
EBUSY
;
goto
out1
;
}
...
...
@@ -1731,7 +1728,7 @@ int acsi_init( void )
for
(
i
=
0
;
i
<
NDevices
;
++
i
)
{
struct
gendisk
*
disk
=
acsi_gendisk
[
i
];
sprintf
(
disk
->
disk_name
,
"ad%c"
,
'a'
+
i
);
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
ACSI_MAJO
R
;
disk
->
first_minor
=
i
<<
4
;
if
(
acsi_info
[
i
].
type
!=
HARDDISK
)
{
disk
->
minor_shift
=
0
;
...
...
@@ -1751,7 +1748,7 @@ int acsi_init( void )
blk_cleanup_queue
(
&
acsi_queue
);
atari_stram_free
(
acsi_buffer
);
out2:
unregister_blkdev
(
MAJOR_N
R
,
"ad"
);
unregister_blkdev
(
ACSI_MAJO
R
,
"ad"
);
out1:
return
err
;
}
...
...
@@ -1778,7 +1775,7 @@ void cleanup_module(void)
blk_cleanup_queue
(
&
acsi_queue
);
atari_stram_free
(
acsi_buffer
);
if
(
unregister_blkdev
(
MAJOR_N
R
,
"ad"
)
!=
0
)
if
(
unregister_blkdev
(
ACSI_MAJO
R
,
"ad"
)
!=
0
)
printk
(
KERN_ERR
"acsi: cleanup_module failed
\n
"
);
for
(
i
=
0
;
i
<
NDevices
;
i
++
)
{
...
...
drivers/block/acsi_slm.c
View file @
d0229603
...
...
@@ -95,8 +95,6 @@ not be guaranteed. There are several ways to assure this:
*/
#define SLM_CONT_CNT_REPROG
#define MAJOR_NR ACSI_MAJOR
#define CMDSET_TARG_LUN(cmd,targ,lun) \
do { \
cmd[0] = (cmd[0] & ~0xe0) | (targ)<<5; \
...
...
@@ -997,14 +995,14 @@ int slm_init( void )
{
int
i
;
if
(
register_chrdev
(
MAJOR_N
R
,
"slm"
,
&
slm_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for ACSI SLM
\n
"
,
MAJOR_N
R
);
if
(
register_chrdev
(
ACSI_MAJO
R
,
"slm"
,
&
slm_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for ACSI SLM
\n
"
,
ACSI_MAJO
R
);
return
-
EBUSY
;
}
if
(
!
(
SLMBuffer
=
atari_stram_alloc
(
SLM_BUFFER_SIZE
,
NULL
,
"SLM"
)))
{
printk
(
KERN_ERR
"Unable to get SLM ST-Ram buffer.
\n
"
);
unregister_chrdev
(
MAJOR_N
R
,
"slm"
);
unregister_chrdev
(
ACSI_MAJO
R
,
"slm"
);
return
-
ENOMEM
;
}
BufferP
=
SLMBuffer
;
...
...
@@ -1015,7 +1013,7 @@ int slm_init( void )
char
name
[
16
];
sprintf
(
name
,
"slm/%d"
,
i
);
devfs_register
(
NULL
,
name
,
DEVFS_FL_DEFAULT
,
MAJOR_N
R
,
i
,
S_IFCHR
|
S_IRUSR
|
S_IWUSR
,
ACSI_MAJO
R
,
i
,
S_IFCHR
|
S_IRUSR
|
S_IWUSR
,
&
slm_fops
,
NULL
);
}
return
0
;
...
...
@@ -1044,7 +1042,7 @@ void cleanup_module(void)
for
(
i
=
0
;
i
<
MAX_SLM
;
i
++
)
devfs_remove
(
"slm/%d"
,
i
);
devfs_remove
(
"slm"
);
if
(
unregister_chrdev
(
MAJOR_N
R
,
"slm"
)
!=
0
)
if
(
unregister_chrdev
(
ACSI_MAJO
R
,
"slm"
)
!=
0
)
printk
(
KERN_ERR
"acsi_slm: cleanup_module failed
\n
"
);
atari_stram_free
(
SLMBuffer
);
}
...
...
drivers/block/amiflop.c
View file @
d0229603
...
...
@@ -120,9 +120,6 @@ MODULE_PARM(fd_def_df0,"l");
MODULE_LICENSE
(
"GPL"
);
static
struct
request_queue
floppy_queue
;
#define MAJOR_NR FLOPPY_MAJOR
#define DEVICE_NAME "floppy"
#define QUEUE (&floppy_queue)
#define CURRENT elv_next_request(&floppy_queue)
...
...
@@ -1620,7 +1617,7 @@ static int floppy_open(struct inode *inode, struct file *filp)
restore_flags
(
flags
);
if
(
old_dev
!=
system
)
invalidate_buffers
(
mk_kdev
(
MAJOR_N
R
,
drive
+
(
system
<<
2
)));
invalidate_buffers
(
mk_kdev
(
FLOPPY_MAJO
R
,
drive
+
(
system
<<
2
)));
unit
[
drive
].
dtype
=&
data_types
[
system
];
unit
[
drive
].
blocks
=
unit
[
drive
].
type
->
heads
*
unit
[
drive
].
type
->
tracks
*
...
...
@@ -1727,7 +1724,7 @@ static int __init fd_probe_drives(void)
nomem
=
1
;
}
printk
(
"fd%d "
,
drive
);
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
FLOPPY_MAJO
R
;
disk
->
first_minor
=
drive
;
disk
->
fops
=
&
floppy_fops
;
sprintf
(
disk
->
disk_name
,
"fd%d"
,
drive
);
...
...
@@ -1762,8 +1759,8 @@ int __init amiga_floppy_init(void)
if
(
!
AMIGAHW_PRESENT
(
AMI_FLOPPY
))
return
-
ENXIO
;
if
(
register_blkdev
(
MAJOR_N
R
,
"fd"
,
&
floppy_fops
))
{
printk
(
"fd: Unable to get major %d for floppy
\n
"
,
MAJOR_N
R
);
if
(
register_blkdev
(
FLOPPY_MAJO
R
,
"fd"
,
&
floppy_fops
))
{
printk
(
"fd: Unable to get major %d for floppy
\n
"
,
FLOPPY_MAJO
R
);
return
-
EBUSY
;
}
/*
...
...
@@ -1772,21 +1769,21 @@ int __init amiga_floppy_init(void)
*/
if
(
!
request_mem_region
(
CUSTOM_PHYSADDR
+
0x20
,
8
,
"amiflop [Paula]"
))
{
printk
(
"fd: cannot get floppy registers
\n
"
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
return
-
EBUSY
;
}
if
((
raw_buf
=
(
char
*
)
amiga_chip_alloc
(
RAW_BUF_SIZE
,
"Floppy"
))
==
NULL
)
{
printk
(
"fd: cannot get chip mem buffer
\n
"
);
release_mem_region
(
CUSTOM_PHYSADDR
+
0x20
,
8
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
return
-
ENOMEM
;
}
if
(
request_irq
(
IRQ_AMIGA_DSKBLK
,
fd_block_done
,
0
,
"floppy_dma"
,
NULL
))
{
printk
(
"fd: cannot get irq for dma
\n
"
);
amiga_chip_free
(
raw_buf
);
release_mem_region
(
CUSTOM_PHYSADDR
+
0x20
,
8
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
return
-
EBUSY
;
}
if
(
request_irq
(
IRQ_AMIGA_CIAA_TB
,
ms_isr
,
0
,
"floppy_timer"
,
NULL
))
{
...
...
@@ -1794,7 +1791,7 @@ int __init amiga_floppy_init(void)
free_irq
(
IRQ_AMIGA_DSKBLK
,
NULL
);
amiga_chip_free
(
raw_buf
);
release_mem_region
(
CUSTOM_PHYSADDR
+
0x20
,
8
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
return
-
EBUSY
;
}
if
(
fd_probe_drives
()
<
1
)
{
/* No usable drives */
...
...
@@ -1802,10 +1799,10 @@ int __init amiga_floppy_init(void)
free_irq
(
IRQ_AMIGA_DSKBLK
,
NULL
);
amiga_chip_free
(
raw_buf
);
release_mem_region
(
CUSTOM_PHYSADDR
+
0x20
,
8
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
return
-
ENXIO
;
}
blk_register_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
,
THIS_MODULE
,
blk_register_region
(
MKDEV
(
FLOPPY_MAJO
R
,
0
),
256
,
THIS_MODULE
,
floppy_find
,
NULL
,
NULL
);
/* initialize variables */
...
...
@@ -1866,13 +1863,13 @@ void cleanup_module(void)
kfree
(
unit
[
i
].
trackbuf
);
}
}
blk_unregister_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
);
blk_unregister_region
(
MKDEV
(
FLOPPY_MAJO
R
,
0
),
256
);
free_irq
(
IRQ_AMIGA_CIAA_TB
,
NULL
);
free_irq
(
IRQ_AMIGA_DSKBLK
,
NULL
);
custom
.
dmacon
=
DMAF_DISK
;
/* disable DMA */
amiga_chip_free
(
raw_buf
);
blk_cleanup_queue
(
&
floppy_queue
);
release_mem_region
(
CUSTOM_PHYSADDR
+
0x20
,
8
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
}
#endif
drivers/block/ataflop.c
View file @
d0229603
...
...
@@ -100,8 +100,6 @@
static
struct
request_queue
floppy_queue
;
#define MAJOR_NR FLOPPY_MAJOR
#define DEVICE_NAME "floppy"
#define QUEUE (&floppy_queue)
#define CURRENT elv_next_request(&floppy_queue)
...
...
@@ -1936,8 +1934,8 @@ int __init atari_floppy_init (void)
/* Hades doesn't have Atari-compatible floppy */
return
-
ENXIO
;
if
(
register_blkdev
(
MAJOR_N
R
,
"fd"
,
&
floppy_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for floppy
\n
"
,
MAJOR_N
R
);
if
(
register_blkdev
(
FLOPPY_MAJO
R
,
"fd"
,
&
floppy_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for floppy
\n
"
,
FLOPPY_MAJO
R
);
return
-
EBUSY
;
}
...
...
@@ -1973,7 +1971,7 @@ int __init atari_floppy_init (void)
for
(
i
=
0
;
i
<
FD_MAX_UNITS
;
i
++
)
{
unit
[
i
].
track
=
-
1
;
unit
[
i
].
flags
=
0
;
unit
[
i
].
disk
->
major
=
MAJOR_N
R
;
unit
[
i
].
disk
->
major
=
FLOPPY_MAJO
R
;
unit
[
i
].
disk
->
first_minor
=
i
;
sprintf
(
unit
[
i
].
disk
->
disk_name
,
"fd%d"
,
i
);
unit
[
i
].
disk
->
fops
=
&
floppy_fops
;
...
...
@@ -1983,7 +1981,7 @@ int __init atari_floppy_init (void)
add_disk
(
unit
[
i
].
disk
);
}
blk_register_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
,
THIS_MODULE
,
blk_register_region
(
MKDEV
(
FLOPPY_MAJO
R
,
0
),
256
,
THIS_MODULE
,
floppy_find
,
NULL
,
NULL
);
printk
(
KERN_INFO
"Atari floppy driver: max. %cD, %strack buffering
\n
"
,
...
...
@@ -1995,7 +1993,7 @@ int __init atari_floppy_init (void)
Enomem:
while
(
i
--
)
put_disk
(
unit
[
i
].
disk
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
return
-
ENOMEM
;
}
...
...
@@ -2042,12 +2040,12 @@ int init_module (void)
void
cleanup_module
(
void
)
{
int
i
;
blk_unregister_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
);
blk_unregister_region
(
MKDEV
(
FLOPPY_MAJO
R
,
0
),
256
);
for
(
i
=
0
;
i
<
FD_MAX_UNITS
;
i
++
)
{
del_gendisk
(
unit
[
i
].
disk
);
put_disk
(
unit
[
i
].
disk
);
}
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
blk_cleanup_queue
(
&
floppy_queue
);
del_timer_sync
(
&
fd_timer
);
...
...
drivers/block/cciss.c
View file @
d0229603
...
...
@@ -338,7 +338,7 @@ static void cmd_free(ctlr_info_t *h, CommandList_struct *c, int got_from_pool)
*/
static
int
cciss_open
(
struct
inode
*
inode
,
struct
file
*
filep
)
{
int
ctlr
=
major
(
inode
->
i_rdev
)
-
MAJOR_N
R
;
int
ctlr
=
major
(
inode
->
i_rdev
)
-
COMPAQ_CISS_MAJO
R
;
int
dsk
=
minor
(
inode
->
i_rdev
)
>>
NWD_SHIFT
;
#ifdef CCISS_DEBUG
...
...
@@ -368,7 +368,7 @@ static int cciss_open(struct inode *inode, struct file *filep)
*/
static
int
cciss_release
(
struct
inode
*
inode
,
struct
file
*
filep
)
{
int
ctlr
=
major
(
inode
->
i_rdev
)
-
MAJOR_N
R
;
int
ctlr
=
major
(
inode
->
i_rdev
)
-
COMPAQ_CISS_MAJO
R
;
int
dsk
=
minor
(
inode
->
i_rdev
)
>>
NWD_SHIFT
;
#ifdef CCISS_DEBUG
...
...
@@ -388,7 +388,7 @@ static int cciss_release(struct inode *inode, struct file *filep)
static
int
cciss_ioctl
(
struct
inode
*
inode
,
struct
file
*
filep
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
int
ctlr
=
major
(
inode
->
i_rdev
)
-
MAJOR_N
R
;
int
ctlr
=
major
(
inode
->
i_rdev
)
-
COMPAQ_CISS_MAJO
R
;
int
dsk
=
minor
(
inode
->
i_rdev
)
>>
NWD_SHIFT
;
#ifdef CCISS_DEBUG
...
...
@@ -723,7 +723,7 @@ static int revalidate_allvol(kdev_t dev)
int
ctlr
,
i
;
unsigned
long
flags
;
ctlr
=
major
(
dev
)
-
MAJOR_N
R
;
ctlr
=
major
(
dev
)
-
COMPAQ_CISS_MAJO
R
;
if
(
minor
(
dev
)
!=
0
)
return
-
ENXIO
;
...
...
@@ -2344,10 +2344,10 @@ static int __init cciss_init_one(struct pci_dev *pdev,
return
-
ENODEV
;
}
if
(
register_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
,
&
cciss_fops
))
if
(
register_blkdev
(
COMPAQ_CISS_MAJO
R
+
i
,
hba
[
i
]
->
devname
,
&
cciss_fops
))
{
printk
(
KERN_ERR
"cciss: Unable to get major number "
"%d for %s
\n
"
,
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
);
"%d for %s
\n
"
,
COMPAQ_CISS_MAJO
R
+
i
,
hba
[
i
]
->
devname
);
release_io_mem
(
hba
[
i
]);
free_hba
(
i
);
return
(
-
1
);
...
...
@@ -2360,7 +2360,7 @@ static int __init cciss_init_one(struct pci_dev *pdev,
{
printk
(
KERN_ERR
"ciss: Unable to get irq %d for %s
\n
"
,
hba
[
i
]
->
intr
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
COMPAQ_CISS_MAJO
R
+
i
,
hba
[
i
]
->
devname
);
release_io_mem
(
hba
[
i
]);
free_hba
(
i
);
return
(
-
1
);
...
...
@@ -2388,7 +2388,7 @@ static int __init cciss_init_one(struct pci_dev *pdev,
hba
[
i
]
->
errinfo_pool
,
hba
[
i
]
->
errinfo_pool_dhandle
);
free_irq
(
hba
[
i
]
->
intr
,
hba
[
i
]);
unregister_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
COMPAQ_CISS_MAJO
R
+
i
,
hba
[
i
]
->
devname
);
release_io_mem
(
hba
[
i
]);
free_hba
(
i
);
printk
(
KERN_ERR
"cciss: out of memory"
);
...
...
@@ -2435,7 +2435,7 @@ static int __init cciss_init_one(struct pci_dev *pdev,
struct
gendisk
*
disk
=
hba
[
i
]
->
gendisk
[
j
];
sprintf
(
disk
->
disk_name
,
"cciss/c%dd%d"
,
i
,
j
);
disk
->
major
=
MAJOR_N
R
+
i
;
disk
->
major
=
COMPAQ_CISS_MAJO
R
+
i
;
disk
->
first_minor
=
j
<<
NWD_SHIFT
;
disk
->
fops
=
&
cciss_fops
;
disk
->
queue
=
&
hba
[
i
]
->
queue
;
...
...
@@ -2486,7 +2486,7 @@ static void __devexit cciss_remove_one (struct pci_dev *pdev)
pci_set_drvdata
(
pdev
,
NULL
);
iounmap
((
void
*
)
hba
[
i
]
->
vaddr
);
cciss_unregister_scsi
(
i
);
/* unhook from SCSI subsystem */
unregister_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
COMPAQ_CISS_MAJO
R
+
i
,
hba
[
i
]
->
devname
);
remove_proc_entry
(
hba
[
i
]
->
devname
,
proc_cciss
);
/* remove it from the disk list */
...
...
drivers/block/cciss.h
View file @
d0229603
...
...
@@ -13,8 +13,6 @@
#define IO_OK 0
#define IO_ERROR 1
#define MAJOR_NR COMPAQ_CISS_MAJOR
struct
ctlr_info
;
typedef
struct
ctlr_info
ctlr_info_t
;
...
...
drivers/block/cpqarray.c
View file @
d0229603
...
...
@@ -38,6 +38,9 @@
#include <linux/init.h>
#include <linux/hdreg.h>
#include <linux/spinlock.h>
#include <linux/blk.h>
#include <linux/blkdev.h>
#include <linux/genhd.h>
#include <asm/uaccess.h>
#include <asm/io.h>
...
...
@@ -53,14 +56,6 @@ MODULE_AUTHOR("Compaq Computer Corporation");
MODULE_DESCRIPTION
(
"Driver for Compaq Smart2 Array Controllers"
);
MODULE_LICENSE
(
"GPL"
);
#define MAJOR_NR COMPAQ_SMART2_MAJOR
#define LOCAL_END_REQUEST
#define DEVICE_NAME "ida"
#define DEVICE_NR(device) (minor(device) >> 4)
#include <linux/blk.h>
#include <linux/blkdev.h>
#include <linux/genhd.h>
#include "cpqarray.h"
#include "ida_cmd.h"
#include "smart1,2.h"
...
...
@@ -295,7 +290,7 @@ static void __exit cpqarray_exit(void)
}
free_irq
(
hba
[
i
]
->
intr
,
hba
[
i
]);
iounmap
(
hba
[
i
]
->
vaddr
);
unregister_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
COMPAQ_SMART2_MAJO
R
+
i
,
hba
[
i
]
->
devname
);
del_timer
(
&
hba
[
i
]
->
timer
);
blk_cleanup_queue
(
&
hba
[
i
]
->
queue
);
remove_proc_entry
(
hba
[
i
]
->
devname
,
proc_array
);
...
...
@@ -344,9 +339,9 @@ static int __init cpqarray_init(void)
for
(
i
=
0
;
i
<
nr_ctlr
;
i
++
)
{
/* If this successful it should insure that we are the only */
/* instance of the driver */
if
(
register_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
,
&
ida_fops
))
{
if
(
register_blkdev
(
COMPAQ_SMART2_MAJO
R
+
i
,
hba
[
i
]
->
devname
,
&
ida_fops
))
{
printk
(
KERN_ERR
"cpqarray: Unable to get major number %d for ida
\n
"
,
MAJOR_N
R
+
i
);
COMPAQ_SMART2_MAJO
R
+
i
);
continue
;
}
hba
[
i
]
->
access
.
set_intr_mask
(
hba
[
i
],
0
);
...
...
@@ -355,7 +350,7 @@ static int __init cpqarray_init(void)
printk
(
KERN_ERR
"cpqarray: Unable to get irq %d for %s
\n
"
,
hba
[
i
]
->
intr
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
COMPAQ_SMART2_MAJO
R
+
i
,
hba
[
i
]
->
devname
);
continue
;
}
num_cntlrs_reg
++
;
...
...
@@ -405,7 +400,7 @@ static int __init cpqarray_init(void)
struct
gendisk
*
disk
=
ida_gendisk
[
i
][
j
];
drv_info_t
*
drv
=
&
hba
[
i
]
->
drv
[
j
];
sprintf
(
disk
->
disk_name
,
"ida/c%dd%d"
,
i
,
j
);
disk
->
major
=
MAJOR_N
R
+
i
;
disk
->
major
=
COMPAQ_SMART2_MAJO
R
+
i
;
disk
->
first_minor
=
j
<<
NWD_SHIFT
;
disk
->
flags
=
GENHD_FL_DEVFS
;
disk
->
fops
=
&
ida_fops
;
...
...
@@ -433,7 +428,7 @@ static int __init cpqarray_init(void)
ida_gendisk
[
i
][
j
]
=
NULL
;
}
free_irq
(
hba
[
i
]
->
intr
,
hba
[
i
]);
unregister_blkdev
(
MAJOR_N
R
+
i
,
hba
[
i
]
->
devname
);
unregister_blkdev
(
COMPAQ_SMART2_MAJO
R
+
i
,
hba
[
i
]
->
devname
);
num_cntlrs_reg
--
;
printk
(
KERN_ERR
"cpqarray: out of memory"
);
...
...
@@ -712,7 +707,7 @@ DBGINFO(
*/
static
int
ida_open
(
struct
inode
*
inode
,
struct
file
*
filep
)
{
int
ctlr
=
major
(
inode
->
i_rdev
)
-
MAJOR_N
R
;
int
ctlr
=
major
(
inode
->
i_rdev
)
-
COMPAQ_SMART2_MAJO
R
;
int
dsk
=
minor
(
inode
->
i_rdev
)
>>
NWD_SHIFT
;
DBGINFO
(
printk
(
"ida_open %x (%x:%x)
\n
"
,
inode
->
i_rdev
,
ctlr
,
dsk
)
);
...
...
@@ -741,7 +736,7 @@ static int ida_open(struct inode *inode, struct file *filep)
*/
static
int
ida_release
(
struct
inode
*
inode
,
struct
file
*
filep
)
{
int
ctlr
=
major
(
inode
->
i_rdev
)
-
MAJOR_N
R
;
int
ctlr
=
major
(
inode
->
i_rdev
)
-
COMPAQ_SMART2_MAJO
R
;
hba
[
ctlr
]
->
usage_count
--
;
return
0
;
}
...
...
@@ -1022,7 +1017,7 @@ static void ida_timer(unsigned long tdata)
*/
static
int
ida_ioctl
(
struct
inode
*
inode
,
struct
file
*
filep
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
int
ctlr
=
major
(
inode
->
i_rdev
)
-
MAJOR_N
R
;
int
ctlr
=
major
(
inode
->
i_rdev
)
-
COMPAQ_SMART2_MAJO
R
;
int
dsk
=
minor
(
inode
->
i_rdev
)
>>
NWD_SHIFT
;
int
error
;
int
diskinfo
[
4
];
...
...
@@ -1402,7 +1397,7 @@ static int revalidate_allvol(kdev_t dev)
if
(
minor
(
dev
)
!=
0
)
return
-
ENXIO
;
ctlr
=
major
(
dev
)
-
MAJOR_N
R
;
ctlr
=
major
(
dev
)
-
COMPAQ_SMART2_MAJO
R
;
spin_lock_irqsave
(
IDA_LOCK
(
ctlr
),
flags
);
if
(
hba
[
ctlr
]
->
usage_count
>
1
)
{
...
...
drivers/block/floppy.c
View file @
d0229603
...
...
@@ -240,9 +240,8 @@ static int allowed_drive_mask = 0x33;
static
int
irqdma_allocated
;
#define LOCAL_END_REQUEST
#define MAJOR_NR FLOPPY_MAJOR
#define DEVICE_NAME "floppy"
#define DEVICE_NR(device) ( (minor(device) & 3) | ((minor(device) & 0x80 ) >> 5 ))
#include <linux/blk.h>
#include <linux/blkpg.h>
#include <linux/cdrom.h>
/* for the compatibility eject ioctl */
...
...
@@ -3969,7 +3968,7 @@ static void __init register_devfs_entries (int drive)
char
name
[
16
];
sprintf
(
name
,
"floppy/%d%s"
,
drive
,
table
[
table_sup
[
UDP
->
cmos
][
i
]]);
devfs_register
(
NULL
,
name
,
DEVFS_FL_DEFAULT
,
MAJOR_N
R
,
devfs_register
(
NULL
,
name
,
DEVFS_FL_DEFAULT
,
FLOPPY_MAJO
R
,
base_minor
+
(
table_sup
[
UDP
->
cmos
][
i
]
<<
2
),
S_IFBLK
|
S_IRUSR
|
S_IWUSR
|
S_IRGRP
|
S_IWGRP
,
&
floppy_fops
,
NULL
);
...
...
@@ -4229,20 +4228,20 @@ int __init floppy_init(void)
}
devfs_mk_dir
(
NULL
,
"floppy"
,
NULL
);
if
(
register_blkdev
(
MAJOR_N
R
,
"fd"
,
&
floppy_fops
))
{
printk
(
"Unable to get major %d for floppy
\n
"
,
MAJOR_N
R
);
if
(
register_blkdev
(
FLOPPY_MAJO
R
,
"fd"
,
&
floppy_fops
))
{
printk
(
"Unable to get major %d for floppy
\n
"
,
FLOPPY_MAJO
R
);
err
=
-
EBUSY
;
goto
out
;
}
for
(
i
=
0
;
i
<
N_DRIVE
;
i
++
)
{
disks
[
i
]
->
major
=
MAJOR_N
R
;
disks
[
i
]
->
major
=
FLOPPY_MAJO
R
;
disks
[
i
]
->
first_minor
=
TOMINOR
(
i
);
disks
[
i
]
->
fops
=
&
floppy_fops
;
sprintf
(
disks
[
i
]
->
disk_name
,
"fd%d"
,
i
);
}
blk_register_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
,
THIS_MODULE
,
blk_register_region
(
MKDEV
(
FLOPPY_MAJO
R
,
0
),
256
,
THIS_MODULE
,
floppy_find
,
NULL
,
NULL
);
for
(
i
=
0
;
i
<
256
;
i
++
)
...
...
@@ -4366,8 +4365,8 @@ int __init floppy_init(void)
out1:
del_timer
(
&
fd_timeout
);
out2:
blk_unregister_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
blk_unregister_region
(
MKDEV
(
FLOPPY_MAJO
R
,
0
),
256
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
blk_cleanup_queue
(
&
floppy_queue
);
out:
for
(
i
=
0
;
i
<
N_DRIVE
;
i
++
)
...
...
@@ -4572,8 +4571,8 @@ void cleanup_module(void)
int
drive
;
platform_device_unregister
(
&
floppy_device
);
blk_unregister_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
);
unregister_blkdev
(
MAJOR_N
R
,
"fd"
);
blk_unregister_region
(
MKDEV
(
FLOPPY_MAJO
R
,
0
),
256
);
unregister_blkdev
(
FLOPPY_MAJO
R
,
"fd"
);
for
(
drive
=
0
;
drive
<
N_DRIVE
;
drive
++
)
{
if
((
allowed_drive_mask
&
(
1
<<
drive
))
&&
fdc_state
[
FDC
(
drive
)].
version
!=
FDC_NONE
)
{
...
...
drivers/block/loop.c
View file @
d0229603
...
...
@@ -79,8 +79,6 @@
#include <asm/uaccess.h>
#define MAJOR_NR LOOP_MAJOR
static
int
max_loop
=
8
;
static
struct
loop_device
*
loop_dev
;
static
struct
gendisk
**
disks
;
...
...
@@ -1015,9 +1013,9 @@ int __init loop_init(void)
max_loop
=
8
;
}
if
(
register_blkdev
(
MAJOR_N
R
,
"loop"
,
&
lo_fops
))
{
if
(
register_blkdev
(
LOOP_MAJO
R
,
"loop"
,
&
lo_fops
))
{
printk
(
KERN_WARNING
"Unable to get major number %d for loop"
" device
\n
"
,
MAJOR_N
R
);
" device
\n
"
,
LOOP_MAJO
R
);
return
-
EIO
;
}
...
...
@@ -1082,7 +1080,7 @@ void loop_exit(void)
devfs_remove
(
"loop/%d"
,
i
);
}
devfs_remove
(
"loop"
);
if
(
unregister_blkdev
(
MAJOR_N
R
,
"loop"
))
if
(
unregister_blkdev
(
LOOP_MAJO
R
,
"loop"
))
printk
(
KERN_WARNING
"loop: cannot unregister blkdev
\n
"
);
kfree
(
disks
);
...
...
drivers/block/nbd.c
View file @
d0229603
...
...
@@ -53,7 +53,6 @@
#include <asm/uaccess.h>
#include <asm/types.h>
#define MAJOR_NR NBD_MAJOR
#include <linux/nbd.h>
#define LO_MAGIC 0x68797548
...
...
@@ -69,6 +68,29 @@ static spinlock_t nbd_lock = SPIN_LOCK_UNLOCKED;
static
int
requests_in
;
static
int
requests_out
;
static
void
nbd_end_request
(
struct
request
*
req
)
{
int
uptodate
=
(
req
->
errors
==
0
)
?
1
:
0
;
request_queue_t
*
q
=
req
->
q
;
struct
bio
*
bio
;
unsigned
nsect
;
unsigned
long
flags
;
#ifdef PARANOIA
requests_out
++
;
#endif
spin_lock_irqsave
(
q
->
queue_lock
,
flags
);
while
((
bio
=
req
->
bio
)
!=
NULL
)
{
nsect
=
bio_sectors
(
bio
);
blk_finished_io
(
nsect
);
req
->
bio
=
bio
->
bi_next
;
bio
->
bi_next
=
NULL
;
bio_endio
(
bio
,
nsect
<<
9
,
uptodate
?
0
:
-
EIO
);
}
blk_put_request
(
req
);
spin_unlock_irqrestore
(
q
->
queue_lock
,
flags
);
}
static
int
nbd_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
struct
nbd_device
*
lo
=
inode
->
i_bdev
->
bd_disk
->
private_data
;
...
...
@@ -538,14 +560,14 @@ static int __init nbd_init(void)
nbd_dev
[
i
].
disk
=
disk
;
}
if
(
register_blkdev
(
MAJOR_N
R
,
"nbd"
,
&
nbd_fops
))
{
if
(
register_blkdev
(
NBD_MAJO
R
,
"nbd"
,
&
nbd_fops
))
{
printk
(
"Unable to get major number %d for NBD
\n
"
,
MAJOR_N
R
);
NBD_MAJO
R
);
err
=
-
EIO
;
goto
out
;
}
#ifdef MODULE
printk
(
"nbd: registered device at major %d
\n
"
,
MAJOR_N
R
);
printk
(
"nbd: registered device at major %d
\n
"
,
NBD_MAJO
R
);
#endif
blk_init_queue
(
&
nbd_queue
,
do_nbd_request
,
&
nbd_lock
);
devfs_mk_dir
(
NULL
,
"nbd"
,
NULL
);
...
...
@@ -562,7 +584,7 @@ static int __init nbd_init(void)
nbd_dev
[
i
].
blksize
=
1024
;
nbd_dev
[
i
].
blksize_bits
=
10
;
nbd_dev
[
i
].
bytesize
=
((
u64
)
0x7ffffc00
)
<<
10
;
/* 2TB */
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
NBD_MAJO
R
;
disk
->
first_minor
=
i
;
disk
->
fops
=
&
nbd_fops
;
disk
->
private_data
=
&
nbd_dev
[
i
];
...
...
@@ -593,7 +615,7 @@ static void __exit nbd_cleanup(void)
}
devfs_remove
(
"nbd"
);
blk_cleanup_queue
(
&
nbd_queue
);
unregister_blkdev
(
MAJOR_N
R
,
"nbd"
);
unregister_blkdev
(
NBD_MAJO
R
,
"nbd"
);
}
module_init
(
nbd_init
);
...
...
drivers/block/paride/pcd.c
View file @
d0229603
...
...
@@ -137,7 +137,7 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_SLV, D_DLY};
#include <linux/delay.h>
#include <linux/cdrom.h>
#include <linux/spinlock.h>
#include <linux/blk.h>
#include <asm/uaccess.h>
static
spinlock_t
pcd_lock
;
...
...
@@ -172,13 +172,6 @@ MODULE_PARM(drive2, "1-6i");
MODULE_PARM
(
drive3
,
"1-6i"
);
#include "paride.h"
/* set up defines for blk.h, why don't all drivers do it this way ? */
#define MAJOR_NR major
#include <linux/blk.h>
#include "pseudo.h"
#define PCD_RETRIES 5
...
...
@@ -949,8 +942,8 @@ static int __init pcd_init(void)
/* get the atapi capabilities page */
pcd_probe_capabilities
();
if
(
register_blkdev
(
MAJOR_NR
,
name
,
&
pcd_bdops
))
{
printk
(
"pcd: unable to get major number %d
\n
"
,
MAJOR_NR
);
if
(
register_blkdev
(
major
,
name
,
&
pcd_bdops
))
{
printk
(
"pcd: unable to get major number %d
\n
"
,
major
);
for
(
unit
=
0
,
cd
=
pcd
;
unit
<
PCD_UNITS
;
unit
++
,
cd
++
)
put_disk
(
cd
->
disk
);
return
-
1
;
...
...
@@ -984,7 +977,7 @@ static void __exit pcd_exit(void)
put_disk
(
cd
->
disk
);
}
blk_cleanup_queue
(
&
pcd_queue
);
unregister_blkdev
(
MAJOR_NR
,
name
);
unregister_blkdev
(
major
,
name
);
}
MODULE_LICENSE
(
"GPL"
);
...
...
drivers/block/paride/pd.c
View file @
d0229603
...
...
@@ -150,7 +150,8 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_GEO, D_SBY, D_DLY, D_SLV};
#include <linux/delay.h>
#include <linux/hdreg.h>
#include <linux/cdrom.h>
/* for the eject ioctl */
#include <linux/blk.h>
#include <linux/blkpg.h>
#include <asm/uaccess.h>
static
spinlock_t
pd_lock
=
SPIN_LOCK_UNLOCKED
;
...
...
@@ -187,12 +188,6 @@ MODULE_PARM(drive2, "1-8i");
MODULE_PARM
(
drive3
,
"1-8i"
);
#include "paride.h"
#define MAJOR_NR major
#include <linux/blk.h>
#include <linux/blkpg.h>
#include "pseudo.h"
#define PD_BITS 4
...
...
@@ -895,7 +890,7 @@ static int __init pd_init(void)
{
if
(
disable
)
return
-
1
;
if
(
register_blkdev
(
MAJOR_NR
,
name
,
&
pd_fops
))
{
if
(
register_blkdev
(
major
,
name
,
&
pd_fops
))
{
printk
(
"%s: unable to get major number %d
\n
"
,
name
,
major
);
return
-
1
;
}
...
...
@@ -906,7 +901,7 @@ static int __init pd_init(void)
name
,
name
,
PD_VERSION
,
major
,
cluster
,
nice
);
pd_init_units
();
if
(
!
pd_detect
())
{
unregister_blkdev
(
MAJOR_NR
,
name
);
unregister_blkdev
(
major
,
name
);
return
-
1
;
}
return
0
;
...
...
@@ -916,7 +911,7 @@ static void __exit pd_exit(void)
{
struct
pd_unit
*
disk
;
int
unit
;
unregister_blkdev
(
MAJOR_NR
,
name
);
unregister_blkdev
(
major
,
name
);
for
(
unit
=
0
,
disk
=
pd
;
unit
<
PD_UNITS
;
unit
++
,
disk
++
)
{
if
(
disk
->
present
)
{
struct
gendisk
*
p
=
disk
->
gd
;
...
...
drivers/block/paride/pf.c
View file @
d0229603
...
...
@@ -150,7 +150,8 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_SLV, D_LUN, D_DLY};
#include <linux/hdreg.h>
#include <linux/cdrom.h>
#include <linux/spinlock.h>
#include <linux/blk.h>
#include <linux/blkpg.h>
#include <asm/uaccess.h>
static
spinlock_t
pf_spin_lock
;
...
...
@@ -187,14 +188,6 @@ MODULE_PARM(drive2, "1-7i");
MODULE_PARM
(
drive3
,
"1-7i"
);
#include "paride.h"
/* set up defines for blk.h, why don't all drivers do it this way ? */
#define MAJOR_NR major
#include <linux/blk.h>
#include <linux/blkpg.h>
#include "pseudo.h"
/* constants for faking geometry numbers */
...
...
@@ -316,7 +309,7 @@ void pf_init_units(void)
pf
->
drive
=
(
*
drives
[
unit
])[
D_SLV
];
pf
->
lun
=
(
*
drives
[
unit
])[
D_LUN
];
snprintf
(
pf
->
name
,
PF_NAMELEN
,
"%s%d"
,
name
,
unit
);
disk
->
major
=
MAJOR_NR
;
disk
->
major
=
major
;
disk
->
first_minor
=
unit
;
strcpy
(
disk
->
disk_name
,
pf
->
name
);
disk
->
fops
=
&
pf_fops
;
...
...
@@ -964,7 +957,7 @@ static int __init pf_init(void)
return
-
1
;
pf_busy
=
0
;
if
(
register_blkdev
(
MAJOR_NR
,
name
,
&
pf_fops
))
{
if
(
register_blkdev
(
major
,
name
,
&
pf_fops
))
{
printk
(
"pf_init: unable to get major number %d
\n
"
,
major
);
for
(
pf
=
units
,
unit
=
0
;
unit
<
PF_UNITS
;
pf
++
,
unit
++
)
put_disk
(
pf
->
disk
);
...
...
@@ -989,7 +982,7 @@ static void __exit pf_exit(void)
{
struct
pf_unit
*
pf
;
int
unit
;
unregister_blkdev
(
MAJOR_NR
,
name
);
unregister_blkdev
(
major
,
name
);
for
(
pf
=
units
,
unit
=
0
;
unit
<
PF_UNITS
;
pf
++
,
unit
++
)
{
if
(
!
pf
->
present
)
continue
;
...
...
drivers/block/ps2esdi.c
View file @
d0229603
...
...
@@ -27,15 +27,10 @@
+ reset after read/write error
*/
#include <linux/config.h>
#include <linux/major.h>
#ifdef CONFIG_BLK_DEV_PS2
#define MAJOR_NR PS2ESDI_MAJOR
#define DEVICE_NAME "PS/2 ESDI"
#define DEVICE_NR(device) (minor(device) >> 6)
#include <linux/config.h>
#include <linux/major.h>
#include <linux/errno.h>
#include <linux/wait.h>
#include <linux/interrupt.h>
...
...
@@ -153,8 +148,9 @@ int __init ps2esdi_init(void)
/* register the device - pass the name, major number and operations
vector . */
if
(
register_blkdev
(
MAJOR_NR
,
"ed"
,
&
ps2esdi_fops
))
{
printk
(
"%s: Unable to get major number %d
\n
"
,
DEVICE_NAME
,
MAJOR_NR
);
if
(
register_blkdev
(
PS2ESDI_MAJOR
,
"ed"
,
&
ps2esdi_fops
))
{
printk
(
"%s: Unable to get major number %d
\n
"
,
DEVICE_NAME
,
PS2ESDI_MAJOR
);
return
-
1
;
}
/* set up some global information - indicating device specific info */
...
...
@@ -165,7 +161,7 @@ int __init ps2esdi_init(void)
if
(
error
)
{
printk
(
KERN_WARNING
"PS2ESDI: error initialising"
" device, releasing resources
\n
"
);
unregister_blkdev
(
MAJOR_N
R
,
"ed"
);
unregister_blkdev
(
PS2ESDI_MAJO
R
,
"ed"
);
blk_cleanup_queue
(
&
ps2esdi_queue
);
return
error
;
}
...
...
@@ -214,7 +210,7 @@ cleanup_module(void) {
release_region
(
io_base
,
4
);
free_dma
(
dma_arb_level
);
free_irq
(
PS2ESDI_IRQ
,
&
ps2esdi_gendisk
);
unregister_blkdev
(
MAJOR_N
R
,
"ed"
);
unregister_blkdev
(
PS2ESDI_MAJO
R
,
"ed"
);
blk_cleanup_queue
(
&
ps2esdi_queue
);
for
(
i
=
0
;
i
<
ps2esdi_drives
;
i
++
)
{
del_gendisk
(
ps2esdi_gendisk
[
i
]);
...
...
@@ -421,7 +417,7 @@ static int __init ps2esdi_geninit(void)
struct
gendisk
*
disk
=
alloc_disk
(
64
);
if
(
!
disk
)
goto
err_out4
;
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
PS2ESDI_MAJO
R
;
disk
->
first_minor
=
i
<<
6
;
sprintf
(
disk
->
disk_name
,
"ed%c"
,
'a'
+
i
);
disk
->
fops
=
&
ps2esdi_fops
;
...
...
@@ -1090,5 +1086,3 @@ static void ps2esdi_reset_timer(unsigned long unused)
}
wake_up
(
&
ps2esdi_int
);
}
#endif
drivers/block/rd.c
View file @
d0229603
...
...
@@ -52,17 +52,9 @@
#include <linux/devfs_fs_kernel.h>
#include <linux/buffer_head.h>
/* for invalidate_bdev() */
#include <linux/backing-dev.h>
#include <asm/uaccess.h>
/*
* 35 has been officially registered as the RAMDISK major number, but
* so is the original MAJOR number of 1. We're using 1 in
* include/linux/major.h for now
*/
#define MAJOR_NR RAMDISK_MAJOR
#define DEVICE_NR(device) (minor(device))
#include <linux/blk.h>
#include <linux/blkpg.h>
#include <asm/uaccess.h>
/* The RAM disk size is now a parameter */
#define NUM_RAMDISKS 16
/* This cannot be overridden (yet) */
...
...
@@ -386,7 +378,7 @@ static void __exit rd_cleanup (void)
devfs_remove
(
"rd/initrd"
);
#endif
devfs_remove
(
"rd"
);
unregister_blkdev
(
MAJOR_N
R
,
"ramdisk"
);
unregister_blkdev
(
RAMDISK_MAJO
R
,
"ramdisk"
);
}
static
struct
request_queue
rd_queue
;
...
...
@@ -407,7 +399,7 @@ static int __init rd_init (void)
initrd_disk
=
alloc_disk
(
1
);
if
(
!
initrd_disk
)
return
-
ENOMEM
;
initrd_disk
->
major
=
MAJOR_N
R
;
initrd_disk
->
major
=
RAMDISK_MAJO
R
;
initrd_disk
->
first_minor
=
INITRD_MINOR
;
initrd_disk
->
fops
=
&
rd_bd_op
;
sprintf
(
initrd_disk
->
disk_name
,
"initrd"
);
...
...
@@ -418,8 +410,8 @@ static int __init rd_init (void)
goto
out
;
}
if
(
register_blkdev
(
MAJOR_N
R
,
"ramdisk"
,
&
rd_bd_op
))
{
printk
(
"RAMDISK: Could not get major %d"
,
MAJOR_N
R
);
if
(
register_blkdev
(
RAMDISK_MAJO
R
,
"ramdisk"
,
&
rd_bd_op
))
{
printk
(
"RAMDISK: Could not get major %d"
,
RAMDISK_MAJO
R
);
err
=
-
EIO
;
goto
out
;
}
...
...
@@ -432,7 +424,7 @@ static int __init rd_init (void)
struct
gendisk
*
disk
=
rd_disks
[
i
];
char
name
[
16
];
/* rd_size is given in kB */
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
RAMDISK_MAJO
R
;
disk
->
first_minor
=
i
;
disk
->
fops
=
&
rd_bd_op
;
disk
->
queue
=
&
rd_queue
;
...
...
@@ -452,7 +444,7 @@ static int __init rd_init (void)
/* We ought to separate initrd operations here */
set_capacity
(
initrd_disk
,
(
initrd_end
-
initrd_start
+
511
)
>>
9
);
add_disk
(
initrd_disk
);
devfs_register
(
NULL
,
"rd/initrd"
,
DEVFS_FL_DEFAULT
,
MAJOR_N
R
,
devfs_register
(
NULL
,
"rd/initrd"
,
DEVFS_FL_DEFAULT
,
RAMDISK_MAJO
R
,
INITRD_MINOR
,
S_IFBLK
|
S_IRUSR
,
&
rd_bd_op
,
NULL
);
#endif
...
...
drivers/block/swim3.c
View file @
d0229603
...
...
@@ -24,6 +24,8 @@
#include <linux/delay.h>
#include <linux/fd.h>
#include <linux/ioctl.h>
#include <linux/blk.h>
#include <linux/devfs_fs_kernel.h>
#include <asm/io.h>
#include <asm/dbdma.h>
#include <asm/prom.h>
...
...
@@ -32,11 +34,6 @@
#include <asm/machdep.h>
#include <asm/pmac_feature.h>
#define MAJOR_NR FLOPPY_MAJOR
#define DEVICE_NAME "floppy"
#include <linux/blk.h>
#include <linux/devfs_fs_kernel.h>
static
struct
request_queue
swim3_queue
;
static
struct
gendisk
*
disks
[
2
];
static
struct
request
*
fd_req
;
...
...
@@ -1007,15 +1004,16 @@ int swim3_init(void)
goto
out
;
}
if
(
register_blkdev
(
MAJOR_NR
,
"fd"
,
&
floppy_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for floppy
\n
"
,
MAJOR_NR
);
if
(
register_blkdev
(
FLOPPY_MAJOR
,
"fd"
,
&
floppy_fops
))
{
printk
(
KERN_ERR
"Unable to get major %d for floppy
\n
"
,
FLOPPY_MAJOR
);
err
=
-
EBUSY
;
goto
out
;
}
blk_init_queue
(
&
swim3_queue
,
do_fd_request
,
&
swim3_lock
);
for
(
i
=
0
;
i
<
floppy_count
;
i
++
)
{
struct
gendisk
*
disk
=
disks
[
i
];
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
FLOPPY_MAJO
R
;
disk
->
first_minor
=
i
;
disk
->
fops
=
&
floppy_fops
;
disk
->
private_data
=
&
floppy_states
[
i
];
...
...
@@ -1102,7 +1100,7 @@ static int swim3_add_device(struct device_node *swim)
sprintf
(
floppy_name
,
"%s%d"
,
floppy_devfs_handle
?
""
:
"floppy"
,
floppy_count
);
floppy_handle
=
devfs_register
(
floppy_devfs_handle
,
floppy_name
,
DEVFS_FL_DEFAULT
,
MAJOR_N
R
,
floppy_count
,
DEVFS_FL_DEFAULT
,
FLOPPY_MAJO
R
,
floppy_count
,
S_IFBLK
|
S_IRUSR
|
S_IWUSR
|
S_IRGRP
|
S_IWGRP
,
&
floppy_fops
,
NULL
);
...
...
drivers/block/swim_iop.c
View file @
d0229603
...
...
@@ -78,9 +78,6 @@ static int floppy_count;
static
struct
floppy_state
floppy_states
[
MAX_FLOPPIES
];
static
spinlock_t
swim_iop_lock
=
SPIN_LOCK_UNLOCKED
;
#define MAJOR_NR FLOPPY_MAJOR
#define DEVICE_NAME "floppy"
#define QUEUE (&swim_queue)
#define CURRENT elv_next_request(&swim_queue)
static
char
*
drive_names
[
7
]
=
{
...
...
@@ -142,9 +139,9 @@ int swimiop_init(void)
if
(
!
iop_ism_present
)
return
-
ENODEV
;
if
(
register_blkdev
(
MAJOR_N
R
,
"fd"
,
&
floppy_fops
))
{
if
(
register_blkdev
(
FLOPPY_MAJO
R
,
"fd"
,
&
floppy_fops
))
{
printk
(
KERN_ERR
"SWIM-IOP: Unable to get major %d for floppy
\n
"
,
MAJOR_N
R
);
FLOPPY_MAJO
R
);
return
-
EBUSY
;
}
blk_init_queue
(
&
swim_queue
,
do_fd_request
,
&
swim_iop_lock
);
...
...
@@ -190,7 +187,7 @@ int swimiop_init(void)
struct
gendisk
*
disk
=
alloc_disk
(
1
);
if
(
!
disk
)
continue
;
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
FLOPPY_MAJO
R
;
disk
->
first_minor
=
i
;
disk
->
fops
=
&
floppy_fops
;
sprintf
(
disk
->
disk_name
,
"fd%d"
,
i
);
...
...
@@ -523,9 +520,9 @@ static void start_request(struct floppy_state *fs)
wake_up
(
&
fs
->
wait
);
return
;
}
while
(
!
blk_queue_empty
(
QUEUE
)
&&
fs
->
state
==
idle
)
{
while
(
!
blk_queue_empty
(
&
swim_queue
)
&&
fs
->
state
==
idle
)
{
if
(
CURRENT
->
bh
&&
!
buffer_locked
(
CURRENT
->
bh
))
panic
(
DEVICE_NAME
"
: block not locked"
);
panic
(
"floppy
: block not locked"
);
#if 0
printk("do_fd_req: dev=%s cmd=%d sec=%ld nr_sec=%ld buf=%p\n",
CURRENT->rq_disk->disk_name, CURRENT->cmd,
...
...
drivers/block/umem.c
View file @
d0229603
...
...
@@ -97,7 +97,6 @@ MODULE_PARM_DESC(pci_write_cmd, "PCI write command");
static
int
pci_cmds
;
static
int
major_nr
;
#define MAJOR_NR (major_nr)
#include <linux/blk.h>
#include <linux/blkpg.h>
...
...
@@ -1177,7 +1176,7 @@ int __init mm_init(void)
return
0
;
out:
unregister_blkdev
(
MAJOR_NR
,
"umem"
);
unregister_blkdev
(
major_nr
,
"umem"
);
while
(
i
--
)
put_disk
(
mm_gendisk
[
i
]);
return
-
ENOMEM
;
...
...
@@ -1201,7 +1200,7 @@ void __exit mm_cleanup(void)
pci_unregister_driver
(
&
mm_pci_driver
);
unregister_blkdev
(
MAJOR_NR
,
"umem"
);
unregister_blkdev
(
major_nr
,
"umem"
);
}
module_init
(
mm_init
);
...
...
drivers/block/xd.c
View file @
d0229603
...
...
@@ -46,16 +46,14 @@
#include <linux/init.h>
#include <linux/wait.h>
#include <linux/devfs_fs_kernel.h>
#include <linux/blk.h>
#include <linux/blkpg.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/dma.h>
#define MAJOR_NR XT_DISK_MAJOR
#include <linux/blk.h>
#include <linux/blkpg.h>
#include "xd.h"
static
void
__init
do_xd_setup
(
int
*
integers
);
...
...
@@ -172,8 +170,8 @@ static int __init xd_init(void)
}
err
=
-
EBUSY
;
if
(
register_blkdev
(
MAJOR_N
R
,
"xd"
,
&
xd_fops
))
{
printk
(
"xd: Unable to get major number %d
\n
"
,
MAJOR_N
R
);
if
(
register_blkdev
(
XT_DISK_MAJO
R
,
"xd"
,
&
xd_fops
))
{
printk
(
"xd: Unable to get major number %d
\n
"
,
XT_DISK_MAJO
R
);
goto
out1
;
}
devfs_mk_dir
(
NULL
,
"xd"
,
NULL
);
...
...
@@ -205,7 +203,7 @@ static int __init xd_init(void)
if
(
!
disk
)
goto
Enomem
;
p
->
unit
=
i
;
disk
->
major
=
MAJOR_N
R
;
disk
->
major
=
XT_DISK_MAJO
R
;
disk
->
first_minor
=
i
<<
6
;
sprintf
(
disk
->
disk_name
,
"xd%c"
,
i
+
'a'
);
disk
->
fops
=
&
xd_fops
;
...
...
@@ -246,7 +244,7 @@ static int __init xd_init(void)
out2:
devfs_remove
(
"xd"
);
blk_cleanup_queue
(
&
xd_queue
);
unregister_blkdev
(
MAJOR_N
R
,
"xd"
);
unregister_blkdev
(
XT_DISK_MAJO
R
,
"xd"
);
out1:
if
(
xd_dma_buffer
)
xd_dma_mem_free
((
unsigned
long
)
xd_dma_buffer
,
...
...
@@ -1047,7 +1045,7 @@ MODULE_LICENSE("GPL");
void
cleanup_module
(
void
)
{
int
i
;
unregister_blkdev
(
MAJOR_N
R
,
"xd"
);
unregister_blkdev
(
XT_DISK_MAJO
R
,
"xd"
);
for
(
i
=
0
;
i
<
xd_drives
;
i
++
)
{
del_gendisk
(
xd_gendisk
[
i
]);
put_disk
(
xd_gendisk
[
i
]);
...
...
drivers/block/z2ram.c
View file @
d0229603
...
...
@@ -25,9 +25,7 @@
** implied warranty.
*/
#define MAJOR_NR Z2RAM_MAJOR
#define DEVICE_NAME "Z2RAM"
#define DEVICE_NR(device) (minor(device))
#include <linux/major.h>
#include <linux/slab.h>
...
...
@@ -155,7 +153,7 @@ z2_open( struct inode *inode, struct file *filp )
sizeof
(
z2ram_map
[
0
]
);
int
rc
=
-
ENOMEM
;
device
=
DEVICE_NR
(
inode
->
i_rdev
);
device
=
minor
(
inode
->
i_rdev
);
if
(
current_device
!=
-
1
&&
current_device
!=
device
)
{
...
...
@@ -341,18 +339,18 @@ z2_init( void )
if
(
!
MACH_IS_AMIGA
)
return
-
ENXIO
;
if
(
register_blkdev
(
MAJOR_N
R
,
DEVICE_NAME
,
&
z2_fops
)
)
if
(
register_blkdev
(
Z2RAM_MAJO
R
,
DEVICE_NAME
,
&
z2_fops
)
)
{
printk
(
KERN_ERR
DEVICE_NAME
": Unable to get major %d
\n
"
,
MAJOR_N
R
);
Z2RAM_MAJO
R
);
return
-
EBUSY
;
}
z2ram_gendisk
=
alloc_disk
(
1
);
if
(
!
z2ram_gendisk
)
{
unregister_blkdev
(
MAJOR_N
R
,
DEVICE_NAME
);
unregister_blkdev
(
Z2RAM_MAJO
R
,
DEVICE_NAME
);
return
-
ENOMEM
;
}
z2ram_gendisk
->
major
=
MAJOR_N
R
;
z2ram_gendisk
->
major
=
Z2RAM_MAJO
R
;
z2ram_gendisk
->
first_minor
=
0
;
z2ram_gendisk
->
fops
=
&
z2_fops
;
sprintf
(
z2ram_gendisk
->
disk_name
,
"z2ram"
);
...
...
@@ -360,7 +358,7 @@ z2_init( void )
blk_init_queue
(
&
z2_queue
,
do_z2_request
,
&
z2ram_lock
);
z2ram_gendisk
->
queue
=
&
z2_queue
;
add_disk
(
z2ram_gendisk
);
blk_register_region
(
MKDEV
(
MAJOR_N
R
,
0
),
Z2MINOR_COUNT
,
THIS_MODULE
,
blk_register_region
(
MKDEV
(
Z2RAM_MAJO
R
,
0
),
Z2MINOR_COUNT
,
THIS_MODULE
,
z2_find
,
NULL
,
NULL
);
return
0
;
...
...
@@ -388,8 +386,8 @@ void
cleanup_module
(
void
)
{
int
i
,
j
;
blk_unregister_region
(
MKDEV
(
MAJOR_N
R
,
0
),
256
);
if
(
unregister_blkdev
(
MAJOR_N
R
,
DEVICE_NAME
)
!=
0
)
blk_unregister_region
(
MKDEV
(
Z2RAM_MAJO
R
,
0
),
256
);
if
(
unregister_blkdev
(
Z2RAM_MAJO
R
,
DEVICE_NAME
)
!=
0
)
printk
(
KERN_ERR
DEVICE_NAME
": unregister of device failed
\n
"
);
del_gendisk
(
z2ram_gendisk
);
...
...
include/linux/nbd.h
View file @
d0229603
...
...
@@ -26,13 +26,6 @@ enum {
NBD_CMD_DISC
=
2
};
#ifdef MAJOR_NR
#include <asm/semaphore.h>
#define LOCAL_END_REQUEST
#include <linux/blk.h>
#ifdef PARANOIA
extern
int
requests_in
;
...
...
@@ -41,30 +34,6 @@ extern int requests_out;
#define nbd_cmd(req) ((req)->cmd[0])
static
void
nbd_end_request
(
struct
request
*
req
)
{
struct
bio
*
bio
;
unsigned
nsect
;
unsigned
long
flags
;
int
uptodate
=
(
req
->
errors
==
0
)
?
1
:
0
;
request_queue_t
*
q
=
req
->
q
;
#ifdef PARANOIA
requests_out
++
;
#endif
spin_lock_irqsave
(
q
->
queue_lock
,
flags
);
while
((
bio
=
req
->
bio
)
!=
NULL
)
{
nsect
=
bio_sectors
(
bio
);
blk_finished_io
(
nsect
);
req
->
bio
=
bio
->
bi_next
;
bio
->
bi_next
=
NULL
;
bio_endio
(
bio
,
nsect
<<
9
,
uptodate
?
0
:
-
EIO
);
}
blk_put_request
(
req
);
spin_unlock_irqrestore
(
q
->
queue_lock
,
flags
);
}
#define MAX_NBD 128
struct
nbd_device
{
...
...
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