Author: slavash
Date: Wed Dec  5 13:47:41 2018
New Revision: 341568
URL: https://svnweb.freebsd.org/changeset/base/341568

Log:
  mlx5ib: Fix sign extension in mlx5_ib_query_device
  
  "fw_rev_min(dev->mdev)" with type "unsigned short" (16 bits, unsigned) is
  promoted in "fw_rev_min(dev->mdev) << 16" to type "int" (32 bits, signed), 
then
  sign-extended to type "unsigned long" (64 bits, unsigned). If
  "fw_rev_min(dev->mdev) << 16" is greater than 0x7FFFFFFF, the upper bits of 
the
  result will all be 1.
  
  Approved by:    hselasky (mentor)
  MFC after:      1 week
  Sponsored by:   Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c

Modified: head/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c    Wed Dec  5 13:47:10 2018        
(r341567)
+++ head/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c    Wed Dec  5 13:47:41 2018        
(r341568)
@@ -605,7 +605,7 @@ static int mlx5_ib_query_device(struct ib_device *ibde
                return err;
 
        props->fw_ver = ((u64)fw_rev_maj(dev->mdev) << 32) |
-               (fw_rev_min(dev->mdev) << 16) |
+               ((u32)fw_rev_min(dev->mdev) << 16) |
                fw_rev_sub(dev->mdev);
        props->device_cap_flags    = IB_DEVICE_CHANGE_PHY_PORT |
                IB_DEVICE_PORT_ACTIVE_EVENT             |
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to