<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/qualcomm, branch linux-4.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.16.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.16.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2018-05-30T06:17:29Z</updated>
<entry>
<title>net: qualcomm: rmnet: check for null ep to avoid null pointer dereference</title>
<updated>2018-05-30T06:17:29Z</updated>
<author>
<name>Colin Ian King</name>
<email>colin.king@canonical.com</email>
</author>
<published>2018-03-23T23:51:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1a98fc830ad2a0a427f20dcca8c090696a8cd473'/>
<id>urn:sha1:1a98fc830ad2a0a427f20dcca8c090696a8cd473</id>
<content type='text'>
[ Upstream commit 0c29ba1b43df1eb7d8beb03fc929d2dac4c15f7e ]

The call to rmnet_get_endpoint can potentially return NULL so check
for this to avoid any subsequent null pointer dereferences on a NULL
ep.

Detected by CoverityScan, CID#1465385 ("Dereference null return value")

Fixes: 23790ef12082 ("net: qualcomm: rmnet: Allow to configure flags for existing devices")
Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>net: qcom/emac: Use proper free methods during TX</title>
<updated>2018-03-07T17:21:03Z</updated>
<author>
<name>Hemanth Puranik</name>
<email>hpuranik@codeaurora.org</email>
</author>
<published>2018-03-06T02:48:06Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=cc5db3150e87fe7f7e947bf333b6c1c97f848ecb'/>
<id>urn:sha1:cc5db3150e87fe7f7e947bf333b6c1c97f848ecb</id>
<content type='text'>
This patch fixes the warning messages/call traces seen if DMA debug is
enabled, In case of fragmented skb's memory was allocated using
dma_map_page but freed using dma_unmap_single. This patch modifies buffer
allocations in TX path to use dma_map_page in all the places and
dma_unmap_page while freeing the buffers.

Signed-off-by: Hemanth Puranik &lt;hpuranik@codeaurora.org&gt;
Acked-by: Timur Tabi &lt;timur@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Fix possible null dereference in command processing</title>
<updated>2018-02-19T16:17:34Z</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-02-16T22:56:39Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f57bbaae7271a47dc6486d489c503faeb248b6d5'/>
<id>urn:sha1:f57bbaae7271a47dc6486d489c503faeb248b6d5</id>
<content type='text'>
If a command packet with invalid mux id is received, the packet would
not have a valid endpoint. This invalid endpoint maybe dereferenced
leading to a crash. Identified by manual code inspection.

Fixes: 3352e6c45760 ("net: qualcomm: rmnet: Convert the muxed endpoint to hlist")
Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Fix warning seen with 64 bit stats</title>
<updated>2018-02-19T16:17:34Z</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-02-16T22:56:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4dba8bbce94541c560940ac65ca9cd563fd43348'/>
<id>urn:sha1:4dba8bbce94541c560940ac65ca9cd563fd43348</id>
<content type='text'>
With CONFIG_DEBUG_PREEMPT enabled, a warning was seen on device
creation. This occurs due to the incorrect cpu API usage in
ndo_get_stats64 handler.

BUG: using smp_processor_id() in preemptible [00000000] code: rmnetcli/5743
caller is debug_smp_processor_id+0x1c/0x24
Call trace:
[&lt;ffffff9d48c8967c&gt;] dump_backtrace+0x0/0x2a8
[&lt;ffffff9d48c89bbc&gt;] show_stack+0x20/0x28
[&lt;ffffff9d4901fff8&gt;] dump_stack+0xa8/0xe0
[&lt;ffffff9d490421e0&gt;] check_preemption_disabled+0x104/0x108
[&lt;ffffff9d49042200&gt;] debug_smp_processor_id+0x1c/0x24
[&lt;ffffff9d494a36b0&gt;] rmnet_get_stats64+0x64/0x13c
[&lt;ffffff9d49b014e0&gt;] dev_get_stats+0x68/0xd8
[&lt;ffffff9d49d58df8&gt;] rtnl_fill_stats+0x54/0x140
[&lt;ffffff9d49b1f0b8&gt;] rtnl_fill_ifinfo+0x428/0x9cc
[&lt;ffffff9d49b23834&gt;] rtmsg_ifinfo_build_skb+0x80/0xf4
[&lt;ffffff9d49b23930&gt;] rtnetlink_event+0x88/0xb4
[&lt;ffffff9d48cd21b4&gt;] raw_notifier_call_chain+0x58/0x78
[&lt;ffffff9d49b028a4&gt;] call_netdevice_notifiers_info+0x48/0x78
[&lt;ffffff9d49b08bf8&gt;] __netdev_upper_dev_link+0x290/0x5e8
[&lt;ffffff9d49b08fcc&gt;] netdev_master_upper_dev_link+0x3c/0x48
[&lt;ffffff9d494a2e74&gt;] rmnet_newlink+0xf0/0x1c8
[&lt;ffffff9d49b23360&gt;] rtnl_newlink+0x57c/0x6c8
[&lt;ffffff9d49b2355c&gt;] rtnetlink_rcv_msg+0xb0/0x244
[&lt;ffffff9d49b5230c&gt;] netlink_rcv_skb+0xb4/0xdc
[&lt;ffffff9d49b204f4&gt;] rtnetlink_rcv+0x34/0x44
[&lt;ffffff9d49b51af0&gt;] netlink_unicast+0x1ec/0x294
[&lt;ffffff9d49b51fdc&gt;] netlink_sendmsg+0x320/0x390
[&lt;ffffff9d49ae6858&gt;] sock_sendmsg+0x54/0x60
[&lt;ffffff9d49ae91bc&gt;] SyS_sendto+0x1a0/0x1e4
[&lt;ffffff9d48c83770&gt;] el0_svc_naked+0x24/0x28

Fixes: 192c4b5d48f2 ("net: qualcomm: rmnet: Add support for 64 bit stats")
Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Fix crash on real dev unregistration</title>
<updated>2018-02-19T16:17:33Z</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-02-16T22:56:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b37f78f234bf4fd98979d6c3ccc0f85e508f978f'/>
<id>urn:sha1:b37f78f234bf4fd98979d6c3ccc0f85e508f978f</id>
<content type='text'>
With CONFIG_DEBUG_PREEMPT enabled, a crash with the following call
stack was observed when removing a real dev which had rmnet devices
attached to it.
To fix this, remove the netdev_upper link APIs and instead use the
existing information in rmnet_port and rmnet_priv to get the
association between real and rmnet devs.

BUG: sleeping function called from invalid context
in_atomic(): 0, irqs_disabled(): 0, pid: 5762, name: ip
Preemption disabled at:
[&lt;ffffff9d49043564&gt;] debug_object_active_state+0xa4/0x16c
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
Modules linked in:
PC is at ___might_sleep+0x13c/0x180
LR is at ___might_sleep+0x17c/0x180
[&lt;ffffff9d48ce0924&gt;] ___might_sleep+0x13c/0x180
[&lt;ffffff9d48ce09c0&gt;] __might_sleep+0x58/0x8c
[&lt;ffffff9d49d6253c&gt;] mutex_lock+0x2c/0x48
[&lt;ffffff9d48ed4840&gt;] kernfs_remove_by_name_ns+0x48/0xa8
[&lt;ffffff9d48ed6ec8&gt;] sysfs_remove_link+0x30/0x58
[&lt;ffffff9d49b05840&gt;] __netdev_adjacent_dev_remove+0x14c/0x1e0
[&lt;ffffff9d49b05914&gt;] __netdev_adjacent_dev_unlink_lists+0x40/0x68
[&lt;ffffff9d49b08820&gt;] netdev_upper_dev_unlink+0xb4/0x1fc
[&lt;ffffff9d494a29f0&gt;] rmnet_dev_walk_unreg+0x6c/0xc8
[&lt;ffffff9d49b00b40&gt;] netdev_walk_all_lower_dev_rcu+0x58/0xb4
[&lt;ffffff9d494a30fc&gt;] rmnet_config_notify_cb+0xf4/0x134
[&lt;ffffff9d48cd21b4&gt;] raw_notifier_call_chain+0x58/0x78
[&lt;ffffff9d49b028a4&gt;] call_netdevice_notifiers_info+0x48/0x78
[&lt;ffffff9d49b0b568&gt;] rollback_registered_many+0x230/0x3c8
[&lt;ffffff9d49b0b738&gt;] unregister_netdevice_many+0x38/0x94
[&lt;ffffff9d49b1e110&gt;] rtnl_delete_link+0x58/0x88
[&lt;ffffff9d49b201dc&gt;] rtnl_dellink+0xbc/0x1cc
[&lt;ffffff9d49b2355c&gt;] rtnetlink_rcv_msg+0xb0/0x244
[&lt;ffffff9d49b5230c&gt;] netlink_rcv_skb+0xb4/0xdc
[&lt;ffffff9d49b204f4&gt;] rtnetlink_rcv+0x34/0x44
[&lt;ffffff9d49b51af0&gt;] netlink_unicast+0x1ec/0x294
[&lt;ffffff9d49b51fdc&gt;] netlink_sendmsg+0x320/0x390
[&lt;ffffff9d49ae6858&gt;] sock_sendmsg+0x54/0x60
[&lt;ffffff9d49ae6f94&gt;] ___sys_sendmsg+0x298/0x2b0
[&lt;ffffff9d49ae98f8&gt;] SyS_sendmsg+0xb4/0xf0
[&lt;ffffff9d48c83770&gt;] el0_svc_naked+0x24/0x28

Fixes: ceed73a2cf4a ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation")
Fixes: 60d58f971c10 ("net: qualcomm: rmnet: Implement bridge mode")
Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qcom/emac: extend DMA mask to 46bits</title>
<updated>2018-01-24T21:32:29Z</updated>
<author>
<name>Wang Dongsheng</name>
<email>dongsheng.wang@hxt-semitech.com</email>
</author>
<published>2018-01-23T04:25:06Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=df262dbdcc31f5a89b39ff86a617f8e72c7949dd'/>
<id>urn:sha1:df262dbdcc31f5a89b39ff86a617f8e72c7949dd</id>
<content type='text'>
Bit TPD3[31] is used as a timestamp bit if PTP is enabled, but
it's used as an address bit if PTP is disabled.  Since PTP isn't
supported by the driver, we can extend the DMA address to 46 bits.

Signed-off-by: Wang Dongsheng &lt;dongsheng.wang@hxt-semitech.com&gt;
Acked-by: Timur Tabi &lt;timur@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Add support for GSO</title>
<updated>2018-01-08T18:58:50Z</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-01-07T18:36:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0c9214d5ed70486d7cfd99fa56fdc98b2c4c1962'/>
<id>urn:sha1:0c9214d5ed70486d7cfd99fa56fdc98b2c4c1962</id>
<content type='text'>
Real devices may support scatter gather(SG), so enable SG on rmnet
devices to use GSO. GSO reduces CPU cycles by 20% for a rate of
146Mpbs for a single stream TCP connection.

Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Add support for TX checksum offload</title>
<updated>2018-01-08T18:58:49Z</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-01-07T18:36:39Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=5eb5f8608ef118c2cfefc10c8dbbb89b14fac506'/>
<id>urn:sha1:5eb5f8608ef118c2cfefc10c8dbbb89b14fac506</id>
<content type='text'>
TX checksum offload applies to TCP / UDP packets which are not
fragmented using the MAPv4 checksum trailer. The following needs to be
done to have checksum computed in hardware -

1. Set the checksum start offset and inset offset.
2. Set the csum_enabled bit
3. Compute and set 1's complement of partial checksum field in
   transport header.

Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Handle command packets with checksum trailer</title>
<updated>2018-01-08T18:58:49Z</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-01-07T18:36:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=23c76eb74098902e41b0f2140d4bbc3af06a1547'/>
<id>urn:sha1:23c76eb74098902e41b0f2140d4bbc3af06a1547</id>
<content type='text'>
When using the MAPv4 packet format in conjunction with MAP commands,
a dummy DL checksum trailer will be appended to the packet. Before
this packet is sent out as an ACK, the DL checksum trailer needs to be
removed.

Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Add support for RX checksum offload</title>
<updated>2018-01-08T18:58:49Z</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-01-07T18:36:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bbd21b247cb596a426a1df0ad7658f141f558f86'/>
<id>urn:sha1:bbd21b247cb596a426a1df0ad7658f141f558f86</id>
<content type='text'>
When using the MAPv4 packet format, receive checksum offload can be
enabled in hardware. The checksum computation over pseudo header is
not offloaded but the rest of the checksum computation over
the payload is offloaded. This applies only for TCP / UDP packets
which are not fragmented.

rmnet validates the TCP/UDP checksum for the packet using the checksum
from the checksum trailer added to the packet by hardware. The
validation performed is as following -

1. Perform 1's complement over the checksum value from the trailer
2. Compute 1's complement checksum over IPv4 / IPv6 header and
   subtracts it from the value from step 1
3. Computes 1's complement checksum over IPv4 / IPv6 pseudo header and
   adds it to the value from step 2
4. Subtracts the checksum value from the TCP / UDP header from the
   value from step 3.
5. Compares the value from step 4 to the checksum value from the
   TCP / UDP header.
6. If the comparison in step 5 succeeds, CHECKSUM_UNNECESSARY is set
   and the packet is passed on to network stack. If there is a
   failure, then the packet is passed on as such without modifying
   the ip_summed field.

The checksum field is also checked for UDP checksum 0 as per RFC 768
and for unexpected TCP checksum of 0.

If checksum offload is disabled when using MAPv4 packet format in
receive path, the packet is queued as is to network stack without
the validations above.

Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
