summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-10-07net: hns: make arrays static, makes object smallerColin Ian King1-2/+2
Don't populate the arrays port_map and sl_map on the stack but instead make them static. Makes the object code smaller by 64 bytes. Before: text data bss dec hex filename 49575 6872 64 56511 dcbf hisilicon/hns/hns_dsaf_main.o After: text data bss dec hex filename 49350 7032 64 56446 dc7e hisilicon/hns/hns_dsaf_main.o (gcc version 9.2.1, amd64) Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07Merge branch 'net-tls-minor-micro-optimizations'David S. Miller5-24/+30
Jakub Kicinski says: ==================== net/tls: minor micro optimizations This set brings a number of minor code changes from my tree which don't have a noticeable impact on performance but seem reasonable nonetheless. First sk_msg_sg copy array is converted to a bitmap, zeroing that structure takes a lot of time, hence we should try to keep it small. Next two conditions are marked as unlikely, GCC seemed to had little trouble correctly reasoning about those. Patch 4 adds parameters to tls_device_decrypted() to avoid walking structures, as all callers already have the relevant pointers. Lastly two boolean members of TLS context structures are converted to a bitfield. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net/tls: store decrypted on a single bitJakub Kicinski2-4/+4
Use a single bit instead of boolean to remember if packet was already decrypted. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net/tls: store async_capable on a single bitJakub Kicinski2-4/+5
Store async_capable on a single bit instead of a full integer to save space. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net/tls: pass context to tls_device_decrypted()Jakub Kicinski3-6/+8
Avoid unnecessary pointer chasing and calculations, callers already have most of the state tls_device_decrypted() needs. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net/tls: make allocation failure unlikelyJakub Kicinski1-3/+2
Make sure GCC realizes it's unlikely that allocations will fail. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net/tls: mark sk->err being set as unlikelyJakub Kicinski1-1/+1
Tell GCC sk->err is not likely to be set. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: sockmap: use bitmap for copy infoJakub Kicinski2-6/+10
Don't use bool array in struct sk_msg_sg, save 12 bytes. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: core: use helper skb_ensure_writable in more placesHeiner Kallweit1-12/+8
Use helper skb_ensure_writable in two more places to simplify the code. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07ipv6: Make ipv6_mc_may_pull() return bool.David S. Miller1-3/+3
Consistent with how pskb_may_pull() also now does so. Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: core: change return type of pskb_may_pull to boolHeiner Kallweit1-3/+3
This function de-facto returns a bool, so let's change the return type accordingly. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07Merge branch 'ena-set_channels'David S. Miller3-93/+114
Sameeh Jubran says: ==================== ena: Support ethtool set_channels Difference from v2: * ethtool's set/get channels: Switched to using combined instead of separate rx/tx * Fixed error handling in set_channels * Fixed indentation and cosmetic issues as requested by Jakub Kicinski Difference from v1: * Dropped the print from patch 0002 - "net: ena: multiple queue creation related cleanups" as requested by David Miller ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: ena: ethtool: support set_channels callbackSameeh Jubran3-3/+35
Set channels callback enables the user to change the count of queues used by the driver using ethtool. We decided to currently support only equal number of rx and tx queues, this might change in the future. Also rename dev_up to dev_was_up in ena_update_queue_count() to make it clearer. Signed-off-by: Sameeh Jubran <sameehj@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: ena: remove redundant print of number of queuesSameeh Jubran1-2/+2
The number of queues can be derived using ethtool, no need to print it in ena_probe() Signed-off-by: Sameeh Jubran <sameehj@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: ena: make ethtool -l show correct max number of queuesSameeh Jubran3-25/+29
- Update ena_ethtool:ena_get_channels() to return adapter->max_io_queues so that ethtool -l returns the correct maximum queue number. - Change the name of ena_calc_io_queue_num() to ena_calc_max_io_queue_num() as it returns the maximum number of io queues and actual number of queues can be smaller if changed by ethtool -L which is implemented in a later commit. - Change variable name from io_queue_num to max_num_io_queues in ena_calc_max_io_queue_num() and ena_probe(). - Make all types of variables that convey the number and sizeof queues to be u32, for consistency with the API between the driver and the device. Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com> Signed-off-by: Sameeh Jubran <sameehj@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: ena: ethtool: get_channels: use combined onlySameeh Jubran1-8/+2
Since we use the same IRQ and NAPI to service RX and TX then we need to use a combined channel instead of rx and tx channels. Signed-off-by: Sameeh Jubran <sameehj@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: ena: multiple queue creation related cleanupsSameeh Jubran1-20/+11
- Rename ena_calc_queue_size() to ena_calc_io_queue_size() for clarity and consistency - Remove redundant number of io queues parameter in functions ena_enable_msix() and ena_enable_msix_and_set_admin_interrupts(), which already get adapter parameter, so use adapter->num_io_queues in the function instead. - Use the local variable ena_dev instead of ctx->ena_dev in ena_calc_io_queue_size - Fix multi row comment alignments Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com> Signed-off-by: Sameeh Jubran <sameehj@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: ena: change num_queues to num_io_queues for clarity and consistencySameeh Jubran3-44/+44
Most places in the code refer to the IO queues as io_queues and not simply queues. Examples - max_io_queues_per_vf, ENA_MAX_NUM_IO_QUEUES, ena_destroy_all_io_queues() etc.. We are also adding the new max_num_io_queues field to struct ena_adapter in the following commit. The changes included in this commit are: struct ena_adapter->num_queues => struct ena_adapter->num_io_queues Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com> Signed-off-by: Sameeh Jubran <sameehj@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07Merge branch 'samples-pktgen-allow-to-specify-destination-IP-range'David S. Miller11-65/+244
Daniel T. Lee says: ==================== samples: pktgen: allow to specify destination IP range Currently, pktgen script supports specify destination port range. To further extend the capabilities, this commit allows to specify destination IP range with CIDR when running pktgen script. Specifying destination IP range will be useful on various situation such as testing RSS/RPS with randomizing n-tuple. This patchset fixes the problem with checking the command result on proc_cmd, and add feature to allow destination IP range. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07samples: pktgen: allow to specify destination IP range (CIDR)Daniel T. Lee10-12/+55
Currently, kernel pktgen has the feature to specify destination address range for sending packet. (e.g. pgset "dst_min/dst_max") But on samples, each pktgen script doesn't have any option to achieve this. This commit adds the feature to specify the destination address range with CIDR. -d : ($DEST_IP) destination IP. CIDR (e.g. 198.18.0.0/15) is also allowed # ./pktgen_sample01_simple.sh -6 -d fe80::20/126 -p 3000 -n 4 # tcpdump ip6 and udp 05:14:18.082285 IP6 fe80::99.71 > fe80::23.3000: UDP, length 16 05:14:18.082564 IP6 fe80::99.43 > fe80::23.3000: UDP, length 16 05:14:18.083366 IP6 fe80::99.107 > fe80::22.3000: UDP, length 16 05:14:18.083585 IP6 fe80::99.97 > fe80::21.3000: UDP, length 16 Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07samples: pktgen: add helper functions for IP(v4/v6) CIDR parsingDaniel T. Lee1-3/+134
This commit adds CIDR parsing and IP validate helper function to parse single IP or range of IP with CIDR. (e.g. 198.18.0.0/15) Validating the address should be preceded prior to the parsing. Helpers will be used in prior to set target address in samples/pktgen. Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07samples: pktgen: fix proc_cmd command result check logicDaniel T. Lee1-6/+11
Currently, proc_cmd is used to dispatch command to 'pg_ctrl', 'pg_thread', 'pg_set'. proc_cmd is designed to check command result with grep the "Result:", but this might fail since this string is only shown in 'pg_thread' and 'pg_set'. This commit fixes this logic by grep-ing the "Result:" string only when the command is not for 'pg_ctrl'. For clarity of an execution flow, 'errexit' flag has been set. To cleanup pktgen on exit, trap has been added for EXIT signal. Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07samples: pktgen: make variable consistent with optionDaniel T. Lee8-44/+44
This commit changes variable names that can cause confusion. For example, variable DST_MIN is quite confusing since the keyword 'udp_dst_min' and keyword 'dst_min' is used with pg_ctrl. On the following commit, 'dst_min' will be used to set destination IP, and the existing variable name DST_MIN should be changed. Variable names are matched to the exact keyword used with pg_ctrl. Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com> Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07Merge branch 'netdevsim-implement-devlink-dev_info-op'David S. Miller2-1/+28
Jiri Pirko says: ==================== netdevsim: implement devlink dev_info op Initial implementation of devlink dev_info op - just driver name is filled up and sent to user. Bundled with selftest. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07selftests: add netdevsim devlink dev info testJiri Pirko1-1/+20
Add test to verify netdevsim driver name returned by devlink dev info. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07netdevsim: implement devlink dev_info opJiri Pirko1-0/+8
Do simple dev_info devlink operation implementation which only fills up the driver name. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-07net: devlink: fix reporter dump dumpitJiri Pirko1-1/+2
In order for attrs to be prepared for reporter dump dumpit callback, set GENL_DONT_VALIDATE_DUMP_STRICT instead of GENL_DONT_VALIDATE_DUMP. Fixes: ee85da535fe3 ("devlink: have genetlink code to parse the attrs during dumpit" Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06Merge branch 'stmmac-next'David S. Miller7-46/+245
Jose Abreu says: ==================== net: stmmac: Improvements for -next Improvements for -next. More info in commit logs. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: stmmac: Implement L3/L4 Filters in GMAC4+Jose Abreu3-0/+128
GMAC4+ cores support Layer 3 and Layer 4 filtering. Add the corresponding callbacks in these cores. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: stmmac: selftests: Add tests for VLAN Perfect FilteringJose Abreu1-37/+77
Add two new tests for VLAN Perfect Filtering. While at it, increase a little bit the tests strings lenght so that we can have more descriptive test names. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: stmmac: Fallback to VLAN Perfect filtering if HASH is not availableJose Abreu4-9/+40
If VLAN Hash Filtering is not available we can fallback to perfect filtering instead. Let's implement this in XGMAC and GMAC cores and let the user use this filter. VLAN VID=0 always passes filter so we check if more than 2 VLANs are created and return proper error code if so because perfect filtering only supports 1 VID at a time. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06nfc: s3fwrn5: fix platform_no_drv_owner.cocci warningYueHaibing1-1/+0
Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing <yuehaibing@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06nfc: nfcmrvl: fix platform_no_drv_owner.cocci warningYueHaibing1-1/+0
Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing <yuehaibing@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: dsa: ksz9477: fix platform_no_drv_owner.cocci warningYueHaibing1-1/+0
Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing <yuehaibing@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net/rds: Add missing include fileYueHaibing2-0/+2
Fix build error: net/rds/ib_cm.c: In function rds_dma_hdrs_alloc: net/rds/ib_cm.c:475:13: error: implicit declaration of function dma_pool_zalloc; did you mean mempool_alloc? [-Werror=implicit-function-declaration] hdrs[i] = dma_pool_zalloc(pool, GFP_KERNEL, &hdr_daddrs[i]); ^~~~~~~~~~~~~~~ mempool_alloc net/rds/ib.c: In function rds_ib_dev_free: net/rds/ib.c:111:3: error: implicit declaration of function dma_pool_destroy; did you mean mempool_destroy? [-Werror=implicit-function-declaration] dma_pool_destroy(rds_ibdev->rid_hdrs_pool); ^~~~~~~~~~~~~~~~ mempool_destroy Reported-by: Hulk Robot <hulkci@huawei.com> Fixes: 9b17f5884be4 ("net/rds: Use DMA memory pool allocation for rds_header") Signed-off-by: YueHaibing <yuehaibing@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06Merge branch 'mlxsw-Query-number-of-modules-from-firmware'David S. Miller7-62/+103
Ido Schimmel says: ==================== mlxsw: Query number of modules from firmware Vadim says: The patchset adds support for a new field "num_of_modules" of Management General Peripheral Information Register (MGPIR), providing the maximum number of QSFP modules, which can be supported by the system. It allows to obtain the number of QSFP modules directly from this field, as a static data, instead of old method of getting this info through "network port to QSFP module" mapping. With the old method, in case of port dynamic re-configuration some modules can logically "disappear" as a result of port split operations, which can cause some modules to appear missing. Such scenario can happen on a system equipped with a BMC card, while PCI chip driver at host CPU side can perform some ports "split" or "unsplit" operations, while BMC side I2C chip driver reads the "port-to-module" mapping. Add common API for FW "minor" and "subminor" versions validation and share it between PCI and I2C based drivers. Add FW version validation for "minimal" driver, because use of new field "num_of_modules" in MGPIR register is not backward compatible. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06mlxsw: minimal: Add validation for FW versionVadim Pasternak1-0/+30
Add validation for FW version in order to prevent driver initialization in case FW version is older than expected. FW version validation is necessary, because use of a new field 'num_of_modules' in MGPIR register is not backward compatible. FW 'minor' and 'subminor' versions are expected to be greater than or equal to 2000 and 1886, respectively. Signed-off-by: Vadim Pasternak <vadimp@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06mlxsw: core: Push minor/subminor fw version check into helperVadim Pasternak3-3/+16
Add new API for FW "minor" and "subminor" version validation for sharing it between "spectrum" and "minimal" drivers. Use it in "spectrum" driver. Signed-off-by: Vadim Pasternak <vadimp@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06mlxsw: thermal: Provide optimization for QSFP modules number detectionVadim Pasternak1-21/+16
Use new field "num_of_modules" of MGPIR register for "thermal" interface in order to get the number of modules supported by system directly from the system configuration, instead of getting it from port to module mapping info. Signed-off-by: Vadim Pasternak <vadimp@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06mlxsw: hwmon: Provide optimization for QSFP modules number detectionVadim Pasternak1-35/+29
Use new field "num_of_modules" of MGPIR register for "hwmon" interface in order to get the number of modules supported by system directly from the system configuration, instead of getting it from port to module mapping info. Reading this info through MGPIR register is faster and does not depend on possible dynamic re-configuration of ports. In case of port dynamic re-configuration some modules can logically "disappear" as a result of port split and un-spilt operations, which can cause missing of some modules, in case this info is taken from port to module mapping info. Signed-off-by: Vadim Pasternak <vadimp@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06mlxsw: reg: Extend MGPIR register with new field exposing the number of QSFP ↵Vadim Pasternak3-3/+12
modules Extend MGPIR - Management General Peripheral Information Register with new field "num_of_modules" exposing the number of modules supported by specific system. Signed-off-by: Vadim Pasternak <vadimp@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06Merge branch 'netdevsim-allow-to-test-reload-failures'David S. Miller3-0/+46
Jiri Pirko says: ==================== netdevsim: allow to test reload failures Allow user to test devlink reload failures: Fail to reload and fail during reload. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06selftests: test netdevsim reload forbid and failJiri Pirko1-0/+24
Extend netdevsim reload test by simulation of failures. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06netdevsim: add couple of debugfs bools to debug devlink reloadJiri Pirko2-0/+22
Add flag to disallow reload and another one that causes reload to always fail. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06Merge branch 'net-genetlink-parse-attrs-for-dumpit-callback'David S. Miller11-225/+243
Jiri Pirko says: ==================== net: genetlink: parse attrs for dumpit() callback In generic netlink, parsing attributes for doit() callback is already implemented. They are available in info->attrs. For dumpit() however, each user which is interested in attributes have to parse it manually. Even though the attributes may be (depending on flag) already validated (by parse function). Make usage of attributes in dumpit() more convenient and prepare info->attrs too. Patchset also make the existing users of genl_family_attrbuf() converted to use info->attrs and removes the helper. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06devlink: have genetlink code to parse the attrs during dumpitJiri Pirko1-32/+6
Benefit from the fact that the generic netlink code can parse the attrs for dumpit op and avoid need to parse it in the op callback. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: genetlink: remove unused genl_family_attrbuf()Jiri Pirko2-21/+0
genl_family_attrbuf() function is no longer used by anyone, so remove it. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: tipc: allocate attrs locally instead of using genl_family_attrbuf in ↵Jiri Pirko3-17/+15
compat_dumpit() As this is the last user of genl_family_attrbuf, convert to allocate attrs locally and do it in a similar way this is done in compat_doit(). Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: tipc: have genetlink code to parse the attrs during dumpitJiri Pirko4-18/+9
Benefit from the fact that the generic netlink code can parse the attrs for dumpit op and avoid need to parse it in the op callback. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-06net: nfc: have genetlink code to parse the attrs during dumpitJiri Pirko1-12/+5
Benefit from the fact that the generic netlink code can parse the attrs for dumpit op and avoid need to parse it in the op callback. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>