Hi Arthur, thanks a lot for the report and for providing a test case and a fix 
suggestion - basically you did all the work heheh
I've just built kernels 4.4 (Xenial) and 4.15 (Bionic) with your suggested fix 
and indeed it prevented the failure; I'm working on the SRU request, so we can 
get that merged for the next kernel cycle [0].
Cheers,


Guilherme


[0] https://kernel.ubuntu.com

** Tags added: sts xenial

** Also affects: linux (Ubuntu Bionic)
   Importance: Undecided
       Status: New

** Also affects: linux (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: linux (Ubuntu)
       Status: Confirmed => In Progress

** Changed in: linux (Ubuntu Xenial)
       Status: New => In Progress

** Changed in: linux (Ubuntu Bionic)
       Status: New => In Progress

** Changed in: linux (Ubuntu Xenial)
   Importance: Undecided => High

** Changed in: linux (Ubuntu Bionic)
   Importance: Undecided => High

** Changed in: linux (Ubuntu)
     Assignee: (unassigned) => Guilherme G. Piccoli (gpiccoli)

** Changed in: linux (Ubuntu Xenial)
     Assignee: (unassigned) => Guilherme G. Piccoli (gpiccoli)

** Changed in: linux (Ubuntu Bionic)
     Assignee: (unassigned) => Guilherme G. Piccoli (gpiccoli)

** Changed in: linux (Ubuntu)
   Importance: Undecided => High

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1874444

Title:
  Bionic ubuntu ethtool doesn't check ring parameters boundaries

Status in linux package in Ubuntu:
  In Progress
Status in linux source package in Xenial:
  In Progress
Status in linux source package in Bionic:
  In Progress

Bug description:
  Upstream linux kernel implemented ring parameter boundaries check in commit:
  37e2d99b59c4 ("ethtool: Ensure new ring parameters are within bounds during 
SRINGPARAM")

  (see link
  https://patchwork.ozlabs.org/project/netdev/patch/1515420026-11970-2
  -git-send-email-tar...@mellanox.com/)

  Due to this commit, the community doesn't allow ring parameter
  boundary checks in driver code.

  The Bionic ubuntu kernel does not include this patch. And some network 
drivers rely on this patch for
  boundary checking of ring params.

  This causes bugs in case a ringparam was given an illegal value.

  Reproduction steps in AWS:

  1. Create new c5.4xlarge instance with the ubuntu 18.04 official ami (uses 
the ENA network driver) and update to latest kernel using apt-get dist-upgrade 
and reboot for the new kernel to load.
  2. Run ethtool -g ens5
  output:
  Ring parameters for ens5:
  Pre-set maximums:
  RX:           16384
  RX Mini:      0
  RX Jumbo:     0
  TX:           1024
  Current hardware settings:
  RX:           1024
  RX Mini:      0
  RX Jumbo:     0
  TX:           1024

  3. Change the tx ring size to a legal number within boundaries - works!
  4. Change the tx ring size to an illegal number such as 2048 with the command 
- sudo ethtool -G ens5 tx 2048.
  Expected behavior - operation not allowed
  Actual behavior - causes a crash of the driver since boundaries are not 
checked by ethtool.

  Proposed fix - include the above commit 37e2d99b59c4 ("ethtool: Ensure
  new ring parameters are within bounds during SRINGPARAM") in bionic
  (and probably other ubuntu releases as well)

  
  More data about the machine where the bug occured:

  ubuntu@ip-172-31-80-28:~/bionic$ lsb_release -rd
  Description:  Ubuntu 18.04.4 LTS
  Release:      18.04

  ubuntu@ip-172-31-80-28:~/bionic$ uname -r
  4.15.0-1065-aws

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1874444/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to