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
5cba3157
Commit
5cba3157
authored
May 04, 2003
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge nuts.ninka.net:/home/davem/src/BK/network-2.5
into nuts.ninka.net:/home/davem/src/BK/net-2.5
parents
412c4022
efeed5ae
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
124 additions
and
138 deletions
+124
-138
Makefile
Makefile
+1
-1
drivers/block/floppy.c
drivers/block/floppy.c
+7
-2
drivers/ieee1394/amdtp.c
drivers/ieee1394/amdtp.c
+4
-4
drivers/ieee1394/dv1394.c
drivers/ieee1394/dv1394.c
+1
-1
drivers/ieee1394/eth1394.c
drivers/ieee1394/eth1394.c
+4
-3
drivers/ieee1394/eth1394.h
drivers/ieee1394/eth1394.h
+1
-1
drivers/ieee1394/hosts.c
drivers/ieee1394/hosts.c
+2
-1
drivers/ieee1394/hosts.h
drivers/ieee1394/hosts.h
+2
-1
drivers/ieee1394/ieee1394_core.c
drivers/ieee1394/ieee1394_core.c
+4
-3
drivers/ieee1394/ieee1394_hotplug.h
drivers/ieee1394/ieee1394_hotplug.h
+12
-39
drivers/ieee1394/ieee1394_types.h
drivers/ieee1394/ieee1394_types.h
+0
-46
drivers/ieee1394/nodemgr.c
drivers/ieee1394/nodemgr.c
+1
-1
drivers/ieee1394/nodemgr.h
drivers/ieee1394/nodemgr.h
+30
-0
drivers/ieee1394/ohci1394.c
drivers/ieee1394/ohci1394.c
+29
-20
drivers/ieee1394/pcilynx.c
drivers/ieee1394/pcilynx.c
+1
-0
drivers/ieee1394/raw1394.c
drivers/ieee1394/raw1394.c
+1
-1
drivers/ieee1394/sbp2.c
drivers/ieee1394/sbp2.c
+2
-11
drivers/ieee1394/video1394.c
drivers/ieee1394/video1394.c
+22
-3
No files found.
Makefile
View file @
5cba3157
VERSION
=
2
PATCHLEVEL
=
5
SUBLEVEL
=
6
8
SUBLEVEL
=
6
9
EXTRAVERSION
=
# *DOCUMENTATION*
...
...
drivers/block/floppy.c
View file @
5cba3157
...
...
@@ -2293,7 +2293,12 @@ static int do_format(int drive, struct format_descr *tmp_format_req)
static
void
floppy_end_request
(
struct
request
*
req
,
int
uptodate
)
{
if
(
end_that_request_first
(
req
,
uptodate
,
current_count_sectors
))
unsigned
int
nr_sectors
=
current_count_sectors
;
/* current_count_sectors can be zero if transfer failed */
if
(
!
uptodate
)
nr_sectors
=
req
->
current_nr_sectors
;
if
(
end_that_request_first
(
req
,
uptodate
,
nr_sectors
))
return
;
add_disk_randomness
(
req
->
rq_disk
);
floppy_off
((
long
)
req
->
rq_disk
->
private_data
);
...
...
@@ -3768,7 +3773,7 @@ static int floppy_open(struct inode * inode, struct file * filp)
if
(
UFDCS
->
rawcmd
==
1
)
UFDCS
->
rawcmd
=
2
;
if
(
!
filp
->
f_flags
&
O_NDELAY
)
{
if
(
!
(
filp
->
f_flags
&
O_NDELAY
)
)
{
if
(
filp
->
f_mode
&
3
)
{
UDRS
->
last_checked
=
0
;
check_disk_change
(
inode
->
i_bdev
);
...
...
drivers/ieee1394/amdtp.c
View file @
5cba3157
...
...
@@ -835,8 +835,8 @@ static int stream_alloc_packet_lists(struct stream *s)
max_nevents
=
fraction_ceil
(
&
s
->
samples_per_cycle
);
max_packet_size
=
max_nevents
*
s
->
dimension
*
4
+
8
;
s
->
packet_pool
=
hpsb_
pci_pool_create
(
"packet pool"
,
s
->
host
->
ohci
->
dev
,
max_packet_size
,
0
,
0
,
SLAB_KERNEL
);
s
->
packet_pool
=
pci_pool_create
(
"packet pool"
,
s
->
host
->
ohci
->
dev
,
max_packet_size
,
0
,
0
);
if
(
s
->
packet_pool
==
NULL
)
return
-
1
;
...
...
@@ -1021,9 +1021,9 @@ struct stream *stream_alloc(struct amdtp_host *host)
return
NULL
;
}
s
->
descriptor_pool
=
hpsb_
pci_pool_create
(
"descriptor pool"
,
host
->
ohci
->
dev
,
s
->
descriptor_pool
=
pci_pool_create
(
"descriptor pool"
,
host
->
ohci
->
dev
,
sizeof
(
struct
descriptor_block
),
16
,
0
,
SLAB_KERNEL
);
16
,
0
);
if
(
s
->
descriptor_pool
==
NULL
)
{
kfree
(
s
->
input
);
...
...
drivers/ieee1394/dv1394.c
View file @
5cba3157
...
...
@@ -115,7 +115,7 @@
#include "ieee1394.h"
#include "ieee1394_types.h"
#include "
ieee1394_hotplug
.h"
#include "
nodemgr
.h"
#include "hosts.h"
#include "ieee1394_core.h"
#include "highlevel.h"
...
...
drivers/ieee1394/eth1394.c
View file @
5cba3157
...
...
@@ -56,6 +56,7 @@
#include <linux/tcp.h>
#include <linux/skbuff.h>
#include <linux/bitops.h>
#include <linux/workqueue.h>
#include <asm/delay.h>
#include <asm/semaphore.h>
#include <net/arp.h>
...
...
@@ -78,7 +79,7 @@
printk(KERN_ERR fmt, ## args)
static
char
version
[]
__devinitdata
=
"$Rev: 9
06
$ Ben Collins <bcollins@debian.org>"
;
"$Rev: 9
18
$ Ben Collins <bcollins@debian.org>"
;
/* Our ieee1394 highlevel driver */
#define ETHER1394_DRIVER_NAME "ether1394"
...
...
@@ -853,8 +854,8 @@ static int ether1394_tx (struct sk_buff *skb, struct net_device *dev)
ptask
->
dest_node
=
dest_node
;
/* TODO: When 2.4 is out of the way, give each of our ethernet
* dev's a workqueue to handle these. */
HPSB_
INIT_WORK
(
&
ptask
->
tq
,
hpsb_write_sched
,
ptask
);
hpsb_
schedule_work
(
&
ptask
->
tq
);
INIT_WORK
(
&
ptask
->
tq
,
hpsb_write_sched
,
ptask
);
schedule_work
(
&
ptask
->
tq
);
return
0
;
fail:
...
...
drivers/ieee1394/eth1394.h
View file @
5cba3157
...
...
@@ -67,7 +67,7 @@ struct packet_task {
struct
sk_buff
*
skb
;
/* Socket buffer we are sending */
nodeid_t
dest_node
;
/* Destination of the packet */
u64
addr
;
/* Address */
struct
hpsb_queue
_struct
tq
;
/* The task */
struct
work
_struct
tq
;
/* The task */
eth1394_tx_type
tx_type
;
/* Send data via GASP or Write Req. */
};
...
...
drivers/ieee1394/hosts.c
View file @
5cba3157
...
...
@@ -16,6 +16,7 @@
#include <linux/list.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/workqueue.h>
#include "ieee1394_types.h"
#include "hosts.h"
...
...
@@ -140,7 +141,7 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra)
atomic_set
(
&
h
->
generation
,
0
);
HPSB_
INIT_WORK
(
&
h
->
timeout_tq
,
(
void
(
*
)(
void
*
))
abort_timedouts
,
h
);
INIT_WORK
(
&
h
->
timeout_tq
,
(
void
(
*
)(
void
*
))
abort_timedouts
,
h
);
h
->
topology_map
=
h
->
csr
.
topology_map
+
3
;
h
->
speed_map
=
(
u8
*
)(
h
->
csr
.
speed_map
+
2
);
...
...
drivers/ieee1394/hosts.h
View file @
5cba3157
...
...
@@ -4,6 +4,7 @@
#include <linux/device.h>
#include <linux/wait.h>
#include <linux/list.h>
#include <linux/workqueue.h>
#include <asm/semaphore.h>
#include "ieee1394_types.h"
...
...
@@ -32,7 +33,7 @@ struct hpsb_host {
struct
list_head
pending_packets
;
spinlock_t
pending_pkt_lock
;
struct
hpsb_queue
_struct
timeout_tq
;
struct
work
_struct
timeout_tq
;
unsigned
char
iso_listen_count
[
64
];
...
...
drivers/ieee1394/ieee1394_core.c
View file @
5cba3157
...
...
@@ -31,6 +31,8 @@
#include <linux/moduleparam.h>
#include <linux/proc_fs.h>
#include <linux/bitops.h>
#include <linux/workqueue.h>
#include <linux/kdev_t.h>
#include <asm/byteorder.h>
#include <asm/semaphore.h>
...
...
@@ -42,7 +44,6 @@
#include "ieee1394_transactions.h"
#include "csr.h"
#include "nodemgr.h"
#include "ieee1394_hotplug.h"
#include "dma.h"
#include "iso.h"
...
...
@@ -437,7 +438,7 @@ void hpsb_packet_sent(struct hpsb_host *host, struct hpsb_packet *packet,
spin_unlock_irqrestore
(
&
host
->
pending_pkt_lock
,
flags
);
up
(
&
packet
->
state_change
);
hpsb_
schedule_work
(
&
host
->
timeout_tq
);
schedule_work
(
&
host
->
timeout_tq
);
}
/**
...
...
@@ -985,7 +986,7 @@ void abort_timedouts(struct hpsb_host *host)
}
if
(
!
list_empty
(
&
host
->
pending_packets
))
hpsb_
schedule_work
(
&
host
->
timeout_tq
);
schedule_work
(
&
host
->
timeout_tq
);
spin_unlock_irqrestore
(
&
host
->
pending_pkt_lock
,
flags
);
...
...
drivers/ieee1394/ieee1394_hotplug.h
View file @
5cba3157
#ifndef _IEEE1394_HOTPLUG_H
#define _IEEE1394_HOTPLUG_H
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/mod_devicetable.h>
#include "ieee1394_core.h"
#include "nodemgr.h"
/* Unit spec id and sw version entry for some protocols */
#define AVC_UNIT_SPEC_ID_ENTRY 0x0000A02D
#define AVC_SW_VERSION_ENTRY 0x00010001
#define CAMERA_UNIT_SPEC_ID_ENTRY 0x0000A02D
#define CAMERA_SW_VERSION_ENTRY 0x00000100
/* Check to make sure this all isn't already defined */
#ifndef IEEE1394_MATCH_VENDOR_ID
#define IEEE1394_MATCH_VENDOR_ID 0x0001
#define IEEE1394_MATCH_MODEL_ID 0x0002
#define IEEE1394_MATCH_SPECIFIER_ID 0x0004
#define IEEE1394_MATCH_VERSION 0x0008
/*
* Unit spec id and sw version entry for some protocols
*/
#define AVC_UNIT_SPEC_ID_ENTRY 0x0000A02D
#define AVC_SW_VERSION_ENTRY 0x00010001
#define CAMERA_UNIT_SPEC_ID_ENTRY 0x0000A02D
#define CAMERA_SW_VERSION_ENTRY 0x00000100
struct
ieee1394_device_id
{
u32
match_flags
;
u32
vendor_id
;
...
...
@@ -28,33 +28,6 @@ struct ieee1394_device_id {
void
*
driver_data
;
};
struct
hpsb_protocol_driver
{
/* The name of the driver, e.g. SBP2 or IP1394 */
const
char
*
name
;
/*
* The device id table describing the protocols and/or devices
* supported by this driver. This is used by the nodemgr to
* decide if a driver could support a given node, but the
* probe function below can implement further protocol
* dependent or vendor dependent checking.
*/
struct
ieee1394_device_id
*
id_table
;
/*
* The update function is called when the node has just
* survived a bus reset, i.e. it is still present on the bus.
* However, it may be necessary to reestablish the connection
* or login into the node again, depending on the protocol.
*/
void
(
*
update
)(
struct
unit_directory
*
ud
);
/* Our LDM structure */
struct
device_driver
driver
;
};
int
hpsb_register_protocol
(
struct
hpsb_protocol_driver
*
driver
);
void
hpsb_unregister_protocol
(
struct
hpsb_protocol_driver
*
driver
);
#endif
#endif
/* _IEEE1394_HOTPLUG_H */
drivers/ieee1394/ieee1394_types.h
View file @
5cba3157
...
...
@@ -18,58 +18,12 @@
#define minor(dev) MINOR(dev)
#endif
#ifndef __devexit_p
#define __devexit_p(x) x
#endif
#include <linux/spinlock.h>
#ifndef list_for_each_safe
#define list_for_each_safe(pos, n, head) \
for (pos = (head)->next, n = pos->next; pos != (head); \
pos = n, n = pos->next)
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,5)
#define pte_offset_kernel pte_offset
#endif
#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
#ifndef MAX
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif
/* Compatibility for task/work queues */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,42)
/* Use task queue */
#include <linux/tqueue.h>
#define hpsb_queue_struct tq_struct
#define hpsb_queue_list list
#define hpsb_schedule_work(x) schedule_task(x)
#define HPSB_INIT_WORK(x,y,z) INIT_TQUEUE(x,y,z)
#define HPSB_PREPARE_WORK(x,y,z) PREPARE_TQUEUE(x,y,z)
#else
/* Use work queue */
#include <linux/workqueue.h>
#define hpsb_queue_struct work_struct
#define hpsb_queue_list entry
#define hpsb_schedule_work(x) schedule_work(x)
#define HPSB_INIT_WORK(x,y,z) INIT_WORK(x,y,z)
#define HPSB_PREPARE_WORK(x,y,z) PREPARE_WORK(x,y,z)
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,44)
/* pci_pool_create changed. does not take the flags arg any longer */
#define hpsb_pci_pool_create(a,b,c,d,e,f) pci_pool_create(a,b,c,d,e,f)
#else
#define hpsb_pci_pool_create(a,b,c,d,e,f) pci_pool_create(a,b,c,d,e)
#endif
/* Transaction Label handling */
struct
hpsb_tlabel_pool
{
DECLARE_BITMAP
(
pool
,
64
);
...
...
drivers/ieee1394/nodemgr.c
View file @
5cba3157
...
...
@@ -22,9 +22,9 @@
#include "ieee1394_types.h"
#include "ieee1394.h"
#include "nodemgr.h"
#include "hosts.h"
#include "ieee1394_transactions.h"
#include "ieee1394_hotplug.h"
#include "highlevel.h"
#include "csr.h"
#include "nodemgr.h"
...
...
drivers/ieee1394/nodemgr.h
View file @
5cba3157
...
...
@@ -21,6 +21,8 @@
#define _IEEE1394_NODEMGR_H
#include <linux/device.h>
#include "ieee1394_core.h"
#include "ieee1394_hotplug.h"
#define CONFIG_ROM_BUS_INFO_LENGTH(q) ((q) >> 24)
#define CONFIG_ROM_BUS_CRC_LENGTH(q) (((q) >> 16) & 0xff)
...
...
@@ -142,6 +144,34 @@ struct node_entry {
quadlet_t
quadlets
[
0
];
};
struct
hpsb_protocol_driver
{
/* The name of the driver, e.g. SBP2 or IP1394 */
const
char
*
name
;
/*
* The device id table describing the protocols and/or devices
* supported by this driver. This is used by the nodemgr to
* decide if a driver could support a given node, but the
* probe function below can implement further protocol
* dependent or vendor dependent checking.
*/
struct
ieee1394_device_id
*
id_table
;
/*
* The update function is called when the node has just
* survived a bus reset, i.e. it is still present on the bus.
* However, it may be necessary to reestablish the connection
* or login into the node again, depending on the protocol.
*/
void
(
*
update
)(
struct
unit_directory
*
ud
);
/* Our LDM structure */
struct
device_driver
driver
;
};
int
hpsb_register_protocol
(
struct
hpsb_protocol_driver
*
driver
);
void
hpsb_unregister_protocol
(
struct
hpsb_protocol_driver
*
driver
);
static
inline
int
hpsb_node_entry_valid
(
struct
node_entry
*
ne
)
{
return
ne
->
generation
==
get_hpsb_generation
(
ne
->
host
);
...
...
drivers/ieee1394/ohci1394.c
View file @
5cba3157
...
...
@@ -164,7 +164,7 @@ printk(level "%s: " fmt "\n" , OHCI1394_DRIVER_NAME , ## args)
printk(level "%s_%d: " fmt "\n" , OHCI1394_DRIVER_NAME, card , ## args)
static
char
version
[]
__devinitdata
=
"$Rev: 9
08
$ Ben Collins <bcollins@debian.org>"
;
"$Rev: 9
21
$ Ben Collins <bcollins@debian.org>"
;
/* Module Parameters */
static
int
phys_dma
=
1
;
...
...
@@ -623,8 +623,10 @@ static void insert_packet(struct ti_ohci *ohci,
u32
cycleTimer
;
int
idx
=
d
->
prg_ind
;
DBGMSG
(
ohci
->
id
,
"Inserting packet for node %d, tlabel=%d, tcode=0x%x, speed=%d"
,
packet
->
node_id
,
packet
->
tlabel
,
packet
->
tcode
,
packet
->
speed_code
);
DBGMSG
(
ohci
->
id
,
"Inserting packet for node "
NODE_BUS_FMT
", tlabel=%d, tcode=0x%x, speed=%d"
,
NODE_BUS_ARGS
(
packet
->
node_id
),
packet
->
tlabel
,
packet
->
tcode
,
packet
->
speed_code
);
d
->
prg_cpu
[
idx
]
->
begin
.
address
=
0
;
d
->
prg_cpu
[
idx
]
->
begin
.
branchAddress
=
0
;
...
...
@@ -1505,6 +1507,7 @@ static void ohci_iso_recv_release_block(struct ohci_iso_recv *recv, int block)
so disable branch and enable interrupt */
next
->
branchAddress
=
0
;
next
->
control
|=
cpu_to_le32
(
3
<<
20
);
next
->
status
=
cpu_to_le32
(
recv
->
buf_stride
);
/* link prev to next */
prev
->
branchAddress
=
cpu_to_le32
(
dma_prog_region_offset_to_bus
(
&
recv
->
prog
,
...
...
@@ -2691,19 +2694,25 @@ static void dma_trm_tasklet (unsigned long data)
#ifdef OHCI1394_DEBUG
if
(
datasize
)
DBGMSG
(
ohci
->
id
,
"Packet sent to node %d tcode=0x%X tLabel="
"0x%02X ack=0x%X spd=%d dataLength=%d ctx=%d"
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
1
])
>>
16
)
&
0x3f
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
0
])
>>
4
)
&
0xf
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
0
])
>>
10
)
&
0x3f
,
status
&
0x1f
,
(
status
>>
5
)
&
0x3
,
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
3
])
>>
16
,
d
->
ctx
);
if
(((
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
0
])
>>
4
)
&
0xf
)
==
0xa
)
DBGMSG
(
ohci
->
id
,
"Stream packet sent to channel %d tcode=0x%X "
"ack=0x%X spd=%d dataLength=%d ctx=%d"
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
0
])
>>
8
)
&
0x3f
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
0
])
>>
4
)
&
0xf
,
status
&
0x1f
,
(
status
>>
5
)
&
0x3
,
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
1
])
>>
16
,
d
->
ctx
);
else
DBGMSG
(
ohci
->
id
,
"Packet sent to node %d tcode=0x%X tLabel="
"0x%02X ack=0x%X spd=%d dataLength=%d ctx=%d"
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
1
])
>>
16
)
&
0x3f
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
0
])
>>
4
)
&
0xf
,
(
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
0
])
>>
10
)
&
0x3f
,
status
&
0x1f
,
(
status
>>
5
)
&
0x3
,
le32_to_cpu
(
d
->
prg_cpu
[
d
->
sent_ind
]
->
data
[
3
])
>>
16
,
d
->
ctx
);
else
DBGMSG
(
ohci
->
id
,
"Packet sent to node %d tcode=0x%X tLabel="
...
...
@@ -2888,8 +2897,8 @@ alloc_dma_rcv_ctx(struct ti_ohci *ohci, struct dma_rcv_ctx *d,
return
-
ENOMEM
;
}
d
->
prg_pool
=
hpsb_
pci_pool_create
(
"ohci1394 rcv prg"
,
ohci
->
dev
,
sizeof
(
struct
dma_cmd
),
4
,
0
,
SLAB_KERNEL
);
d
->
prg_pool
=
pci_pool_create
(
"ohci1394 rcv prg"
,
ohci
->
dev
,
sizeof
(
struct
dma_cmd
),
4
,
0
);
OHCI_DMA_ALLOC
(
"dma_rcv prg pool"
);
for
(
i
=
0
;
i
<
d
->
num_desc
;
i
++
)
{
...
...
@@ -3016,8 +3025,8 @@ alloc_dma_trm_ctx(struct ti_ohci *ohci, struct dma_trm_ctx *d,
memset
(
d
->
prg_cpu
,
0
,
d
->
num_desc
*
sizeof
(
struct
at_dma_prg
*
));
memset
(
d
->
prg_bus
,
0
,
d
->
num_desc
*
sizeof
(
dma_addr_t
));
d
->
prg_pool
=
hpsb_
pci_pool_create
(
"ohci1394 trm prg"
,
ohci
->
dev
,
sizeof
(
struct
at_dma_prg
),
4
,
0
,
SLAB_KERNEL
);
d
->
prg_pool
=
pci_pool_create
(
"ohci1394 trm prg"
,
ohci
->
dev
,
sizeof
(
struct
at_dma_prg
),
4
,
0
);
OHCI_DMA_ALLOC
(
"dma_rcv prg pool"
);
for
(
i
=
0
;
i
<
d
->
num_desc
;
i
++
)
{
...
...
drivers/ieee1394/pcilynx.c
View file @
5cba3157
...
...
@@ -42,6 +42,7 @@
#include <linux/pci.h>
#include <linux/fs.h>
#include <linux/poll.h>
#include <linux/kdev_t.h>
#include <asm/byteorder.h>
#include <asm/atomic.h>
#include <asm/io.h>
...
...
drivers/ieee1394/raw1394.c
View file @
5cba3157
...
...
@@ -45,11 +45,11 @@
#include "ieee1394.h"
#include "ieee1394_types.h"
#include "ieee1394_core.h"
#include "nodemgr.h"
#include "hosts.h"
#include "highlevel.h"
#include "iso.h"
#include "ieee1394_transactions.h"
#include "ieee1394_hotplug.h"
#include "raw1394.h"
#include "raw1394-private.h"
...
...
drivers/ieee1394/sbp2.c
View file @
5cba3157
...
...
@@ -283,22 +283,19 @@
#include "../scsi/scsi.h"
#include "../scsi/hosts.h"
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,47)
#include "../scsi/sd.h"
#endif
#include "ieee1394.h"
#include "ieee1394_types.h"
#include "ieee1394_core.h"
#include "nodemgr.h"
#include "hosts.h"
#include "nodemgr.h"
#include "highlevel.h"
#include "ieee1394_transactions.h"
#include "ieee1394_hotplug.h"
#include "sbp2.h"
static
char
version
[]
__devinitdata
=
"$Rev: 91
2
$ James Goodwin <jamesg@filanet.com>"
;
"$Rev: 91
9
$ James Goodwin <jamesg@filanet.com>"
;
/*
* Module load parameter definitions
...
...
@@ -2914,15 +2911,9 @@ static void sbp2scsi_complete_command(struct scsi_id_instance_data *scsi_id,
/*
* Tell scsi stack that we're done with this command
*/
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
spin_lock_irqsave
(
&
io_request_lock
,
flags
);
done
(
SCpnt
);
spin_unlock_irqrestore
(
&
io_request_lock
,
flags
);
#else
spin_lock_irqsave
(
scsi_id
->
hi
->
scsi_host
->
host_lock
,
flags
);
done
(
SCpnt
);
spin_unlock_irqrestore
(
scsi_id
->
hi
->
scsi_host
->
host_lock
,
flags
);
#endif
return
;
}
...
...
drivers/ieee1394/video1394.c
View file @
5cba3157
...
...
@@ -47,11 +47,12 @@
#include "ieee1394.h"
#include "ieee1394_types.h"
#include "
ieee1394_hotplug
.h"
#include "
nodemgr
.h"
#include "hosts.h"
#include "ieee1394_core.h"
#include "highlevel.h"
#include "video1394.h"
#include "nodemgr.h"
#include "dma.h"
#include "ohci1394.h"
...
...
@@ -991,6 +992,8 @@ static int video1394_ioctl(struct inode *inode, struct file *file,
struct
video1394_queue_variable
qv
;
struct
dma_iso_ctx
*
d
;
qv
.
packet_sizes
=
NULL
;
if
(
copy_from_user
(
&
v
,
(
void
*
)
arg
,
sizeof
(
v
)))
return
-
EFAULT
;
...
...
@@ -1003,12 +1006,22 @@ static int video1394_ioctl(struct inode *inode, struct file *file,
}
if
(
d
->
flags
&
VIDEO1394_VARIABLE_PACKET_SIZE
)
{
unsigned
int
*
psizes
;
int
buf_size
=
d
->
nb_cmd
*
sizeof
(
unsigned
int
);
if
(
copy_from_user
(
&
qv
,
(
void
*
)
arg
,
sizeof
(
qv
)))
return
-
EFAULT
;
if
(
!
access_ok
(
VERIFY_READ
,
qv
.
packet_sizes
,
d
->
nb_cmd
*
sizeof
(
unsigned
int
)))
{
psizes
=
kmalloc
(
buf_size
,
GFP_KERNEL
);
if
(
!
psizes
)
return
-
ENOMEM
;
if
(
copy_from_user
(
psizes
,
qv
.
packet_sizes
,
buf_size
))
{
kfree
(
psizes
);
return
-
EFAULT
;
}
qv
.
packet_sizes
=
psizes
;
}
spin_lock_irqsave
(
&
d
->
lock
,
flags
);
...
...
@@ -1017,6 +1030,8 @@ static int video1394_ioctl(struct inode *inode, struct file *file,
PRINT
(
KERN_ERR
,
ohci
->
id
,
"Buffer %d is already used"
,
v
.
buffer
);
spin_unlock_irqrestore
(
&
d
->
lock
,
flags
);
if
(
qv
.
packet_sizes
)
kfree
(
qv
.
packet_sizes
);
return
-
EFAULT
;
}
...
...
@@ -1070,6 +1085,10 @@ static int video1394_ioctl(struct inode *inode, struct file *file,
reg_write
(
ohci
,
d
->
ctrlSet
,
0x1000
);
}
}
if
(
qv
.
packet_sizes
)
kfree
(
qv
.
packet_sizes
);
return
0
;
}
...
...
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