Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
63b3ced0
Commit
63b3ced0
authored
Jan 31, 2006
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
parents
28e0cf22
f9e61929
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
28 additions
and
6 deletions
+28
-6
drivers/infiniband/core/sa_query.c
drivers/infiniband/core/sa_query.c
+2
-0
drivers/infiniband/core/uverbs_main.c
drivers/infiniband/core/uverbs_main.c
+1
-0
drivers/infiniband/hw/mthca/mthca_av.c
drivers/infiniband/hw/mthca/mthca_av.c
+1
-1
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
+2
-2
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+22
-3
No files found.
drivers/infiniband/core/sa_query.c
View file @
63b3ced0
...
...
@@ -956,6 +956,8 @@ static void ib_sa_remove_one(struct ib_device *device)
ib_unregister_event_handler
(
&
sa_dev
->
event_handler
);
flush_scheduled_work
();
for
(
i
=
0
;
i
<=
sa_dev
->
end_port
-
sa_dev
->
start_port
;
++
i
)
{
ib_unregister_mad_agent
(
sa_dev
->
port
[
i
].
agent
);
kref_put
(
&
sa_dev
->
port
[
i
].
sm_ah
->
ref
,
free_sm_ah
);
...
...
drivers/infiniband/core/uverbs_main.c
View file @
63b3ced0
...
...
@@ -902,6 +902,7 @@ static void __exit ib_uverbs_cleanup(void)
unregister_filesystem
(
&
uverbs_event_fs
);
class_destroy
(
uverbs_class
);
unregister_chrdev_region
(
IB_UVERBS_BASE_DEV
,
IB_UVERBS_MAX_DEVICES
);
flush_scheduled_work
();
idr_destroy
(
&
ib_uverbs_pd_idr
);
idr_destroy
(
&
ib_uverbs_mr_idr
);
idr_destroy
(
&
ib_uverbs_mw_idr
);
...
...
drivers/infiniband/hw/mthca/mthca_av.c
View file @
63b3ced0
...
...
@@ -184,7 +184,7 @@ int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
ah
->
av
->
sl_tclass_flowlabel
&
cpu_to_be32
(
0xfffff
);
ib_get_cached_gid
(
&
dev
->
ib_dev
,
be32_to_cpu
(
ah
->
av
->
port_pd
)
>>
24
,
ah
->
av
->
gid_index
,
ah
->
av
->
gid_index
%
dev
->
limits
.
gid_table_len
,
&
header
->
grh
.
source_gid
);
memcpy
(
header
->
grh
.
destination_gid
.
raw
,
ah
->
av
->
dgid
,
16
);
...
...
drivers/infiniband/ulp/ipoib/ipoib_main.c
View file @
63b3ced0
...
...
@@ -505,7 +505,7 @@ static void neigh_add_path(struct sk_buff *skb, struct net_device *dev)
list_add_tail
(
&
neigh
->
list
,
&
path
->
neigh_list
);
if
(
path
->
pathrec
.
dlid
)
{
if
(
path
->
ah
)
{
kref_get
(
&
path
->
ah
->
ref
);
neigh
->
ah
=
path
->
ah
;
...
...
@@ -591,7 +591,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
return
;
}
if
(
path
->
pathrec
.
dlid
)
{
if
(
path
->
ah
)
{
ipoib_dbg
(
priv
,
"Send unicast ARP to %04x
\n
"
,
be16_to_cpu
(
path
->
pathrec
.
dlid
));
...
...
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
View file @
63b3ced0
...
...
@@ -97,6 +97,7 @@ static void ipoib_mcast_free(struct ipoib_mcast *mcast)
struct
ipoib_dev_priv
*
priv
=
netdev_priv
(
dev
);
struct
ipoib_neigh
*
neigh
,
*
tmp
;
unsigned
long
flags
;
int
tx_dropped
=
0
;
ipoib_dbg_mcast
(
netdev_priv
(
dev
),
"deleting multicast group "
IPOIB_GID_FMT
"
\n
"
,
...
...
@@ -123,8 +124,14 @@ static void ipoib_mcast_free(struct ipoib_mcast *mcast)
if
(
mcast
->
ah
)
ipoib_put_ah
(
mcast
->
ah
);
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
{
++
tx_dropped
;
dev_kfree_skb_any
(
skb_dequeue
(
&
mcast
->
pkt_queue
));
}
spin_lock_irqsave
(
&
priv
->
tx_lock
,
flags
);
priv
->
stats
.
tx_dropped
+=
tx_dropped
;
spin_unlock_irqrestore
(
&
priv
->
tx_lock
,
flags
);
kfree
(
mcast
);
}
...
...
@@ -276,8 +283,10 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
}
/* actually send any queued packets */
spin_lock_irq
(
&
priv
->
tx_lock
);
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
{
struct
sk_buff
*
skb
=
skb_dequeue
(
&
mcast
->
pkt_queue
);
spin_unlock_irq
(
&
priv
->
tx_lock
);
skb
->
dev
=
dev
;
...
...
@@ -288,7 +297,9 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
if
(
dev_queue_xmit
(
skb
))
ipoib_warn
(
priv
,
"dev_queue_xmit failed to requeue packet
\n
"
);
spin_lock_irq
(
&
priv
->
tx_lock
);
}
spin_unlock_irq
(
&
priv
->
tx_lock
);
return
0
;
}
...
...
@@ -300,6 +311,7 @@ ipoib_mcast_sendonly_join_complete(int status,
{
struct
ipoib_mcast
*
mcast
=
mcast_ptr
;
struct
net_device
*
dev
=
mcast
->
dev
;
struct
ipoib_dev_priv
*
priv
=
netdev_priv
(
dev
);
if
(
!
status
)
ipoib_mcast_join_finish
(
mcast
,
mcmember
);
...
...
@@ -310,8 +322,12 @@ ipoib_mcast_sendonly_join_complete(int status,
IPOIB_GID_ARG
(
mcast
->
mcmember
.
mgid
),
status
);
/* Flush out any queued packets */
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
spin_lock_irq
(
&
priv
->
tx_lock
);
while
(
!
skb_queue_empty
(
&
mcast
->
pkt_queue
))
{
++
priv
->
stats
.
tx_dropped
;
dev_kfree_skb_any
(
skb_dequeue
(
&
mcast
->
pkt_queue
));
}
spin_unlock_irq
(
&
priv
->
tx_lock
);
/* Clear the busy flag so we try again */
clear_bit
(
IPOIB_MCAST_FLAG_BUSY
,
&
mcast
->
flags
);
...
...
@@ -687,6 +703,7 @@ void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
if
(
!
mcast
)
{
ipoib_warn
(
priv
,
"unable to allocate memory for "
"multicast structure
\n
"
);
++
priv
->
stats
.
tx_dropped
;
dev_kfree_skb_any
(
skb
);
goto
out
;
}
...
...
@@ -700,8 +717,10 @@ void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
if
(
!
mcast
->
ah
)
{
if
(
skb_queue_len
(
&
mcast
->
pkt_queue
)
<
IPOIB_MAX_MCAST_QUEUE
)
skb_queue_tail
(
&
mcast
->
pkt_queue
,
skb
);
else
else
{
++
priv
->
stats
.
tx_dropped
;
dev_kfree_skb_any
(
skb
);
}
if
(
mcast
->
query
)
ipoib_dbg_mcast
(
priv
,
"no address vector, "
...
...
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