All of lore.kernel.org
 help / color / mirror / Atom feed
* bug list: assigning negative values to unsigned variables
@ 2010-01-27 10:40 ` Dan Carpenter
  0 siblings, 0 replies; 13+ messages in thread
From: Dan Carpenter @ 2010-01-27 10:40 UTC (permalink / raw)
  To: kernel-janitors; +Cc: linux-kernel

Fixing the places which assign negative values to unsigned variables is a good janitor task.

This list is from smatch:  grep -w "fit into 0" warns.txt | grep -v "\-1" | tee err-list

regards,
dan carpenter

drivers/bluetooth/btmrvl_main.c +74 btmrvl_process_event(9) warn: value -22 can't fit into 0 'ret'
drivers/bluetooth/btmrvl_main.c +123 btmrvl_process_event(58) warn: value -22 can't fit into 0 'ret'
drivers/bluetooth/btmrvl_main.c +136 btmrvl_process_event(71) warn: value -22 can't fit into 0 'ret'
drivers/char/mwave/smapi.c +69 smapi_request(12) warn: value -5 can't fit into 0 'usSmapiOK'
drivers/net/ixgbe/ixgbe_dcb_nl.c +439 ixgbe_dcbnl_getcap(29) warn: value -22 can't fit into 0 'rval'
drivers/net/ixgbe/ixgbe_dcb_nl.c +443 ixgbe_dcbnl_getcap(33) warn: value -22 can't fit into 0 'rval'
drivers/net/ixgbe/ixgbe_dcb_nl.c +463 ixgbe_dcbnl_getnumtcs(14) warn: value -22 can't fit into 0 'rval'
drivers/net/ixgbe/ixgbe_dcb_nl.c +467 ixgbe_dcbnl_getnumtcs(18) warn: value -22 can't fit into 0 'rval'
drivers/net/wireless/b43legacy/phy.c +1205 b43legacy_phy_lo_b_measure(60) warn: value -772 can't fit into 0 'fval'
drivers/net/wireless/b43legacy/phy.c +1632 b43legacy_phy_lo_g_measure(143) warn: value -3 can't fit into 0 'tmp'
drivers/net/wireless/hostap/hostap_ioctl.c +1020 prism2_ioctl_giwrange(66) warn: value -60 can't fit into 0 'range->avg_qual.level'
drivers/net/wireless/hostap/hostap_ioctl.c +1021 prism2_ioctl_giwrange(67) warn: value -95 can't fit into 0 'range->avg_qual.noise'
drivers/net/wireless/ipw2x00/ipw2100.c +6901 ipw2100_wx_get_range(37) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/net/wireless/libertas/wext.c +875 lbs_get_wireless_stats(34) warn: value -96 can't fit into 0 'priv->wstats.qual.noise'
drivers/net/wireless/prism54/isl_ioctl.c +452 prism54_get_range(33) warn: value -80 can't fit into 0 'range->avg_qual.level'
drivers/net/bnx2x_link.c +3189 bnx2x_sfp_module_detection(21) warn: value -22 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +4548 bnx2x_ext_phy_init(911) warn: value -22 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +4553 bnx2x_ext_phy_init(916) warn: value -22 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +5556 bnx2x_get_ext_phy_fw_version(53) warn: value -22 can't fit into 0 'status'
drivers/net/bnx2x_link.c +5854 bnx2x_set_led(59) warn: value -22 can't fit into 0 'rc'
drivers/staging/rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
drivers/staging/rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
drivers/staging/rt2870/../rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
drivers/staging/rt2870/../rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
drivers/staging/rtl8187se/r8180_wx.c +275 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8187se/r8180_wx.c +280 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/staging/rtl8192e/r8192E_wx.c +445 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8192e/r8192E_wx.c +450 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/staging/rtl8192su/r8192U_wx.c +434 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8192su/r8192U_wx.c +439 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/staging/rtl8192u/r8192U_wx.c +420 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8192u/r8192U_wx.c +425 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/usb/serial/iuu_phoenix.c +565 iuu_clk(125) warn: value -2 can't fit into 0 '*(priv->buf+Count++)'

^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug list: assigning negative values to unsigned variables
@ 2010-01-27 10:40 ` Dan Carpenter
  0 siblings, 0 replies; 13+ messages in thread
From: Dan Carpenter @ 2010-01-27 10:40 UTC (permalink / raw)
  To: kernel-janitors; +Cc: linux-kernel

Fixing the places which assign negative values to unsigned variables is a good janitor task.

This list is from smatch:  grep -w "fit into 0" warns.txt | grep -v "\-1" | tee err-list

regards,
dan carpenter

drivers/bluetooth/btmrvl_main.c +74 btmrvl_process_event(9) warn: value -22 can't fit into 0 'ret'
drivers/bluetooth/btmrvl_main.c +123 btmrvl_process_event(58) warn: value -22 can't fit into 0 'ret'
drivers/bluetooth/btmrvl_main.c +136 btmrvl_process_event(71) warn: value -22 can't fit into 0 'ret'
drivers/char/mwave/smapi.c +69 smapi_request(12) warn: value -5 can't fit into 0 'usSmapiOK'
drivers/net/ixgbe/ixgbe_dcb_nl.c +439 ixgbe_dcbnl_getcap(29) warn: value -22 can't fit into 0 'rval'
drivers/net/ixgbe/ixgbe_dcb_nl.c +443 ixgbe_dcbnl_getcap(33) warn: value -22 can't fit into 0 'rval'
drivers/net/ixgbe/ixgbe_dcb_nl.c +463 ixgbe_dcbnl_getnumtcs(14) warn: value -22 can't fit into 0 'rval'
drivers/net/ixgbe/ixgbe_dcb_nl.c +467 ixgbe_dcbnl_getnumtcs(18) warn: value -22 can't fit into 0 'rval'
drivers/net/wireless/b43legacy/phy.c +1205 b43legacy_phy_lo_b_measure(60) warn: value -772 can't fit into 0 'fval'
drivers/net/wireless/b43legacy/phy.c +1632 b43legacy_phy_lo_g_measure(143) warn: value -3 can't fit into 0 'tmp'
drivers/net/wireless/hostap/hostap_ioctl.c +1020 prism2_ioctl_giwrange(66) warn: value -60 can't fit into 0 'range->avg_qual.level'
drivers/net/wireless/hostap/hostap_ioctl.c +1021 prism2_ioctl_giwrange(67) warn: value -95 can't fit into 0 'range->avg_qual.noise'
drivers/net/wireless/ipw2x00/ipw2100.c +6901 ipw2100_wx_get_range(37) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/net/wireless/libertas/wext.c +875 lbs_get_wireless_stats(34) warn: value -96 can't fit into 0 'priv->wstats.qual.noise'
drivers/net/wireless/prism54/isl_ioctl.c +452 prism54_get_range(33) warn: value -80 can't fit into 0 'range->avg_qual.level'
drivers/net/bnx2x_link.c +3189 bnx2x_sfp_module_detection(21) warn: value -22 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +4548 bnx2x_ext_phy_init(911) warn: value -22 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +4553 bnx2x_ext_phy_init(916) warn: value -22 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +5556 bnx2x_get_ext_phy_fw_version(53) warn: value -22 can't fit into 0 'status'
drivers/net/bnx2x_link.c +5854 bnx2x_set_led(59) warn: value -22 can't fit into 0 'rc'
drivers/staging/rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
drivers/staging/rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
drivers/staging/rt2870/../rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
drivers/staging/rt2870/../rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
drivers/staging/rtl8187se/r8180_wx.c +275 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8187se/r8180_wx.c +280 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/staging/rtl8192e/r8192E_wx.c +445 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8192e/r8192E_wx.c +450 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/staging/rtl8192su/r8192U_wx.c +434 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8192su/r8192U_wx.c +439 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/staging/rtl8192u/r8192U_wx.c +420 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
drivers/staging/rtl8192u/r8192U_wx.c +425 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
drivers/usb/serial/iuu_phoenix.c +565 iuu_clk(125) warn: value -2 can't fit into 0 '*(priv->buf+Count++)'

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
  2010-01-27 10:40 ` Dan Carpenter
@ 2010-01-27 10:57   ` Julia Lawall
  -1 siblings, 0 replies; 13+ messages in thread
From: Julia Lawall @ 2010-01-27 10:57 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: kernel-janitors, linux-kernel

On Wed, 27 Jan 2010, Dan Carpenter wrote:

> Fixing the places which assign negative values to unsigned variables is a good janitor task.

I had the impression that assignment to -1 was done sometimes as a 
portable way to initialize the variable to 0xffff (for any number of f's).  
So perhaps it is not so trivial to fix.

julia


> This list is from smatch:  grep -w "fit into 0" warns.txt | grep -v "\-1" | tee err-list
> 
> regards,
> dan carpenter
> 
> drivers/bluetooth/btmrvl_main.c +74 btmrvl_process_event(9) warn: value -22 can't fit into 0 'ret'
> drivers/bluetooth/btmrvl_main.c +123 btmrvl_process_event(58) warn: value -22 can't fit into 0 'ret'
> drivers/bluetooth/btmrvl_main.c +136 btmrvl_process_event(71) warn: value -22 can't fit into 0 'ret'
> drivers/char/mwave/smapi.c +69 smapi_request(12) warn: value -5 can't fit into 0 'usSmapiOK'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +439 ixgbe_dcbnl_getcap(29) warn: value -22 can't fit into 0 'rval'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +443 ixgbe_dcbnl_getcap(33) warn: value -22 can't fit into 0 'rval'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +463 ixgbe_dcbnl_getnumtcs(14) warn: value -22 can't fit into 0 'rval'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +467 ixgbe_dcbnl_getnumtcs(18) warn: value -22 can't fit into 0 'rval'
> drivers/net/wireless/b43legacy/phy.c +1205 b43legacy_phy_lo_b_measure(60) warn: value -772 can't fit into 0 'fval'
> drivers/net/wireless/b43legacy/phy.c +1632 b43legacy_phy_lo_g_measure(143) warn: value -3 can't fit into 0 'tmp'
> drivers/net/wireless/hostap/hostap_ioctl.c +1020 prism2_ioctl_giwrange(66) warn: value -60 can't fit into 0 'range->avg_qual.level'
> drivers/net/wireless/hostap/hostap_ioctl.c +1021 prism2_ioctl_giwrange(67) warn: value -95 can't fit into 0 'range->avg_qual.noise'
> drivers/net/wireless/ipw2x00/ipw2100.c +6901 ipw2100_wx_get_range(37) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/net/wireless/libertas/wext.c +875 lbs_get_wireless_stats(34) warn: value -96 can't fit into 0 'priv->wstats.qual.noise'
> drivers/net/wireless/prism54/isl_ioctl.c +452 prism54_get_range(33) warn: value -80 can't fit into 0 'range->avg_qual.level'
> drivers/net/bnx2x_link.c +3189 bnx2x_sfp_module_detection(21) warn: value -22 can't fit into 0 'rc'
> drivers/net/bnx2x_link.c +4548 bnx2x_ext_phy_init(911) warn: value -22 can't fit into 0 'rc'
> drivers/net/bnx2x_link.c +4553 bnx2x_ext_phy_init(916) warn: value -22 can't fit into 0 'rc'
> drivers/net/bnx2x_link.c +5556 bnx2x_get_ext_phy_fw_version(53) warn: value -22 can't fit into 0 'status'
> drivers/net/bnx2x_link.c +5854 bnx2x_set_led(59) warn: value -22 can't fit into 0 'rc'
> drivers/staging/rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
> drivers/staging/rt2870/../rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rt2870/../rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
> drivers/staging/rtl8187se/r8180_wx.c +275 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8187se/r8180_wx.c +280 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rtl8192e/r8192E_wx.c +445 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8192e/r8192E_wx.c +450 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rtl8192su/r8192U_wx.c +434 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8192su/r8192U_wx.c +439 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rtl8192u/r8192U_wx.c +420 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8192u/r8192U_wx.c +425 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/usb/serial/iuu_phoenix.c +565 iuu_clk(125) warn: value -2 can't fit into 0 '*(priv->buf+Count++)'
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
@ 2010-01-27 10:57   ` Julia Lawall
  0 siblings, 0 replies; 13+ messages in thread
From: Julia Lawall @ 2010-01-27 10:57 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: kernel-janitors, linux-kernel

On Wed, 27 Jan 2010, Dan Carpenter wrote:

> Fixing the places which assign negative values to unsigned variables is a good janitor task.

I had the impression that assignment to -1 was done sometimes as a 
portable way to initialize the variable to 0xffff (for any number of f's).  
So perhaps it is not so trivial to fix.

julia


> This list is from smatch:  grep -w "fit into 0" warns.txt | grep -v "\-1" | tee err-list
> 
> regards,
> dan carpenter
> 
> drivers/bluetooth/btmrvl_main.c +74 btmrvl_process_event(9) warn: value -22 can't fit into 0 'ret'
> drivers/bluetooth/btmrvl_main.c +123 btmrvl_process_event(58) warn: value -22 can't fit into 0 'ret'
> drivers/bluetooth/btmrvl_main.c +136 btmrvl_process_event(71) warn: value -22 can't fit into 0 'ret'
> drivers/char/mwave/smapi.c +69 smapi_request(12) warn: value -5 can't fit into 0 'usSmapiOK'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +439 ixgbe_dcbnl_getcap(29) warn: value -22 can't fit into 0 'rval'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +443 ixgbe_dcbnl_getcap(33) warn: value -22 can't fit into 0 'rval'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +463 ixgbe_dcbnl_getnumtcs(14) warn: value -22 can't fit into 0 'rval'
> drivers/net/ixgbe/ixgbe_dcb_nl.c +467 ixgbe_dcbnl_getnumtcs(18) warn: value -22 can't fit into 0 'rval'
> drivers/net/wireless/b43legacy/phy.c +1205 b43legacy_phy_lo_b_measure(60) warn: value -772 can't fit into 0 'fval'
> drivers/net/wireless/b43legacy/phy.c +1632 b43legacy_phy_lo_g_measure(143) warn: value -3 can't fit into 0 'tmp'
> drivers/net/wireless/hostap/hostap_ioctl.c +1020 prism2_ioctl_giwrange(66) warn: value -60 can't fit into 0 'range->avg_qual.level'
> drivers/net/wireless/hostap/hostap_ioctl.c +1021 prism2_ioctl_giwrange(67) warn: value -95 can't fit into 0 'range->avg_qual.noise'
> drivers/net/wireless/ipw2x00/ipw2100.c +6901 ipw2100_wx_get_range(37) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/net/wireless/libertas/wext.c +875 lbs_get_wireless_stats(34) warn: value -96 can't fit into 0 'priv->wstats.qual.noise'
> drivers/net/wireless/prism54/isl_ioctl.c +452 prism54_get_range(33) warn: value -80 can't fit into 0 'range->avg_qual.level'
> drivers/net/bnx2x_link.c +3189 bnx2x_sfp_module_detection(21) warn: value -22 can't fit into 0 'rc'
> drivers/net/bnx2x_link.c +4548 bnx2x_ext_phy_init(911) warn: value -22 can't fit into 0 'rc'
> drivers/net/bnx2x_link.c +4553 bnx2x_ext_phy_init(916) warn: value -22 can't fit into 0 'rc'
> drivers/net/bnx2x_link.c +5556 bnx2x_get_ext_phy_fw_version(53) warn: value -22 can't fit into 0 'status'
> drivers/net/bnx2x_link.c +5854 bnx2x_set_led(59) warn: value -22 can't fit into 0 'rc'
> drivers/staging/rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
> drivers/staging/rt2870/../rt2860/sta_ioctl.c +564 rt_ioctl_giwrange(60) warn: value -60 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rt2870/../rt2860/sta_ioctl.c +565 rt_ioctl_giwrange(61) warn: value -95 can't fit into 0 'range->avg_qual.noise'
> drivers/staging/rtl8187se/r8180_wx.c +275 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8187se/r8180_wx.c +280 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rtl8192e/r8192E_wx.c +445 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8192e/r8192E_wx.c +450 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rtl8192su/r8192U_wx.c +434 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8192su/r8192U_wx.c +439 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/staging/rtl8192u/r8192U_wx.c +420 rtl8180_wx_get_range(39) warn: value -98 can't fit into 0 'range->max_qual.noise'
> drivers/staging/rtl8192u/r8192U_wx.c +425 rtl8180_wx_get_range(44) warn: value -78 can't fit into 0 'range->avg_qual.level'
> drivers/usb/serial/iuu_phoenix.c +565 iuu_clk(125) warn: value -2 can't fit into 0 '*(priv->buf+Count++)'
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
  2010-01-27 10:57   ` Julia Lawall
@ 2010-01-27 11:09     ` Bernd Petrovitsch
  -1 siblings, 0 replies; 13+ messages in thread
From: Bernd Petrovitsch @ 2010-01-27 11:09 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Dan Carpenter, kernel-janitors, linux-kernel

On Mit, 2010-01-27 at 11:57 +0100, Julia Lawall wrote:
> On Wed, 27 Jan 2010, Dan Carpenter wrote:
> 
> > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> 
> I had the impression that assignment to -1 was done sometimes as a 
> portable way to initialize the variable to 0xffff (for any number of f's).  
> So perhaps it is not so trivial to fix.
Any particular reason that ~0U, ~0UL, and ~0ULL shouldn't do the same
(without relying on conversion from signed to unsigned)?

	Bernd
-- 
Bernd Petrovitsch                  Email : bernd@petrovitsch.priv.at
                     LUGA : http://www.luga.at


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
@ 2010-01-27 11:09     ` Bernd Petrovitsch
  0 siblings, 0 replies; 13+ messages in thread
From: Bernd Petrovitsch @ 2010-01-27 11:09 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Dan Carpenter, kernel-janitors, linux-kernel

On Mit, 2010-01-27 at 11:57 +0100, Julia Lawall wrote:
> On Wed, 27 Jan 2010, Dan Carpenter wrote:
> 
> > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> 
> I had the impression that assignment to -1 was done sometimes as a 
> portable way to initialize the variable to 0xffff (for any number of f's).  
> So perhaps it is not so trivial to fix.
Any particular reason that ~0U, ~0UL, and ~0ULL shouldn't do the same
(without relying on conversion from signed to unsigned)?

	Bernd
-- 
Bernd Petrovitsch                  Email : bernd@petrovitsch.priv.at
                     LUGA : http://www.luga.at


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
  2010-01-27 10:57   ` Julia Lawall
@ 2010-01-27 11:13     ` Dan Carpenter
  -1 siblings, 0 replies; 13+ messages in thread
From: Dan Carpenter @ 2010-01-27 11:13 UTC (permalink / raw)
  To: Julia Lawall; +Cc: kernel-janitors, linux-kernel

On Wed, Jan 27, 2010 at 11:57:06AM +0100, Julia Lawall wrote:
> On Wed, 27 Jan 2010, Dan Carpenter wrote:
> 
> > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> 
> I had the impression that assignment to -1 was done sometimes as a 
> portable way to initialize the variable to 0xffff (for any number of f's).  
> So perhaps it is not so trivial to fix.
> 
> julia
> 

The grep removed those.

> > This list is from smatch:  grep -w "fit into 0" warns.txt | grep -v "\-1" | tee err-list

Also it removed some other real bugs as well, which I have listed below.  It 
should have been:  grep -w "fit into 0" warns.txt | grep -vw "\-1" | tee err-list

But you are right assigning -1 is idiomatic.  I'll push a change tomorrow so 
the grep isn't needed.

regards,
dan carpenter

drivers/net/bnx2x_link.c +864 bnx2x_cl45_write(38) warn: value -14 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +884 bnx2x_cl45_write(58) warn: value -14 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +934 bnx2x_cl45_read(40) warn: value -14 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +957 bnx2x_cl45_read(63) warn: value -14 can't fit into 0 'rc'
drivers/pci/hotplug/ibmphp_hpc.c +391 pci_ctrl_write(2) warn: value -19 can't fit into 0 'rc'
drivers/usb/serial/iuu_phoenix.c +573 iuu_clk(133) warn: value -124 can't fit into 0 '*(priv->buf+Count++)'
net/llc/llc_station.c +691 llc_station_init(2) warn: value -105 can't fit into 0 'rc'
net/wireless/wext-compat.c +175 cfg80211_wext_giwrange(34) warn: value -110 can't fit into 0 'range->max_qual.level'

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
@ 2010-01-27 11:13     ` Dan Carpenter
  0 siblings, 0 replies; 13+ messages in thread
From: Dan Carpenter @ 2010-01-27 11:13 UTC (permalink / raw)
  To: Julia Lawall; +Cc: kernel-janitors, linux-kernel

On Wed, Jan 27, 2010 at 11:57:06AM +0100, Julia Lawall wrote:
> On Wed, 27 Jan 2010, Dan Carpenter wrote:
> 
> > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> 
> I had the impression that assignment to -1 was done sometimes as a 
> portable way to initialize the variable to 0xffff (for any number of f's).  
> So perhaps it is not so trivial to fix.
> 
> julia
> 

The grep removed those.

> > This list is from smatch:  grep -w "fit into 0" warns.txt | grep -v "\-1" | tee err-list

Also it removed some other real bugs as well, which I have listed below.  It 
should have been:  grep -w "fit into 0" warns.txt | grep -vw "\-1" | tee err-list

But you are right assigning -1 is idiomatic.  I'll push a change tomorrow so 
the grep isn't needed.

regards,
dan carpenter

drivers/net/bnx2x_link.c +864 bnx2x_cl45_write(38) warn: value -14 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +884 bnx2x_cl45_write(58) warn: value -14 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +934 bnx2x_cl45_read(40) warn: value -14 can't fit into 0 'rc'
drivers/net/bnx2x_link.c +957 bnx2x_cl45_read(63) warn: value -14 can't fit into 0 'rc'
drivers/pci/hotplug/ibmphp_hpc.c +391 pci_ctrl_write(2) warn: value -19 can't fit into 0 'rc'
drivers/usb/serial/iuu_phoenix.c +573 iuu_clk(133) warn: value -124 can't fit into 0 '*(priv->buf+Count++)'
net/llc/llc_station.c +691 llc_station_init(2) warn: value -105 can't fit into 0 'rc'
net/wireless/wext-compat.c +175 cfg80211_wext_giwrange(34) warn: value -110 can't fit into 0 'range->max_qual.level'

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
  2010-01-27 11:09     ` Bernd Petrovitsch
@ 2010-01-27 12:30       ` Julia Lawall
  -1 siblings, 0 replies; 13+ messages in thread
From: Julia Lawall @ 2010-01-27 12:30 UTC (permalink / raw)
  To: Bernd Petrovitsch; +Cc: Dan Carpenter, kernel-janitors, linux-kernel

On Wed, 27 Jan 2010, Bernd Petrovitsch wrote:

> On Mit, 2010-01-27 at 11:57 +0100, Julia Lawall wrote:
> > On Wed, 27 Jan 2010, Dan Carpenter wrote:
> > 
> > > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> > 
> > I had the impression that assignment to -1 was done sometimes as a 
> > portable way to initialize the variable to 0xffff (for any number of f's).  
> > So perhaps it is not so trivial to fix.
> Any particular reason that ~0U, ~0UL, and ~0ULL shouldn't do the same
> (without relying on conversion from signed to unsigned)?

Then the constant specifies the type?

julia

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
@ 2010-01-27 12:30       ` Julia Lawall
  0 siblings, 0 replies; 13+ messages in thread
From: Julia Lawall @ 2010-01-27 12:30 UTC (permalink / raw)
  To: Bernd Petrovitsch; +Cc: Dan Carpenter, kernel-janitors, linux-kernel

On Wed, 27 Jan 2010, Bernd Petrovitsch wrote:

> On Mit, 2010-01-27 at 11:57 +0100, Julia Lawall wrote:
> > On Wed, 27 Jan 2010, Dan Carpenter wrote:
> > 
> > > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> > 
> > I had the impression that assignment to -1 was done sometimes as a 
> > portable way to initialize the variable to 0xffff (for any number of f's).  
> > So perhaps it is not so trivial to fix.
> Any particular reason that ~0U, ~0UL, and ~0ULL shouldn't do the same
> (without relying on conversion from signed to unsigned)?

Then the constant specifies the type?

julia

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
  2010-01-27 12:30       ` Julia Lawall
@ 2010-01-27 14:12         ` Bernd Petrovitsch
  -1 siblings, 0 replies; 13+ messages in thread
From: Bernd Petrovitsch @ 2010-01-27 14:12 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Dan Carpenter, kernel-janitors, linux-kernel

On Mit, 2010-01-27 at 13:30 +0100, Julia Lawall wrote:
> On Wed, 27 Jan 2010, Bernd Petrovitsch wrote:
> > On Mit, 2010-01-27 at 11:57 +0100, Julia Lawall wrote:
> > > On Wed, 27 Jan 2010, Dan Carpenter wrote:
> > > 
> > > > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> > > 
> > > I had the impression that assignment to -1 was done sometimes as a 
> > > portable way to initialize the variable to 0xffff (for any number of f's).  
Hmm, perhaps some experienced language lawyer can comment on the
"portable".
> > > So perhaps it is not so trivial to fix.
> > Any particular reason that ~0U, ~0UL, and ~0ULL shouldn't do the same
> > (without relying on conversion from signed to unsigned)?
> 
> Then the constant specifies the type?
Yes. And it is necessary as "~0U" assigned to a "unsigned long long int"
won't give "~0ULL".
Otherwise "0" would be a signed int and from then on (starting with
"~0") we are in the C hell of type promotion/conversion from signed to
unsigned and/or back - at least in theory.

	Bernd
-- 
Bernd Petrovitsch                  Email : bernd@petrovitsch.priv.at
                     LUGA : http://www.luga.at


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
@ 2010-01-27 14:12         ` Bernd Petrovitsch
  0 siblings, 0 replies; 13+ messages in thread
From: Bernd Petrovitsch @ 2010-01-27 14:12 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Dan Carpenter, kernel-janitors, linux-kernel

On Mit, 2010-01-27 at 13:30 +0100, Julia Lawall wrote:
> On Wed, 27 Jan 2010, Bernd Petrovitsch wrote:
> > On Mit, 2010-01-27 at 11:57 +0100, Julia Lawall wrote:
> > > On Wed, 27 Jan 2010, Dan Carpenter wrote:
> > > 
> > > > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> > > 
> > > I had the impression that assignment to -1 was done sometimes as a 
> > > portable way to initialize the variable to 0xffff (for any number of f's).  
Hmm, perhaps some experienced language lawyer can comment on the
"portable".
> > > So perhaps it is not so trivial to fix.
> > Any particular reason that ~0U, ~0UL, and ~0ULL shouldn't do the same
> > (without relying on conversion from signed to unsigned)?
> 
> Then the constant specifies the type?
Yes. And it is necessary as "~0U" assigned to a "unsigned long long int"
won't give "~0ULL".
Otherwise "0" would be a signed int and from then on (starting with
"~0") we are in the C hell of type promotion/conversion from signed to
unsigned and/or back - at least in theory.

	Bernd
-- 
Bernd Petrovitsch                  Email : bernd@petrovitsch.priv.at
                     LUGA : http://www.luga.at


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: bug list: assigning negative values to unsigned variables
  2010-01-27 14:12         ` Bernd Petrovitsch
  (?)
@ 2010-01-27 14:44         ` Al Viro
  -1 siblings, 0 replies; 13+ messages in thread
From: Al Viro @ 2010-01-27 14:44 UTC (permalink / raw)
  To: Bernd Petrovitsch
  Cc: Julia Lawall, Dan Carpenter, kernel-janitors, linux-kernel

On Wed, Jan 27, 2010 at 03:12:49PM +0100, Bernd Petrovitsch wrote:
> On Mit, 2010-01-27 at 13:30 +0100, Julia Lawall wrote:
> > On Wed, 27 Jan 2010, Bernd Petrovitsch wrote:
> > > On Mit, 2010-01-27 at 11:57 +0100, Julia Lawall wrote:
> > > > On Wed, 27 Jan 2010, Dan Carpenter wrote:
> > > > 
> > > > > Fixing the places which assign negative values to unsigned variables is a good janitor task.
> > > > 
> > > > I had the impression that assignment to -1 was done sometimes as a 
> > > > portable way to initialize the variable to 0xffff (for any number of f's).  
> Hmm, perhaps some experienced language lawyer can comment on the
> "portable".

Doesn't take a lawyer; conversion to unsigned types *IS* portable and defined
as arithmetics modulo 2^{width}.  In particular, for any unsigned type T you
are going to have the same results from (T)-1 and ~(T)0 (and (T)-1L, etc.).
The value being converted is interpreted as an integer (i.e. the element of
$\Bbb Z$) and then taken modulo 2^{width}, regardless of the type it had
come from.  So -1 is just fine and will result in 0xff....f of the right
width.

It's conversion to signed that is a mess if the value you are converting isn't
already in range representable by the type you are converting to.

Whether a specific example of conversion of negative to unsigned is a good
idea stylistically is a different question, of course, but that should be
taken on case-to-case basis.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2010-01-27 14:44 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-27 10:40 bug list: assigning negative values to unsigned variables Dan Carpenter
2010-01-27 10:40 ` Dan Carpenter
2010-01-27 10:57 ` Julia Lawall
2010-01-27 10:57   ` Julia Lawall
2010-01-27 11:09   ` Bernd Petrovitsch
2010-01-27 11:09     ` Bernd Petrovitsch
2010-01-27 12:30     ` Julia Lawall
2010-01-27 12:30       ` Julia Lawall
2010-01-27 14:12       ` Bernd Petrovitsch
2010-01-27 14:12         ` Bernd Petrovitsch
2010-01-27 14:44         ` Al Viro
2010-01-27 11:13   ` Dan Carpenter
2010-01-27 11:13     ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.