* Re: [PATCH net-next 2/2] ipv6: make lookups simpler and faster
From: David Miller @ 2013-10-09 4:07 UTC (permalink / raw)
To: eric.dumazet; +Cc: netdev
In-Reply-To: <20131008.232125.1605815898898029345.davem@davemloft.net>
Eric, I had to fix up l2tp_core.c to accomodate these changes due to
something that came in during the net --> net-next merge, please
double check my work.
Thanks.
^ permalink raw reply
* Re: [PATCH RFC 00/77] Re-design MSI/MSI-X interrupts enablement pattern
From: Benjamin Herrenschmidt @ 2013-10-09 4:24 UTC (permalink / raw)
To: H. Peter Anvin
Cc: Alexander Gordeev, linux-kernel, Bjorn Helgaas, Ralf Baechle,
Michael Ellerman, Martin Schwidefsky, Ingo Molnar, Tejun Heo,
Dan Williams, Andy King, Jon Mason, Matt Porter, linux-pci,
linux-mips, linuxppc-dev, linux390, linux-s390, x86, linux-ide,
iss_storagedev, linux-nvme, linux-rdma, netdev, e1000-devel,
linux-driver
In-Reply-To: <5254D397.9030307@zytor.com>
On Tue, 2013-10-08 at 20:55 -0700, H. Peter Anvin wrote:
> Why not add a minimum number to pci_enable_msix(), i.e.:
>
> pci_enable_msix(pdev, msix_entries, nvec, minvec)
>
> ... which means "nvec" is the number of interrupts *requested*, and
> "minvec" is the minimum acceptable number (otherwise fail).
Which is exactly what Ben (the other Ben :-) suggested and that I
supports...
Cheers,
Ben.
^ permalink raw reply
* Re: [PATCH] net: sh_eth: Fix RX packets errors on R8A7740
From: Simon Horman @ 2013-10-09 4:24 UTC (permalink / raw)
To: David Miller; +Cc: nh-ky, netdev, ryusuke.sakato.bx, sergei.shtylyov
In-Reply-To: <20131008.160446.1960731810404939922.davem@davemloft.net>
On Tue, Oct 08, 2013 at 04:04:46PM -0400, David Miller wrote:
> From: Nguyen Hong Ky <nh-ky@jinso.co.jp>
> Date: Mon, 7 Oct 2013 15:29:24 +0900
>
> > This patch will fix RX packets errors when receiving big size of data.
> > Moreover, I set suitable parameters for get more stable when receiving
> > packets.
> >
> > It was created on the top of mainline kernel v3.11.
> >
> > I tested this patch on Armadillo800eva, it appears to be working well.
> >
> > Would you please review and apply it for me.
>
> Applied, but at some point someone has to add definitions for the
> RMCR register fields so that this driver is not full of magic constants.
Sergei, would it be possible for you to address this?
^ permalink raw reply
* Re: [PATCH net-next 2/2] ipv6: make lookups simpler and faster
From: Eric Dumazet @ 2013-10-09 4:26 UTC (permalink / raw)
To: David Miller; +Cc: netdev
In-Reply-To: <20131009.000750.1849276529051781060.davem@davemloft.net>
On Wed, 2013-10-09 at 00:07 -0400, David Miller wrote:
> Eric, I had to fix up l2tp_core.c to accomodate these changes due to
> something that came in during the net --> net-next merge, please
> double check my work.
Sure I am doing a full check, because I received a kbuild-bot report
right now anyway.
Thanks !
^ permalink raw reply
* Re: [PATCH] net: sh_eth: Fix RX packets errors on R8A7740
From: Simon Horman @ 2013-10-09 4:28 UTC (permalink / raw)
To: Nguyen Hong Ky; +Cc: David S. Miller, netdev, Ryusuke Sakato, Sergei Shtylyov
In-Reply-To: <1381127365-6521-2-git-send-email-nh-ky@jinso.co.jp>
On Mon, Oct 07, 2013 at 03:29:25PM +0900, Nguyen Hong Ky wrote:
> This patch will fix RX packets errors when receiving big size
> of data by set bit RNC = 1.
>
> RNC - Receive Enable Control
>
> 0: Upon completion of reception of one frame, the E-DMAC writes
> the receive status to the descriptor and clears the RR bit in
> EDRRR to 0.
>
> 1: Upon completion of reception of one frame, the E-DMAC writes
> (writes back) the receive status to the descriptor. In addition,
> the E-DMAC reads the next descriptor and prepares for reception
> of the next frame.
>
> In addition, for get more stable when receiving packets, I set
> maximum size for the transmit/receive FIFO and inserts padding
> in receive data.
>
> Signed-off-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
I realise that this patch has been applied but regardless
I would like to acknowledge that it resolve a problem that
I observed this afternoon.
Without this patch I see the following on the console, many times:
net eth0: Receive FIFO Overflow
With this patch I do not see the warning message at all.
^ permalink raw reply
* Re: [Xen-devel] [PATCH net-next v2 5/5] xen-netback: enable IPv6 TCP GSO to the guest
From: annie li @ 2013-10-09 4:41 UTC (permalink / raw)
To: Paul Durrant; +Cc: xen-devel, netdev, Wei Liu, David Vrabel, Ian Campbell
In-Reply-To: <1381229896-18657-6-git-send-email-paul.durrant@citrix.com>
On 2013-10-8 18:58, Paul Durrant wrote:
> This patch adds code to handle SKB_GSO_TCPV6 skbs and construct appropriate
> extra or prefix segments to pass the large packet to the frontend. New
> xenstore flags, feature-gso-tcpv6 and feature-gso-tcpv6-prefix, are sampled
> to determine if the frontend is capable of handling such packets.
>
> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> Cc: Wei Liu <wei.liu2@citrix.com>
> Cc: David Vrabel <david.vrabel@citrix.com>
> Cc: Ian Campbell <ian.campbell@citrix.com>
> ---
> drivers/net/xen-netback/common.h | 6 +++--
> drivers/net/xen-netback/interface.c | 8 ++++--
> drivers/net/xen-netback/netback.c | 47 +++++++++++++++++++++++++++--------
> drivers/net/xen-netback/xenbus.c | 29 +++++++++++++++++++--
> 4 files changed, 74 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h
> index b4a9a3c..720b1ca 100644
> --- a/drivers/net/xen-netback/common.h
> +++ b/drivers/net/xen-netback/common.h
> @@ -87,6 +87,7 @@ struct pending_tx_info {
> struct xenvif_rx_meta {
> int id;
> int size;
> + int gso_type;
> int gso_size;
> };
>
> @@ -150,9 +151,10 @@ struct xenvif {
> u8 fe_dev_addr[6];
>
> /* Frontend feature information. */
> + int gso_mask;
> + int gso_prefix_mask;
I assume it is a flag instead of mask here, right? If it is mask, then 1
means disabling the gso.
> +
> u8 can_sg:1;
> - u8 gso:1;
> - u8 gso_prefix:1;
> u8 ip_csum:1;
> u8 ipv6_csum:1;
>
> diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c
> index cb0d8ea..3d11387 100644
> --- a/drivers/net/xen-netback/interface.c
> +++ b/drivers/net/xen-netback/interface.c
> @@ -214,8 +214,12 @@ static netdev_features_t xenvif_fix_features(struct net_device *dev,
>
> if (!vif->can_sg)
> features &= ~NETIF_F_SG;
> - if (!vif->gso && !vif->gso_prefix)
> + if (~(vif->gso_mask | vif->gso_prefix_mask) &
> + (1 << XEN_NETIF_GSO_TYPE_TCPV4))
Is it better to use XEN_NETIF_GSO_TYPE_TCPV4 directly and setting
gso_mask(gso_prefix_mask) with "|= XEN_NETIF_GSO_TYPE_TCPV4" or "|=
XEN_NETIF_GSO_TYPE_TCPV6" instead of "1 <<"?
> features &= ~NETIF_F_TSO;
> + if (~(vif->gso_mask | vif->gso_prefix_mask) &
> + (1 << XEN_NETIF_GSO_TYPE_TCPV6))
Same as above.
> + features &= ~NETIF_F_TSO6;
> if (!vif->ip_csum)
> features &= ~NETIF_F_IP_CSUM;
> if (!vif->ipv6_csum)
> @@ -320,7 +324,7 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid,
> dev->netdev_ops = &xenvif_netdev_ops;
> dev->hw_features = NETIF_F_SG |
> NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
> - NETIF_F_TSO;
> + NETIF_F_TSO | NETIF_F_TSO6;
> dev->features = dev->hw_features | NETIF_F_RXCSUM;
> SET_ETHTOOL_OPS(dev, &xenvif_ethtool_ops);
>
> diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
> index ac42f73..ee0d55c 100644
> --- a/drivers/net/xen-netback/netback.c
> +++ b/drivers/net/xen-netback/netback.c
> @@ -140,7 +140,7 @@ static int max_required_rx_slots(struct xenvif *vif)
> int max = DIV_ROUND_UP(vif->dev->mtu, PAGE_SIZE);
>
> /* XXX FIXME: RX path dependent on MAX_SKB_FRAGS */
> - if (vif->can_sg || vif->gso || vif->gso_prefix)
> + if (vif->can_sg || vif->gso_mask || vif->gso_prefix_mask)
> max += MAX_SKB_FRAGS + 1; /* extra_info + frags */
>
> return max;
> @@ -334,6 +334,7 @@ static void xenvif_gop_frag_copy(struct xenvif *vif, struct sk_buff *skb,
> struct gnttab_copy *copy_gop;
> struct xenvif_rx_meta *meta;
> unsigned long bytes;
> + int gso_type;
>
> /* Data must not cross a page boundary. */
> BUG_ON(size + offset > PAGE_SIZE<<compound_order(page));
> @@ -392,7 +393,14 @@ static void xenvif_gop_frag_copy(struct xenvif *vif, struct sk_buff *skb,
> }
>
> /* Leave a gap for the GSO descriptor. */
> - if (*head && skb_shinfo(skb)->gso_size && !vif->gso_prefix)
> + if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4)
> + gso_type = XEN_NETIF_GSO_TYPE_TCPV4;
> + else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6)
> + gso_type = XEN_NETIF_GSO_TYPE_TCPV6;
> + else
> + gso_type = 0;
> +
> + if (*head && ((1 << gso_type) & vif->gso_prefix_mask))
Same
> vif->rx.req_cons++;
>
> *head = 0; /* There must be something in this buffer now. */
> @@ -423,14 +431,28 @@ static int xenvif_gop_skb(struct sk_buff *skb,
> unsigned char *data;
> int head = 1;
> int old_meta_prod;
> + int gso_type;
> + int gso_size;
>
> old_meta_prod = npo->meta_prod;
>
> + if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4) {
> + gso_type = XEN_NETIF_GSO_TYPE_TCPV4;
> + gso_size = skb_shinfo(skb)->gso_size;
> + } else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) {
> + gso_type = XEN_NETIF_GSO_TYPE_TCPV6;
> + gso_size = skb_shinfo(skb)->gso_size;
> + } else {
> + gso_type = 0;
> + gso_size = 0;
> + }
> +
> /* Set up a GSO prefix descriptor, if necessary */
> - if (skb_shinfo(skb)->gso_size && vif->gso_prefix) {
> + if ((1 << gso_type) & vif->gso_prefix_mask) {
Same
> req = RING_GET_REQUEST(&vif->rx, vif->rx.req_cons++);
> meta = npo->meta + npo->meta_prod++;
> - meta->gso_size = skb_shinfo(skb)->gso_size;
> + meta->gso_type = gso_type;
> + meta->gso_size = gso_size;
> meta->size = 0;
> meta->id = req->id;
> }
> @@ -438,10 +460,13 @@ static int xenvif_gop_skb(struct sk_buff *skb,
> req = RING_GET_REQUEST(&vif->rx, vif->rx.req_cons++);
> meta = npo->meta + npo->meta_prod++;
>
> - if (!vif->gso_prefix)
> - meta->gso_size = skb_shinfo(skb)->gso_size;
> - else
> + if ((1 << gso_type) & vif->gso_mask) {
Same
> + meta->gso_type = gso_type;
> + meta->gso_size = gso_size;
> + } else {
> + meta->gso_type = 0;
> meta->gso_size = 0;
> + }
>
> meta->size = 0;
> meta->id = req->id;
> @@ -587,7 +612,8 @@ void xenvif_rx_action(struct xenvif *vif)
>
> vif = netdev_priv(skb->dev);
>
> - if (vif->meta[npo.meta_cons].gso_size && vif->gso_prefix) {
> + if ((1 << vif->meta[npo.meta_cons].gso_type) &
> + vif->gso_prefix_mask) {
> resp = RING_GET_RESPONSE(&vif->rx,
> vif->rx.rsp_prod_pvt++);
>
> @@ -624,7 +650,8 @@ void xenvif_rx_action(struct xenvif *vif)
> vif->meta[npo.meta_cons].size,
> flags);
>
> - if (vif->meta[npo.meta_cons].gso_size && !vif->gso_prefix) {
> + if ((1 << vif->meta[npo.meta_cons].gso_type) &
Same
> + vif->gso_mask) {
> struct xen_netif_extra_info *gso =
> (struct xen_netif_extra_info *)
> RING_GET_RESPONSE(&vif->rx,
> @@ -632,8 +659,8 @@ void xenvif_rx_action(struct xenvif *vif)
>
> resp->flags |= XEN_NETRXF_extra_info;
>
> + gso->u.gso.type = vif->meta[npo.meta_cons].gso_type;
> gso->u.gso.size = vif->meta[npo.meta_cons].gso_size;
> - gso->u.gso.type = XEN_NETIF_GSO_TYPE_TCPV4;
> gso->u.gso.pad = 0;
> gso->u.gso.features = 0;
>
> diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
> index 389fa72..4894256 100644
> --- a/drivers/net/xen-netback/xenbus.c
> +++ b/drivers/net/xen-netback/xenbus.c
> @@ -573,15 +573,40 @@ static int connect_rings(struct backend_info *be)
> val = 0;
> vif->can_sg = !!val;
>
> + vif->gso_mask = 0;
> + vif->gso_prefix_mask = 0;
> +
> if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-gso-tcpv4",
> "%d", &val) < 0)
> val = 0;
> - vif->gso = !!val;
> + if (val)
> + vif->gso_mask = 1 << XEN_NETIF_GSO_TYPE_TCPV4;
Same: |= XEN_NETIF_GSO_TYPE_TCPV4;
>
> if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-gso-tcpv4-prefix",
> "%d", &val) < 0)
> val = 0;
> - vif->gso_prefix = !!val;
> + if (val)
> + vif->gso_prefix_mask = 1 << XEN_NETIF_GSO_TYPE_TCPV4;
Same as above.
Thanks
Annie
^ permalink raw reply
* [PATCH net-next] udp: fix a typo in __udp4_lib_mcast_demux_lookup
From: Eric Dumazet @ 2013-10-09 4:47 UTC (permalink / raw)
To: David Miller; +Cc: shawn.bohrer, netdev, tomk, sbohrer
In-Reply-To: <20131008.165147.1204109363656237950.davem@davemloft.net>
From: Eric Dumazet <edumazet@google.com>
At this point sk might contain garbage.
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 4226c53..9f27bb8 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1847,7 +1847,7 @@ begin:
if (count != 1 ||
unlikely(!atomic_inc_not_zero_hint(&result->sk_refcnt, 2)))
result = NULL;
- else if (unlikely(!__udp_is_mcast_sock(net, sk,
+ else if (unlikely(!__udp_is_mcast_sock(net, result,
loc_port, loc_addr,
rmt_port, rmt_addr,
dif, hnum))) {
^ permalink raw reply related
* [PATCH net-next] net: fix build errors if ipv6 is disabled
From: Eric Dumazet @ 2013-10-09 5:06 UTC (permalink / raw)
To: David Miller; +Cc: netdev
From: Eric Dumazet <edumazet@google.com>
CONFIG_IPV6=n is still a valid choice ;)
It appears we can remove dead code.
Reported-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
include/net/ip6_checksum.h | 2 ++
net/ipv4/ping.c | 8 +++++---
net/ipv4/tcp_metrics.c | 4 ++++
net/sunrpc/svcsock.c | 2 ++
security/lsm_audit.c | 2 ++
5 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/include/net/ip6_checksum.h b/include/net/ip6_checksum.h
index 1944406..9e3c540 100644
--- a/include/net/ip6_checksum.h
+++ b/include/net/ip6_checksum.h
@@ -66,12 +66,14 @@ static inline void __tcp_v6_send_check(struct sk_buff *skb,
}
}
+#if IS_ENABLED(CONFIG_IPV6)
static inline void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb)
{
struct ipv6_pinfo *np = inet6_sk(sk);
__tcp_v6_send_check(skb, &np->saddr, &sk->sk_v6_daddr);
}
+#endif
int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh, int proto);
#endif
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
index ccefc07..a10988a 100644
--- a/net/ipv4/ping.c
+++ b/net/ipv4/ping.c
@@ -415,10 +415,12 @@ int ping_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
(int)sk->sk_bound_dev_if);
err = 0;
- if ((sk->sk_family == AF_INET && isk->inet_rcv_saddr) ||
- (sk->sk_family == AF_INET6 &&
- !ipv6_addr_any(&sk->sk_v6_rcv_saddr)))
+ if (sk->sk_family == AF_INET && isk->inet_rcv_saddr)
sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#if IS_ENABLED(CONFIG_IPV6)
+ if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr)
+ sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#endif
if (snum)
sk->sk_userlocks |= SOCK_BINDPORT_LOCK;
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c
index 27535fd..8fcc2cb 100644
--- a/net/ipv4/tcp_metrics.c
+++ b/net/ipv4/tcp_metrics.c
@@ -251,10 +251,12 @@ static struct tcp_metrics_block *__tcp_get_metrics_tw(struct inet_timewait_sock
addr.addr.a4 = tw->tw_daddr;
hash = (__force unsigned int) addr.addr.a4;
break;
+#if IS_ENABLED(CONFIG_IPV6)
case AF_INET6:
*(struct in6_addr *)addr.addr.a6 = tw->tw_v6_daddr;
hash = ipv6_addr_hash(&tw->tw_v6_daddr);
break;
+#endif
default:
return NULL;
}
@@ -286,10 +288,12 @@ static struct tcp_metrics_block *tcp_get_metrics(struct sock *sk,
addr.addr.a4 = inet_sk(sk)->inet_daddr;
hash = (__force unsigned int) addr.addr.a4;
break;
+#if IS_ENABLED(CONFIG_IPV6)
case AF_INET6:
*(struct in6_addr *)addr.addr.a6 = sk->sk_v6_daddr;
hash = ipv6_addr_hash(&sk->sk_v6_daddr);
break;
+#endif
default:
return NULL;
}
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 0045c7c..b6e59f0 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -291,12 +291,14 @@ static int svc_one_sock_name(struct svc_sock *svsk, char *buf, int remaining)
&inet_sk(sk)->inet_rcv_saddr,
inet_sk(sk)->inet_num);
break;
+#if IS_ENABLED(CONFIG_IPV6)
case PF_INET6:
len = snprintf(buf, remaining, "ipv6 %s %pI6 %d\n",
proto_name,
&sk->sk_v6_rcv_saddr,
inet_sk(sk)->inet_num);
break;
+#endif
default:
len = snprintf(buf, remaining, "*unknown-%d*\n",
sk->sk_family);
diff --git a/security/lsm_audit.c b/security/lsm_audit.c
index 80554fc..234bc2a 100644
--- a/security/lsm_audit.c
+++ b/security/lsm_audit.c
@@ -302,6 +302,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
"faddr", "fport");
break;
}
+#if IS_ENABLED(CONFIG_IPV6)
case AF_INET6: {
struct inet_sock *inet = inet_sk(sk);
@@ -313,6 +314,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
"faddr", "fport");
break;
}
+#endif
case AF_UNIX:
u = unix_sk(sk);
if (u->path.dentry) {
^ permalink raw reply related
* Re: [PATCH net-next 2/2] ipv6: make lookups simpler and faster
From: Eric Dumazet @ 2013-10-09 5:11 UTC (permalink / raw)
To: David Miller; +Cc: netdev
In-Reply-To: <20131009.000750.1849276529051781060.davem@davemloft.net>
On Wed, 2013-10-09 at 00:07 -0400, David Miller wrote:
> Eric, I had to fix up l2tp_core.c to accomodate these changes due to
> something that came in during the net --> net-next merge, please
> double check my work.
Your changes in l2tp_core.c looks fine to me, thanks !
^ permalink raw reply
* Re: [PATCH] net: sh_eth: Fix RX packets errors on R8A7740
From: Simon Horman @ 2013-10-09 5:26 UTC (permalink / raw)
To: Nguyen Hong Ky; +Cc: David S. Miller, netdev, Ryusuke Sakato, Sergei Shtylyov
In-Reply-To: <20131009042826.GB16885@verge.net.au>
On Wed, Oct 09, 2013 at 01:28:26PM +0900, Simon Horman wrote:
> On Mon, Oct 07, 2013 at 03:29:25PM +0900, Nguyen Hong Ky wrote:
> > This patch will fix RX packets errors when receiving big size
> > of data by set bit RNC = 1.
> >
> > RNC - Receive Enable Control
> >
> > 0: Upon completion of reception of one frame, the E-DMAC writes
> > the receive status to the descriptor and clears the RR bit in
> > EDRRR to 0.
> >
> > 1: Upon completion of reception of one frame, the E-DMAC writes
> > (writes back) the receive status to the descriptor. In addition,
> > the E-DMAC reads the next descriptor and prepares for reception
> > of the next frame.
> >
> > In addition, for get more stable when receiving packets, I set
> > maximum size for the transmit/receive FIFO and inserts padding
> > in receive data.
> >
> > Signed-off-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
>
> I realise that this patch has been applied but regardless
> I would like to acknowledge that it resolve a problem that
> I observed this afternoon.
>
> Without this patch I see the following on the console, many times:
>
> net eth0: Receive FIFO Overflow
>
> With this patch I do not see the warning message at all.
Scratch that, I am still seeing the messages with this patch applied.
^ permalink raw reply
* Re: [PATCH] net: sh_eth: Fix RX packets errors on R8A7740
From: Nguyen Hong Ky @ 2013-10-09 5:38 UTC (permalink / raw)
To: Simon Horman; +Cc: David S. Miller, netdev, Ryusuke Sakato, Sergei Shtylyov
In-Reply-To: <20131009052617.GC16885@verge.net.au>
On Wed, Oct 9, 2013 at 2:26 PM, Simon Horman <horms@verge.net.au> wrote:
> On Wed, Oct 09, 2013 at 01:28:26PM +0900, Simon Horman wrote:
>> On Mon, Oct 07, 2013 at 03:29:25PM +0900, Nguyen Hong Ky wrote:
>> > This patch will fix RX packets errors when receiving big size
>> > of data by set bit RNC = 1.
>> >
>> > RNC - Receive Enable Control
>> >
>> > 0: Upon completion of reception of one frame, the E-DMAC writes
>> > the receive status to the descriptor and clears the RR bit in
>> > EDRRR to 0.
>> >
>> > 1: Upon completion of reception of one frame, the E-DMAC writes
>> > (writes back) the receive status to the descriptor. In addition,
>> > the E-DMAC reads the next descriptor and prepares for reception
>> > of the next frame.
>> >
>> > In addition, for get more stable when receiving packets, I set
>> > maximum size for the transmit/receive FIFO and inserts padding
>> > in receive data.
>> >
>> > Signed-off-by: Nguyen Hong Ky <nh-ky@jinso.co.jp>
>>
>> I realise that this patch has been applied but regardless
>> I would like to acknowledge that it resolve a problem that
>> I observed this afternoon.
>>
>> Without this patch I see the following on the console, many times:
>>
>> net eth0: Receive FIFO Overflow
>>
>> With this patch I do not see the warning message at all.
>
> Scratch that, I am still seeing the messages with this patch applied.
>
Would you please confirm that it was patched in below function:
static struct sh_eth_cpu_data r8a7740_data = {...}
Thanks for your help,
Nguyen Hong Ky
^ permalink raw reply
* Re: [PATCH net-next] udp: fix a typo in __udp4_lib_mcast_demux_lookup
From: David Miller @ 2013-10-09 6:01 UTC (permalink / raw)
To: eric.dumazet; +Cc: shawn.bohrer, netdev, tomk, sbohrer
In-Reply-To: <1381294049.4971.3.camel@edumazet-glaptop.roam.corp.google.com>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Tue, 08 Oct 2013 21:47:29 -0700
> From: Eric Dumazet <edumazet@google.com>
>
> At this point sk might contain garbage.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied.
^ permalink raw reply
* Powered By Google
From: Google Corporation® @ 2013-10-08 23:25 UTC (permalink / raw)
[-- Attachment #1: Type: text/plain, Size: 663 bytes --]
Dear Google User,
You have been selected as a winner for using Google services. Find attached
email with more details.
Congratulations,
Matt Brittin.
CEO Google UK.
©2013 Google Corporation®
The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system.
[-- Attachment #2: Google_UK.pdf --]
[-- Type: application/pdf, Size: 189840 bytes --]
^ permalink raw reply
* I am sourcing for services of an Oversea Investment Manager (OIM) to manage the sum of US$32Million
From: Mark Williams @ 2013-10-09 6:06 UTC (permalink / raw)
[-- Attachment #1: Type: text/plain, Size: 22 bytes --]
READ MESSAGE ATTACHED
[-- Attachment #2: Investment Manager.txt --]
[-- Type: application/octet-stream, Size: 1550 bytes --]
OVERSEA INVESTMENT MANAGER
Dear Sir,
I am sourcing for services of an Oversea Investment Manager (OIM) to manage the sum of US$32Million, this amount represent an over invoiced amount of money from a contract that was awarded to an American Oil exploration company in 2007, one year later in 2008, the American company completed the contract and was fully paid by direct Wire transfer for the execution of the contract, leaving the over invoiced sum safely deposited in a special security account managed and monitored by the top officers of the corporation that I represent, this top officer are in charge of the day to day running of accounts and finance section including the auditing department of the corporation and have perfected all documents to back up the payment as to avoid any trace whatsoever, which makes the transaction 100% risk free.
My request is your assistance in receiving this money using a secured account that is able to take this money and thereafter you invest it for a period of 2 years on their behalf. You would be entitled to 25% of the total fund in question, while 5% will be set aside for any sundry expenses incurred by both parties in the course of this transaction.
As an administrative officer I was mandated to seek your indulgence on this matter, if this is acceptable to you, contact me strictly by markwilliams1@globomail.com stating your full name, address and private phone number Please DO NOT bothers to respond if you are not interested.
Yours Sincerely,
Mr. Mark Williams
^ permalink raw reply
* Re: [PATCH] tun: don't look at current when non-blocking
From: Jason Wang @ 2013-10-09 6:25 UTC (permalink / raw)
To: David Miller, mst; +Cc: netdev, linux-kernel, edumazet, xemul
In-Reply-To: <20131008.154614.1435858706789904414.davem@davemloft.net>
On 10/09/2013 03:46 AM, David Miller wrote:
> From: "Michael S. Tsirkin" <mst@redhat.com>
> Date: Sun, 6 Oct 2013 21:25:12 +0300
>
>> We play with a wait queue even if socket is
>> non blocking. This is an obvious waste.
>> Besides, it will prevent calling the non blocking
>> variant when current is not valid.
>>
>> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> Applied and queued up for -stable, thanks.
> --
Michael, I believe this is just an optimization or a required patch of
your following patches. So no need go for stable?
^ permalink raw reply
* Re: [PATCH net-next] net: fix build errors if ipv6 is disabled
From: David Miller @ 2013-10-09 6:52 UTC (permalink / raw)
To: eric.dumazet; +Cc: netdev
In-Reply-To: <1381295165.4971.7.camel@edumazet-glaptop.roam.corp.google.com>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Tue, 08 Oct 2013 22:06:05 -0700
> +#if IS_ENABLED(CONFIG_IPV6)
> + if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr)
> + sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
> +#endif
Would you mind testing this with ipv6 enabled again? :-/
^ permalink raw reply
* Re: [PATCH v2 6/6] ipv6: Do route updating for redirect in ndisc layer
From: Duan Jiong @ 2013-10-09 7:00 UTC (permalink / raw)
To: hannes; +Cc: David Miller, netdev
In-Reply-To: <20131009014324.GA24368@order.stressinduktion.org>
于 2013年10月09日 09:43, Hannes Frederic Sowa 写道:
> Hi Duan!
>
> On Wed, Sep 18, 2013 at 06:13:37AM +0200, Hannes Frederic Sowa wrote:
>> Especially because redirects also help in the on-link determination (same
>> RFC, section 8), I changed my mind and am still in favour of updating it
>> in the ndisc layer. In my opinion we just have to consider all routing
>> tables and apply the update to every one which carries a valid next hop
>> to the source of the redirect (under consideration of the destination).
>>
>> This will be important if we actually try to get linux to correctly
>> implement the ipv6 subnet model (RFC 5942, Section 4 Rule 1). In that
>> case we are not allowed to assume nodes on-link even if they would match
>> the same prefix as a locally configured address.
>
> I am playing around with a simple patch which does suppress adding routing
> information for the on-link assumption we currently do in linux.
>
> Are you intereseted in following up on this? I still do think we should update
> not only the routing table the socket uses but all routing tables which have a
> valid route towards the router which emitted the redirect.
>
No, thanks, i have got other things on my mind, more important, but i will
pay attention to it.
Thanks,
Duan.
> I try to check if we actually handle redirect messages when ECMP routes are in
> use correctly.
>
^ permalink raw reply
* [PATCH v2] mac80211: port CCMP to cryptoapi's CCM driver
From: Ard Biesheuvel @ 2013-10-09 7:56 UTC (permalink / raw)
To: linux-wireless, netdev; +Cc: patches, johannes, David.Laight, Ard Biesheuvel
Use the generic CCM aead chaining mode driver rather than a local
implementation that sits right on top of the core AES cipher.
This allows the use of accelerated implementations of either
CCM as a whole or the CTR mode which it encapsulates.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
Changes since v1:
- use a better way to allocate the variable size aead_request struct on the
stack;
- pass only a single data pointer argument as we always encrypt/decrypt in
place;
- add a comment about how vector b_0 is generated.
net/mac80211/Kconfig | 1 +
net/mac80211/aes_ccm.c | 169 ++++++++++++++++---------------------------------
net/mac80211/aes_ccm.h | 14 ++--
net/mac80211/key.h | 2 +-
net/mac80211/wpa.c | 41 ++++++------
5 files changed, 85 insertions(+), 142 deletions(-)
diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig
index 62535fe..dc31ec3 100644
--- a/net/mac80211/Kconfig
+++ b/net/mac80211/Kconfig
@@ -4,6 +4,7 @@ config MAC80211
select CRYPTO
select CRYPTO_ARC4
select CRYPTO_AES
+ select CRYPTO_CCM
select CRC32
select AVERAGE
---help---
diff --git a/net/mac80211/aes_ccm.c b/net/mac80211/aes_ccm.c
index be7614b9..7c7df47 100644
--- a/net/mac80211/aes_ccm.c
+++ b/net/mac80211/aes_ccm.c
@@ -2,6 +2,8 @@
* Copyright 2003-2004, Instant802 Networks, Inc.
* Copyright 2005-2006, Devicescape Software, Inc.
*
+ * Rewrite: Copyright (C) 2013 Linaro Ltd <ard.biesheuvel@linaro.org>
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
@@ -17,134 +19,75 @@
#include "key.h"
#include "aes_ccm.h"
-static void aes_ccm_prepare(struct crypto_cipher *tfm, u8 *scratch, u8 *a)
+void ieee80211_aes_ccm_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+ u8 *data, size_t data_len, u8 *mic)
{
- int i;
- u8 *b_0, *aad, *b, *s_0;
-
- b_0 = scratch + 3 * AES_BLOCK_SIZE;
- aad = scratch + 4 * AES_BLOCK_SIZE;
- b = scratch;
- s_0 = scratch + AES_BLOCK_SIZE;
-
- crypto_cipher_encrypt_one(tfm, b, b_0);
+ struct scatterlist assoc, pt, ct[2];
+ struct {
+ struct aead_request req;
+ u8 priv[crypto_aead_reqsize(tfm)];
+ } aead_req;
- /* Extra Authenticate-only data (always two AES blocks) */
- for (i = 0; i < AES_BLOCK_SIZE; i++)
- aad[i] ^= b[i];
- crypto_cipher_encrypt_one(tfm, b, aad);
+ memset(&aead_req, 0, sizeof(aead_req));
- aad += AES_BLOCK_SIZE;
+ sg_init_one(&pt, data, data_len);
+ sg_init_one(&assoc, &aad[2], be16_to_cpup((__be16 *)aad));
+ sg_init_table(ct, 2);
+ sg_set_buf(&ct[0], data, data_len);
+ sg_set_buf(&ct[1], mic, IEEE80211_CCMP_MIC_LEN);
- for (i = 0; i < AES_BLOCK_SIZE; i++)
- aad[i] ^= b[i];
- crypto_cipher_encrypt_one(tfm, a, aad);
+ aead_request_set_tfm(&aead_req.req, tfm);
+ aead_request_set_assoc(&aead_req.req, &assoc, assoc.length);
+ aead_request_set_crypt(&aead_req.req, &pt, ct, data_len, b_0);
- /* Mask out bits from auth-only-b_0 */
- b_0[0] &= 0x07;
-
- /* S_0 is used to encrypt T (= MIC) */
- b_0[14] = 0;
- b_0[15] = 0;
- crypto_cipher_encrypt_one(tfm, s_0, b_0);
+ crypto_aead_encrypt(&aead_req.req);
}
-
-void ieee80211_aes_ccm_encrypt(struct crypto_cipher *tfm, u8 *scratch,
- u8 *data, size_t data_len,
- u8 *cdata, u8 *mic)
+int ieee80211_aes_ccm_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+ u8 *data, size_t data_len, u8 *mic)
{
- int i, j, last_len, num_blocks;
- u8 *pos, *cpos, *b, *s_0, *e, *b_0;
-
- b = scratch;
- s_0 = scratch + AES_BLOCK_SIZE;
- e = scratch + 2 * AES_BLOCK_SIZE;
- b_0 = scratch + 3 * AES_BLOCK_SIZE;
-
- num_blocks = DIV_ROUND_UP(data_len, AES_BLOCK_SIZE);
- last_len = data_len % AES_BLOCK_SIZE;
- aes_ccm_prepare(tfm, scratch, b);
-
- /* Process payload blocks */
- pos = data;
- cpos = cdata;
- for (j = 1; j <= num_blocks; j++) {
- int blen = (j == num_blocks && last_len) ?
- last_len : AES_BLOCK_SIZE;
-
- /* Authentication followed by encryption */
- for (i = 0; i < blen; i++)
- b[i] ^= pos[i];
- crypto_cipher_encrypt_one(tfm, b, b);
-
- b_0[14] = (j >> 8) & 0xff;
- b_0[15] = j & 0xff;
- crypto_cipher_encrypt_one(tfm, e, b_0);
- for (i = 0; i < blen; i++)
- *cpos++ = *pos++ ^ e[i];
- }
-
- for (i = 0; i < IEEE80211_CCMP_MIC_LEN; i++)
- mic[i] = b[i] ^ s_0[i];
+ struct scatterlist assoc, pt, ct[2];
+ struct {
+ struct aead_request req;
+ u8 priv[crypto_aead_reqsize(tfm)];
+ } aead_req;
+
+ memset(&aead_req, 0, sizeof(aead_req));
+
+ sg_init_one(&pt, data, data_len);
+ sg_init_one(&assoc, &aad[2], be16_to_cpup((__be16 *)aad));
+ sg_init_table(ct, 2);
+ sg_set_buf(&ct[0], data, data_len);
+ sg_set_buf(&ct[1], mic, IEEE80211_CCMP_MIC_LEN);
+
+ aead_request_set_tfm(&aead_req.req, tfm);
+ aead_request_set_assoc(&aead_req.req, &assoc, assoc.length);
+ aead_request_set_crypt(&aead_req.req, ct, &pt,
+ data_len + IEEE80211_CCMP_MIC_LEN, b_0);
+
+ return crypto_aead_decrypt(&aead_req.req);
}
-
-int ieee80211_aes_ccm_decrypt(struct crypto_cipher *tfm, u8 *scratch,
- u8 *cdata, size_t data_len, u8 *mic, u8 *data)
+struct crypto_aead *ieee80211_aes_key_setup_encrypt(const u8 key[])
{
- int i, j, last_len, num_blocks;
- u8 *pos, *cpos, *b, *s_0, *a, *b_0;
-
- b = scratch;
- s_0 = scratch + AES_BLOCK_SIZE;
- a = scratch + 2 * AES_BLOCK_SIZE;
- b_0 = scratch + 3 * AES_BLOCK_SIZE;
-
- num_blocks = DIV_ROUND_UP(data_len, AES_BLOCK_SIZE);
- last_len = data_len % AES_BLOCK_SIZE;
- aes_ccm_prepare(tfm, scratch, a);
-
- /* Process payload blocks */
- cpos = cdata;
- pos = data;
- for (j = 1; j <= num_blocks; j++) {
- int blen = (j == num_blocks && last_len) ?
- last_len : AES_BLOCK_SIZE;
-
- /* Decryption followed by authentication */
- b_0[14] = (j >> 8) & 0xff;
- b_0[15] = j & 0xff;
- crypto_cipher_encrypt_one(tfm, b, b_0);
- for (i = 0; i < blen; i++) {
- *pos = *cpos++ ^ b[i];
- a[i] ^= *pos++;
- }
- crypto_cipher_encrypt_one(tfm, a, a);
- }
-
- for (i = 0; i < IEEE80211_CCMP_MIC_LEN; i++) {
- if ((mic[i] ^ s_0[i]) != a[i])
- return -1;
- }
-
- return 0;
-}
+ struct crypto_aead *tfm;
+ int err;
+ tfm = crypto_alloc_aead("ccm(aes)", 0, CRYPTO_ALG_ASYNC);
+ if (IS_ERR(tfm))
+ return tfm;
-struct crypto_cipher *ieee80211_aes_key_setup_encrypt(const u8 key[])
-{
- struct crypto_cipher *tfm;
+ err = crypto_aead_setkey(tfm, key, WLAN_KEY_LEN_CCMP);
+ if (!err)
+ err = crypto_aead_setauthsize(tfm, IEEE80211_CCMP_MIC_LEN);
+ if (!err)
+ return tfm;
- tfm = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC);
- if (!IS_ERR(tfm))
- crypto_cipher_setkey(tfm, key, WLAN_KEY_LEN_CCMP);
-
- return tfm;
+ crypto_free_aead(tfm);
+ return ERR_PTR(err);
}
-
-void ieee80211_aes_key_free(struct crypto_cipher *tfm)
+void ieee80211_aes_key_free(struct crypto_aead *tfm)
{
- crypto_free_cipher(tfm);
+ crypto_free_aead(tfm);
}
diff --git a/net/mac80211/aes_ccm.h b/net/mac80211/aes_ccm.h
index 5b7d744..2c7ab19 100644
--- a/net/mac80211/aes_ccm.h
+++ b/net/mac80211/aes_ccm.h
@@ -12,13 +12,11 @@
#include <linux/crypto.h>
-struct crypto_cipher *ieee80211_aes_key_setup_encrypt(const u8 key[]);
-void ieee80211_aes_ccm_encrypt(struct crypto_cipher *tfm, u8 *scratch,
- u8 *data, size_t data_len,
- u8 *cdata, u8 *mic);
-int ieee80211_aes_ccm_decrypt(struct crypto_cipher *tfm, u8 *scratch,
- u8 *cdata, size_t data_len,
- u8 *mic, u8 *data);
-void ieee80211_aes_key_free(struct crypto_cipher *tfm);
+struct crypto_aead *ieee80211_aes_key_setup_encrypt(const u8 key[]);
+void ieee80211_aes_ccm_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+ u8 *data, size_t data_len, u8 *mic);
+int ieee80211_aes_ccm_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
+ u8 *data, size_t data_len, u8 *mic);
+void ieee80211_aes_key_free(struct crypto_aead *tfm);
#endif /* AES_CCM_H */
diff --git a/net/mac80211/key.h b/net/mac80211/key.h
index 036d57e..aaae0ed 100644
--- a/net/mac80211/key.h
+++ b/net/mac80211/key.h
@@ -83,7 +83,7 @@ struct ieee80211_key {
* Management frames.
*/
u8 rx_pn[IEEE80211_NUM_TIDS + 1][IEEE80211_CCMP_PN_LEN];
- struct crypto_cipher *tfm;
+ struct crypto_aead *tfm;
u32 replays; /* dot11RSNAStatsCCMPReplays */
} ccmp;
struct {
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index c9edfcb..62dc956 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -301,22 +301,16 @@ ieee80211_crypto_tkip_decrypt(struct ieee80211_rx_data *rx)
}
-static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *scratch,
+static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *b_0, u8 *aad,
int encrypted)
{
__le16 mask_fc;
int a4_included, mgmt;
u8 qos_tid;
- u8 *b_0, *aad;
u16 data_len, len_a;
unsigned int hdrlen;
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
- memset(scratch, 0, 6 * AES_BLOCK_SIZE);
-
- b_0 = scratch + 3 * AES_BLOCK_SIZE;
- aad = scratch + 4 * AES_BLOCK_SIZE;
-
/*
* Mask FC: zero subtype b4 b5 b6 (if not mgmt)
* Retry, PwrMgt, MoreData; set Protected
@@ -342,16 +336,22 @@ static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *scratch,
if (encrypted)
data_len -= IEEE80211_CCMP_MIC_LEN;
- /* First block, b_0 */
- b_0[0] = 0x59; /* flags: Adata: 1, M: 011, L: 001 */
+ /* In CCM, the initial vectors (IV) used for CTR mode encryption and CBC
+ * mode authentication are not allowed to collide, yet both are derived
+ * from this vector b_0. We only set L := 1 here to indicate that the
+ * data size can be represented in (L+1) bytes, and store the size in
+ * the top (L+1) bytes. The setting and clearing of other bits that is
+ * required to derive the two different IVs is handled by the CCM layer.
+ */
+ b_0[0] = 0x1;
+ put_unaligned_be16(data_len, &b_0[14]);
+
/* Nonce: Nonce Flags | A2 | PN
* Nonce Flags: Priority (b0..b3) | Management (b4) | Reserved (b5..b7)
*/
b_0[1] = qos_tid | (mgmt << 4);
memcpy(&b_0[2], hdr->addr2, ETH_ALEN);
memcpy(&b_0[8], pn, IEEE80211_CCMP_PN_LEN);
- /* l(m) */
- put_unaligned_be16(data_len, &b_0[14]);
/* AAD (extra authenticate-only data) / masked 802.11 header
* FC | A1 | A2 | A3 | SC | [A4] | [QC] */
@@ -407,7 +407,8 @@ static int ccmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
u8 *pos;
u8 pn[6];
u64 pn64;
- u8 scratch[6 * AES_BLOCK_SIZE];
+ u8 aad[2 * AES_BLOCK_SIZE];
+ u8 b_0[AES_BLOCK_SIZE];
if (info->control.hw_key &&
!(info->control.hw_key->flags & IEEE80211_KEY_FLAG_GENERATE_IV) &&
@@ -460,9 +461,9 @@ static int ccmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
return 0;
pos += IEEE80211_CCMP_HDR_LEN;
- ccmp_special_blocks(skb, pn, scratch, 0);
- ieee80211_aes_ccm_encrypt(key->u.ccmp.tfm, scratch, pos, len,
- pos, skb_put(skb, IEEE80211_CCMP_MIC_LEN));
+ ccmp_special_blocks(skb, pn, b_0, aad, 0);
+ ieee80211_aes_ccm_encrypt(key->u.ccmp.tfm, b_0, aad, pos, len,
+ skb_put(skb, IEEE80211_CCMP_MIC_LEN));
return 0;
}
@@ -525,16 +526,16 @@ ieee80211_crypto_ccmp_decrypt(struct ieee80211_rx_data *rx)
}
if (!(status->flag & RX_FLAG_DECRYPTED)) {
- u8 scratch[6 * AES_BLOCK_SIZE];
+ u8 aad[2 * AES_BLOCK_SIZE];
+ u8 b_0[AES_BLOCK_SIZE];
/* hardware didn't decrypt/verify MIC */
- ccmp_special_blocks(skb, pn, scratch, 1);
+ ccmp_special_blocks(skb, pn, b_0, aad, 1);
if (ieee80211_aes_ccm_decrypt(
- key->u.ccmp.tfm, scratch,
+ key->u.ccmp.tfm, b_0, aad,
skb->data + hdrlen + IEEE80211_CCMP_HDR_LEN,
data_len,
- skb->data + skb->len - IEEE80211_CCMP_MIC_LEN,
- skb->data + hdrlen + IEEE80211_CCMP_HDR_LEN))
+ skb->data + skb->len - IEEE80211_CCMP_MIC_LEN))
return RX_DROP_UNUSABLE;
}
--
1.8.1.2
^ permalink raw reply related
* Re: [PATCH] tun: don't look at current when non-blocking
From: Michael S. Tsirkin @ 2013-10-09 8:13 UTC (permalink / raw)
To: Jason Wang; +Cc: David Miller, netdev, linux-kernel, edumazet, xemul
In-Reply-To: <5254F6CF.8080606@redhat.com>
On Wed, Oct 09, 2013 at 02:25:19PM +0800, Jason Wang wrote:
> On 10/09/2013 03:46 AM, David Miller wrote:
> > From: "Michael S. Tsirkin" <mst@redhat.com>
> > Date: Sun, 6 Oct 2013 21:25:12 +0300
> >
> >> We play with a wait queue even if socket is
> >> non blocking. This is an obvious waste.
> >> Besides, it will prevent calling the non blocking
> >> variant when current is not valid.
> >>
> >> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > Applied and queued up for -stable, thanks.
> > --
>
> Michael, I believe this is just an optimization or a required patch of
> your following patches. So no need go for stable?
I don't think it's required for stable.
^ permalink raw reply
* Congratulations !!!
From: office4 @ 2013-10-09 8:14 UTC (permalink / raw)
To: Recipients
Ticket Number: 7PWYZ2008
Ballot Number: BT:12052008/20
Draw:#1471
Special Notification to you,You are receiving this email because you have just been picked for a total grand prize of One Million Dollars in the top 10 winners of the Coca-Cola Consumer`s Award for the year 2013: kindly send your:
Name:
Address:
Country:
Phone Number:
To Mr. Bruce Morgan
via Email: colaclaims13@msn.com
Telephone Number:+447010069098
^ permalink raw reply
* Re: [PATCH] veth: allow to setup multicast address for veth device
From: Gao feng @ 2013-10-09 8:58 UTC (permalink / raw)
To: davem; +Cc: Gao feng, netdev, pablo, edumazet, kaber, hannes
In-Reply-To: <1380876744-606-1-git-send-email-gaofeng@cn.fujitsu.com>
Hi David,
On 10/04/2013 04:52 PM, Gao feng wrote:
> We can only setup multicast address for network device when
> net_device_ops->ndo_set_rx_mode is not null.
>
> Some configurations need to add multicast address for net
> device, such as netfilter cluster match module.
>
> Add a fake ndo_set_rx_mode function to allow this operation.
>
> Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
I see this patch being marked as "Changes Requested" on patchwork.
Is there something I missed?
^ permalink raw reply
* MBIM device refusing to be enabled
From: Oliver Neukum @ 2013-10-09 8:59 UTC (permalink / raw)
To: Bjørn Mork; +Cc: Dan Williams, netdev
Hi,
I have a device which the kernel and MM (1.0) identify as MBIM.
I can transfer the PIN, but the device refuses to be enabled.
Any idea?
Regards
Oliver
2013-10-09T10:47:29.178266+02:00 linux-3m4i ModemManager[566]: <info>
logging: level 'DEBUG'
2013-10-09T10:47:38.225349+02:00 linux-3m4i dbus[559]: [system]
Activating service name='org.freedesktop.PackageKit' (using
servicehelper)
2013-10-09T10:47:38.740641+02:00 linux-3m4i dbus[559]: [system]
Successfully activated service 'org.freedesktop.PackageKit'
2013-10-09T10:47:52.007437+02:00 linux-3m4i ModemManager[566]: <debug>
Sending PIN...
2013-10-09T10:47:52.007696+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
80#012<<<<<< data =
03:00:00:00:50:00:00:00:0C:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:01:00:00:00:20:00:00:00:02:00:00:00:00:00:00:00:18:00:00:00:08:00:00:00:00:00:00:00:00:00:00:00:34:00:35:00:36:00:37:00
2013-10-09T10:47:52.007858+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 80#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 12#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'pin' (0x00000004)#012<<<<<< type = 'set' (0x00000001)
2013-10-09T10:47:52.523386+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
60#012>>>>>> data =
03:00:00:80:3C:00:00:00:0C:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:00:00:00:00:0C:00:00:00:03:00:00:00:01:00:00:00:03:00:00:00
2013-10-09T10:47:52.523709+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 60#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 12#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'pin' (0x00000004)
2013-10-09T10:47:52.523917+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
48#012<<<<<< data =
03:00:00:00:30:00:00:00:0D:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:52.524080+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 48#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 13#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<< type =
'query' (0x00000000)
2013-10-09T10:47:54.155263+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
112#012>>>>>> data =
07:00:00:80:70:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:44:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:1C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:54.156023+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 112#012>>>>>> type =
indicate-status (0x80000007)#012>>>>>> transaction = 0#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:54.219500+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
116#012>>>>>> data =
03:00:00:80:74:00:00:00:0D:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:44:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:1C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:54.220527+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 116#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 13#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:55.147385+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
144#012>>>>>> data =
07:00:00:80:90:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:55.156021+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 144#012>>>>>> type =
indicate-status (0x80000007)#012>>>>>> transaction = 0#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
=
'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:55.156724+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
48#012<<<<<< data =
03:00:00:00:30:00:00:00:0E:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:55.157383+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 48#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 14#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<< type =
'query' (0x00000000)
2013-10-09T10:47:55.371469+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
148#012>>>>>> data =
03:00:00:80:94:00:00:00:0E:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:55.382816+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 148#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 14#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:55.383892+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
48#012<<<<<< data =
03:00:00:00:30:00:00:00:0F:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:55.384610+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 48#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 15#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'pin' (0x00000004)#012<<<<<< type =
'query' (0x00000000)
2013-10-09T10:47:55.403320+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
60#012>>>>>> data =
03:00:00:80:3C:00:00:00:0F:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:04:00:00:00:00:00:00:00:0C:00:00:00:03:00:00:00:01:00:00:00:03:00:00:00
2013-10-09T10:47:55.404271+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 60#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 15#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'pin' (0x00000004)
2013-10-09T10:47:55.404934+02:00 linux-3m4i ModemManager[566]: <debug>
SIM is ready, and no need for the after SIM unlock
step...
2013-10-09T10:47:55.405665+02:00 linux-3m4i ModemManager[566]: <info>
Modem /org/freedesktop/ModemManager1/Modem/0: state changed (locked ->
initializing)
2013-10-09T10:47:55.406433+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't start parent initialization: Couldn't open ports during modem
initialization: Couldn't get primary
port
2013-10-09T10:47:55.407267+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
48#012<<<<<< data =
03:00:00:00:30:00:00:00:10:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:55.408019+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 48#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 16#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<< type =
'query' (0x00000000)
2013-10-09T10:47:55.723474+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
148#012>>>>>> data =
03:00:00:80:94:00:00:00:10:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:55.730738+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 148#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 16#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:55.731038+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
48#012<<<<<< data =
03:00:00:00:30:00:00:00:11:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:55.731245+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 48#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 17#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'subscriber-ready-status' (0x00000002)#012<<<<<< type =
'query' (0x00000000)
2013-10-09T10:47:55.819357+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
92#012>>>>>> data =
07:00:00:80:5C:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:09:00:00:00:30:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00
2013-10-09T10:47:55.820197+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 92#012>>>>>> type =
indicate-status (0x80000007)#012>>>>>> transaction = 0#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'register-state' (0x00000009)
2013-10-09T10:47:56.011348+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
148#012>>>>>> data =
03:00:00:80:94:00:00:00:11:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:00:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:56.019690+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 148#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 17#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:47:56.019982+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
48#012<<<<<< data =
03:00:00:00:30:00:00:00:12:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:05:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:56.020146+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 48#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 18#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'pin-list' (0x00000005)#012<<<<<< type = 'query' (0x00000000)
2013-10-09T10:47:56.203263+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
208#012>>>>>> data =
03:00:00:80:D0:00:00:00:12:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:05:00:00:00:00:00:00:00:A0:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:08:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:08:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:01:00:00:00:01:00:00:00:04:00:00:00:10:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:47:56.209923+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 208#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 18#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'pin-list' (0x00000005)
2013-10-09T10:47:56.210238+02:00 linux-3m4i ModemManager[566]: <debug>
USSD support check failed: 'No AT port available to run command'
2013-10-09T10:47:56.210451+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't initialize interface: 'USSD not supported'
2013-10-09T10:47:56.210665+02:00 linux-3m4i ModemManager[566]: <debug>
loading MEID...
2013-10-09T10:47:56.210891+02:00 linux-3m4i ModemManager[566]: <warn>
couldn't load MEID: 'No AT port available to run command'
2013-10-09T10:47:56.211103+02:00 linux-3m4i ModemManager[566]: <debug>
loading ESN...
2013-10-09T10:47:56.211279+02:00 linux-3m4i ModemManager[566]: <warn>
couldn't load ESN: 'No AT port available to run command'
2013-10-09T10:47:56.211455+02:00 linux-3m4i ModemManager[566]: <debug>
Messaging capabilities supported
2013-10-09T10:47:56.211648+02:00 linux-3m4i ModemManager[566]: <debug>
Supported storages loaded:
2013-10-09T10:47:56.211822+02:00 linux-3m4i ModemManager[566]: <debug>
mem1 (list/read/delete) storages: 'mt'
2013-10-09T10:47:56.211996+02:00 linux-3m4i ModemManager[566]: <debug>
mem2 (write/send) storages: 'mt'
2013-10-09T10:47:56.212164+02:00 linux-3m4i ModemManager[566]: <debug>
mem3 (reception) storages: 'mt'
2013-10-09T10:47:56.212334+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't initialize interface: 'Time not supported'
2013-10-09T10:47:56.212504+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't initialize interface: 'Firmware not supported'
2013-10-09T10:47:56.212689+02:00 linux-3m4i ModemManager[566]: <info>
Modem /org/freedesktop/ModemManager1/Modem/0: state changed
(initializing -> disabled)
2013-10-09T10:47:57.739388+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
96#012>>>>>> data =
07:00:00:80:60:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:53:3F:BE:EB:14:FE:44:67:9F:90:33:A2:23:E5:6C:3F:01:00:00:00:34:00:00:00:01:00:00:00:00:00:00:00:13:01:00:00:00:00:00:00:18:00:00:00:1A:00:00:00:2B:00:34:00:39:00:31:00:37:00:36:00:30:00:30:00:30:00:30:00:34:00:34:00:33:00:00:00
2013-10-09T10:47:57.740182+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 96#012>>>>>> type =
indicate-status (0x80000007)#012>>>>>> transaction = 0#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> service =
'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)#012>>>>>> cid =
'configuration' (0x00000001)
2013-10-09T10:47:59.659410+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
144#012>>>>>> data =
07:00:00:80:90:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:02:00:00:00:64:00:00:00:01:00:00:00:1C:00:00:00:1E:00:00:00:3C:00:00:00:26:00:00:00:00:00:00:00:00:00:00:00:32:00:36:00:32:00:30:00:37:00:33:00:39:00:34:00:37:00:36:00:32:00:34:00:36:00:31:00:34:00:00:00:38:00:39:00:34:00:39:00:32:00:32:00:36:00:30:00:37:00:30:00:36:00:39:00:32:00:31:00:34:00:35:00:39:00:34:00:30:00:00:00
2013-10-09T10:47:59.660803+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 144#012>>>>>> type =
indicate-status (0x80000007)#012>>>>>> transaction = 0#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'subscriber-ready-status' (0x00000002)
2013-10-09T10:48:02.923277+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
64#012>>>>>> data =
07:00:00:80:40:00:00:00:00:00:00:00:01:00:00:00:00:00:00:00:4B:F3:84:76:1E:6A:41:DB:B1:D8:BE:D2:89:C2:5B:DB:01:00:00:00:14:00:00:00:01:00:00:00:FA:00:00:00:23:00:00:00:50:00:00:00:10:00:00:00
2013-10-09T10:48:02.924258+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 64#012>>>>>> type =
indicate-status (0x80000007)#012>>>>>> transaction = 0#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> service =
'phonebook' (4bf38476-1e6a-41db-b1d8-bed289c25bdb)#012>>>>>> cid =
'configuration' (0x00000001)
2013-10-09T10:49:49.862932+02:00 linux-3m4i ModemManager[566]: <info>
Simple connect started...
2013-10-09T10:49:49.863198+02:00 linux-3m4i ModemManager[566]: <debug>
PIN: unspecified
2013-10-09T10:49:49.863414+02:00 linux-3m4i ModemManager[566]: <debug>
Operator ID: unspecified
2013-10-09T10:49:49.863622+02:00 linux-3m4i ModemManager[566]: <debug>
Allowed roaming: yes
2013-10-09T10:49:49.863775+02:00 linux-3m4i ModemManager[566]: <debug>
APN: internet
2013-10-09T10:49:49.863936+02:00 linux-3m4i ModemManager[566]: <debug>
IP family: unspecified
2013-10-09T10:49:49.864062+02:00 linux-3m4i ModemManager[566]: <debug>
Allowed authentication: unspecified
2013-10-09T10:49:49.864178+02:00 linux-3m4i ModemManager[566]: <debug>
User: unspecified
2013-10-09T10:49:49.864294+02:00 linux-3m4i ModemManager[566]: <debug>
Password: unspecified
2013-10-09T10:49:49.864410+02:00 linux-3m4i ModemManager[566]: <debug>
Number: *99#
2013-10-09T10:49:49.864525+02:00 linux-3m4i ModemManager[566]: <info>
Simple connect state (3/8): Enable
2013-10-09T10:49:49.865117+02:00 linux-3m4i ModemManager[566]: <debug>
Couldn't start parent enabling: Couldn't open ports during modem
enabling: Couldn't get primary port
2013-10-09T10:49:49.865308+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
48#012<<<<<< data =
03:00:00:00:30:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:00:00:00:00:00:00:00:00
2013-10-09T10:49:49.865435+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 48#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 19#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'radio-state' (0x00000003)#012<<<<<< type = 'query' (0x00000000)
2013-10-09T10:49:49.930237+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
56#012>>>>>> data =
03:00:00:80:38:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:00:00:00:00:08:00:00:00:01:00:00:00:00:00:00:00
2013-10-09T10:49:49.930545+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 56#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 19#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'None' (0x00000000)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'radio-state' (0x00000003)
2013-10-09T10:49:49.930718+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message...#012<<<<<< RAW:#012<<<<<< length =
52#012<<<<<< data =
03:00:00:00:34:00:00:00:14:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:01:00:00:00:04:00:00:00:01:00:00:00
2013-10-09T10:49:49.930887+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Sent message (translated)...#012<<<<<< Header:#012<<<<<<
length = 52#012<<<<<< type = command
(0x00000003)#012<<<<<< transaction = 20#012<<<<<< Fragment
header:#012<<<<<< total = 1#012<<<<<< current = 0#012<<<<<<
Contents:#012<<<<<< service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012<<<<<< cid
= 'radio-state' (0x00000003)#012<<<<<< type = 'set' (0x00000001)
2013-10-09T10:49:49.962281+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
56#012>>>>>> data =
03:00:00:80:38:00:00:00:14:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:02:00:00:00:08:00:00:00:01:00:00:00:00:00:00:00
2013-10-09T10:49:49.963360+02:00 linux-3m4i ModemManager[566]:
[/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
Header:#012>>>>>> length = 56#012>>>>>> type =
command-done (0x80000003)#012>>>>>> transaction = 20#012>>>>>>
Fragment header:#012>>>>>> total = 1#012>>>>>> current =
0#012>>>>>> Contents:#012>>>>>> status error =
'Failure' (0x00000002)#012>>>>>> service =
'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
= 'radio-state' (0x00000003)
2013-10-09T10:49:49.963974+02:00 linux-3m4i ModemManager[566]: <info>
Modem /org/freedesktop/ModemManager1/Modem/0: state changed (enabling ->
disabled)
^ permalink raw reply
* Re: [PATCH net-next] net: fix build errors if ipv6 is disabled
From: Eric Dumazet @ 2013-10-09 10:05 UTC (permalink / raw)
To: David Miller; +Cc: netdev
In-Reply-To: <20131009.025231.608686215035548132.davem@davemloft.net>
On Wed, 2013-10-09 at 02:52 -0400, David Miller wrote:
> From: Eric Dumazet <eric.dumazet@gmail.com>
> Date: Tue, 08 Oct 2013 22:06:05 -0700
>
> > +#if IS_ENABLED(CONFIG_IPV6)
> > + if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr)
> > + sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
> > +#endif
>
> Would you mind testing this with ipv6 enabled again? :-/
Humpf :(
^ permalink raw reply
* Re: MBIM device refusing to be enabled
From: Bjørn Mork @ 2013-10-09 10:05 UTC (permalink / raw)
To: Oliver Neukum; +Cc: Dan Williams, netdev
In-Reply-To: <1381309180.3464.2.camel@linux-fkkt.site>
Oliver Neukum <oliver@neukum.org> writes:
> I have a device which the kernel and MM (1.0) identify as MBIM.
> I can transfer the PIN, but the device refuses to be enabled.
> Any idea?
[..]
> 2013-10-09T10:49:49.930237+02:00 linux-3m4i ModemManager[566]:
> [/dev/cdc-wdm0] Received message...#012>>>>>> RAW:#012>>>>>> length =
> 56#012>>>>>> data =
> 03:00:00:80:38:00:00:00:13:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:03:00:00:00:00:00:00:00:08:00:00:00:01:00:00:00:00:00:00:00
> 2013-10-09T10:49:49.930545+02:00 linux-3m4i ModemManager[566]:
> [/dev/cdc-wdm0] Received message (translated)...#012>>>>>>
> Header:#012>>>>>> length = 56#012>>>>>> type =
> command-done (0x80000003)#012>>>>>> transaction = 19#012>>>>>>
> Fragment header:#012>>>>>> total = 1#012>>>>>> current =
> 0#012>>>>>> Contents:#012>>>>>> status error =
> 'None' (0x00000000)#012>>>>>> service =
> 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)#012>>>>>> cid
> = 'radio-state' (0x00000003)
It's a bit difficult to read these logs, but decoding the raw data
results in:
MBIM_MESSAGE_HEADER
MessageType: 0x80000003 (MBIM_COMMAND_DONE)
MessageLength: 56
TransactionId: 19
MBIM_FRAGMENT_HEADER
TotalFragments: 0x00000001
CurrentFragment: 0x00000000
BASIC_CONNECT (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
MBIM_CID_RADIO_STATE (3)
MBIM_STATUS_SUCCESS (0)
InformationBuffer [8]:
HwRadioState: on
SwRadioState: off
Which either means that the radio is disabled using rfkill, or that
there is a problem with the platform rfkill driver for your laptop.
In any case, this is the reason you cannot enable the modem.
Does "rfkill list" confirm that the radio is disabled? Can you change
it?
Bjørn
^ permalink raw reply
* [PATCH v2 net-next] net: fix build errors if ipv6 is disabled
From: Eric Dumazet @ 2013-10-09 10:05 UTC (permalink / raw)
To: David Miller; +Cc: netdev
In-Reply-To: <1381295165.4971.7.camel@edumazet-glaptop.roam.corp.google.com>
From: Eric Dumazet <edumazet@google.com>
CONFIG_IPV6=n is still a valid choice ;)
It appears we can remove dead code.
Reported-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
v2: add the missing right parenthesis in ping_bind()
include/net/ip6_checksum.h | 2 ++
net/ipv4/ping.c | 8 +++++---
net/ipv4/tcp_metrics.c | 4 ++++
net/sunrpc/svcsock.c | 2 ++
security/lsm_audit.c | 2 ++
5 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/include/net/ip6_checksum.h b/include/net/ip6_checksum.h
index 1944406..9e3c540 100644
--- a/include/net/ip6_checksum.h
+++ b/include/net/ip6_checksum.h
@@ -66,12 +66,14 @@ static inline void __tcp_v6_send_check(struct sk_buff *skb,
}
}
+#if IS_ENABLED(CONFIG_IPV6)
static inline void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb)
{
struct ipv6_pinfo *np = inet6_sk(sk);
__tcp_v6_send_check(skb, &np->saddr, &sk->sk_v6_daddr);
}
+#endif
int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh, int proto);
#endif
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
index ccefc07..a10988a 100644
--- a/net/ipv4/ping.c
+++ b/net/ipv4/ping.c
@@ -415,10 +415,12 @@ int ping_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
(int)sk->sk_bound_dev_if);
err = 0;
- if ((sk->sk_family == AF_INET && isk->inet_rcv_saddr) ||
- (sk->sk_family == AF_INET6 &&
- !ipv6_addr_any(&sk->sk_v6_rcv_saddr)))
+ if (sk->sk_family == AF_INET && isk->inet_rcv_saddr)
sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#if IS_ENABLED(CONFIG_IPV6)
+ if (sk->sk_family == AF_INET6 && !ipv6_addr_any(&sk->sk_v6_rcv_saddr))
+ sk->sk_userlocks |= SOCK_BINDADDR_LOCK;
+#endif
if (snum)
sk->sk_userlocks |= SOCK_BINDPORT_LOCK;
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c
index 27535fd..8fcc2cb 100644
--- a/net/ipv4/tcp_metrics.c
+++ b/net/ipv4/tcp_metrics.c
@@ -251,10 +251,12 @@ static struct tcp_metrics_block *__tcp_get_metrics_tw(struct inet_timewait_sock
addr.addr.a4 = tw->tw_daddr;
hash = (__force unsigned int) addr.addr.a4;
break;
+#if IS_ENABLED(CONFIG_IPV6)
case AF_INET6:
*(struct in6_addr *)addr.addr.a6 = tw->tw_v6_daddr;
hash = ipv6_addr_hash(&tw->tw_v6_daddr);
break;
+#endif
default:
return NULL;
}
@@ -286,10 +288,12 @@ static struct tcp_metrics_block *tcp_get_metrics(struct sock *sk,
addr.addr.a4 = inet_sk(sk)->inet_daddr;
hash = (__force unsigned int) addr.addr.a4;
break;
+#if IS_ENABLED(CONFIG_IPV6)
case AF_INET6:
*(struct in6_addr *)addr.addr.a6 = sk->sk_v6_daddr;
hash = ipv6_addr_hash(&sk->sk_v6_daddr);
break;
+#endif
default:
return NULL;
}
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 0045c7c..b6e59f0 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -291,12 +291,14 @@ static int svc_one_sock_name(struct svc_sock *svsk, char *buf, int remaining)
&inet_sk(sk)->inet_rcv_saddr,
inet_sk(sk)->inet_num);
break;
+#if IS_ENABLED(CONFIG_IPV6)
case PF_INET6:
len = snprintf(buf, remaining, "ipv6 %s %pI6 %d\n",
proto_name,
&sk->sk_v6_rcv_saddr,
inet_sk(sk)->inet_num);
break;
+#endif
default:
len = snprintf(buf, remaining, "*unknown-%d*\n",
sk->sk_family);
diff --git a/security/lsm_audit.c b/security/lsm_audit.c
index 80554fc..234bc2a 100644
--- a/security/lsm_audit.c
+++ b/security/lsm_audit.c
@@ -302,6 +302,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
"faddr", "fport");
break;
}
+#if IS_ENABLED(CONFIG_IPV6)
case AF_INET6: {
struct inet_sock *inet = inet_sk(sk);
@@ -313,6 +314,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
"faddr", "fport");
break;
}
+#endif
case AF_UNIX:
u = unix_sk(sk);
if (u->path.dentry) {
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox