Commit Graph

26 Commits (master)

Author SHA1 Message Date
Amitoj Kaur Chawla 56e2f23b72 caif: Remove unneeded header file
Drop redundant include of moduleparam.h

The Coccinelle semantic patch used to make this change is as follows:
@ includesmodule @

#include <linux/module.h>

@ depends on includesmodule @

- #include <linux/moduleparam.h>

Signed-off-by: Amitoj Kaur Chawla <>
Signed-off-by: David S. Miller <>
2016-06-28 05:26:14 -04:00
Nicolas Dichtel 8997c27ec4 caif: remove wrong dev_net_set() call
src_net points to the netns where the netlink message has been received. This
netns may be different from the netns where the interface is created (because
the user may add IFLA_NET_NS_[PID|FD]). In this case, src_net is the link netns.

It seems wrong to override the netns in the newlink() handler because if it
was not already src_net, it means that the user explicitly asks to create the
netdevice in another netns.

CC: Sjur Brændeland <>
CC: Dmitry Tarnyagin <>
Fixes: 8391c4aab1 ("caif: Bugfixes in CAIF netdevice for close and flow control")
Fixes: c412540063 ("caif-hsi: Add rtnl support")
Signed-off-by: Nicolas Dichtel <>
Signed-off-by: David S. Miller <>
2015-01-29 14:20:02 -08:00
Ying Xue a74e942694 caif: __dev_get_by_index instead of dev_get_by_index to find interface
The following call chains indicate that chnl_net_open() is under
rtnl_lock protection as __dev_open() is protected by rtnl_lock.
So if __dev_get_by_index() instead of dev_get_by_index() is used
to find interface handler in it, this would help us avoid to change
interface reference counter.


Cc: Dmitry Tarnyagin <>
Signed-off-by: Ying Xue <>
Signed-off-by: David S. Miller <>
2014-01-14 18:50:47 -08:00 c2cd0a560c caif: Remove bouncing address for Daniel Martensson
cc: Daniel Martensson <>
Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2013-04-23 13:25:51 -04:00 26ee65e680 caif: Remove my bouncing email address.
Remove my soon bouncing email address.
Also remove the "Contact:" line in file header.
The MAINTAINERS file is a better place to find the
contact person anyway.

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2013-04-23 13:25:51 -04:00
Silviu-Mihai Popescu 3bffc475f9 CAIF: fix indentation for function arguments
This lines up function arguments on second and subsequent lines at the
first column after the openning parenthesis of the first line.

Signed-off-by: Silviu-Mihai Popescu <>
Signed-off-by: David S. Miller <>
2013-03-07 16:24:45 -05:00
Jesper Juhl d92c7f8aab caif: Do not dereference NULL in chnl_recv_cb()
In net/caif/chnl_net.c::chnl_recv_cb() we call skb_header_pointer()
which may return NULL, but we do not check for a NULL pointer before
dereferencing it.
This patch adds such a NULL check and properly free's allocated memory
and return an error (-EINVAL) on failure - much better than crashing..

Signed-off-by: Jesper Juhl <>
Acked-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2012-08-20 02:47:49 -07:00
David S. Miller e65ac4d545 Merge git://
Pull in the 'net' tree to get CAIF bug fixes upon which
the following set of CAIF feature patches depend.

Signed-off-by: David S. Miller <>
2012-04-13 11:36:48 -04:00
Tomasz Gregorek 5c699fb7d8 caif: Fix memory leakage in the chnl_net.c.
Added kfree_skb() calls in the chnk_net.c file on
the error paths.

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2012-04-13 11:01:44 -04:00
David S. Miller 2809cec5b5 caif: Stop using NLA_PUT*().
These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <>
2012-04-02 04:33:44 -04:00 e3abcc2a85 caif: make zero a legal caif connetion id.
Connection ID configured through RTNL must allow zero as
connection id. If connection-id is not given when creating the
interface, configure a loopback interface using ifindex as

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2012-03-11 15:38:16 -07:00
Dan Carpenter af2ce213f6 caif: remove duplicate initialization
"priv" is initialized twice.  I kept the second one, because it is next
to the check for NULL.

Signed-off-by: Dan Carpenter <>
Signed-off-by: David S. Miller <>
2012-02-07 13:39:37 -05:00 576f3cc7fb caif: Add drop count for caif_net device.
Count dropped packets in CAIF Netdevice.

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2012-02-04 16:06:27 -05:00
Jesper Juhl dec17b7451 Remove redundant linux/version.h includes from net/
It was suggested by "make versioncheck" that the follwing includes of
linux/version.h are redundant:

  /home/jj/src/linux-2.6/net/caif/caif_dev.c: 14 linux/version.h not needed.
  /home/jj/src/linux-2.6/net/caif/chnl_net.c: 10 linux/version.h not needed.
  /home/jj/src/linux-2.6/net/ipv4/gre.c: 19 linux/version.h not needed.
  /home/jj/src/linux-2.6/net/netfilter/ipset/ip_set_core.c: 20 linux/version.h not needed.
  /home/jj/src/linux-2.6/net/netfilter/xt_set.c: 16 linux/version.h not needed.

and it seems that it is right.

Beyond manually inspecting the source files I also did a few build
tests with various configs to confirm that including the header in
those files is indeed not needed.

Here's a patch to remove the pointless includes.

Signed-off-by: Jesper Juhl <>
Acked-by: Jozsef Kadlecsik <>
Signed-off-by: David S. Miller <>
2011-06-21 16:03:17 -07:00
Alexey Dobriyan a6b7a40786 net: remove interrupt.h inclusion from netdevice.h
* remove interrupt.g inclusion from netdevice.h -- not needed
* fixup fallout, add interrupt.h and hardirq.h back where needed.

Signed-off-by: Alexey Dobriyan <>
Signed-off-by: David S. Miller <>
2011-06-06 22:55:11 -07:00 41be5a4a36 caif: Fix race when conditionally taking rtnl lock
Take the RTNL lock unconditionally when calling dev_close.
Taking the lock conditionally may cause race conditions.

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2011-06-01 21:13:53 -07:00 3f874adc4a caif: remove unesesarry exports
Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2011-05-15 17:45:56 -04:00 bee925db9a caif: prepare support for namespaces
Use struct net to reference CAIF configuration object instead of static variables.
Refactor functions caif_connect_client, caif_disconnect_client and squach
files cfcnfg.c and caif_config_utils.

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2011-05-15 17:45:55 -04:00 b3ccfbe409 caif: Protected in-flight packets using dev or sock refcont.
CAIF Socket Layer and ip-interface registers reference counters
in CAIF service layer. The functions sock_hold, sock_put and
dev_hold, dev_put are used by CAIF Stack to protect from freeing
memory while packets are in-flight.

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2011-05-15 17:45:55 -04:00
David S. Miller b2df5a8446 net/caif: Fix dangling list pointer in freed object on error.
rtnl_link_ops->setup(), and the "setup" callback passed to alloc_netdev*(),
cannot make state changes which need to be undone on failure.  There is
no cleanup mechanism available at this point.

So we have to add the caif private instance to the global list once we
are sure that register_netdev() has succedded in ->newlink().

Otherwise, if register_netdev() fails, the caller will invoke free_netdev()
and we will have a reference to freed up memory on the chnl_net_list.

Signed-off-by: David S. Miller <>
2011-02-08 14:31:31 -08:00
Kumar Sanghvi d7b92affba CAIF: Fix IPv6 support in receive path for GPRS/3G
Checks version field of IP in the receive path for GPRS/3G data
and appropriately sets the value of skb->protocol.

Signed-off-by: Sjur Braendeland <>
Signed-off-by: David S. Miller <>
2011-01-10 16:12:00 -08:00
Sjur Braendeland 9c44c9fa78 caif: Remove buggy re-definition of pr_debug
Remove debugging quirk redefining pr_debug to pr_warning.

Signed-off-by: Sjur Brændeland <>
Signed-off-by: David S. Miller <>
2010-09-21 18:05:30 -07:00
Joe Perches b31fa5bad5 net/caif: Use pr_fmt
This patch standardizes caif message logging prefixes.

Add #define pr_fmt(fmt) KBUILD_MODNAME ":%s(): " fmt, __func__
Add missing "\n"s to some logging messages
Convert pr_warning to pr_warn

This changes the logging message prefix from CAIF: to caif:
for all uses but caif_socket.c and chnl_net.c.  Those now use
their filename without extension.

Signed-off-by: Joe Perches <>
Signed-off-by: David S. Miller <>
2010-09-06 18:48:43 -07:00
Sjur Braendeland 2aa40aef9d caif: Use link layer MTU instead of fixed MTU
Previously CAIF supported maximum transfer size of ~4050.
The transfer size is now calculated dynamically based on the
link layers mtu size.

Signed-off-by: Sjur
Signed-off-by: David S. Miller <>
2010-06-20 19:46:06 -07:00
Sjur Braendeland 8391c4aab1 caif: Bugfixes in CAIF netdevice for close and flow control
o Bugfix: Flow control was causing the device to be destroyed.
o Bugfix: Handle CAIF channel connect failures.
o If the underlying link layer is gone the net-device is no longer removed,
  but closed.

Signed-off-by: Sjur Braendeland <>
Signed-off-by: David S. Miller <>
2010-04-28 12:55:14 -07:00
Sjur Braendeland cc36a070b5 net-caif: add CAIF netdevice
Adding GPRS Net Device for PDP Contexts.
The device can be managed by RTNL as defined in if_caif.h.

Signed-off-by: Sjur Braendeland <>
Signed-off-by: David S. Miller <>
2010-03-30 19:08:48 -07:00