Re: HEADSUP usb2/usb4bsd to become default in GENERIC

From: Christoph Mallon <christoph.mallon_at_gmx.de>
Date: Tue, 24 Feb 2009 07:09:19 +0100
Hans Petter Selasky schrieb:
> On Monday 09 February 2009, Christoph Mallon wrote:
>> Hans Petter Selasky schrieb:
>>> On Monday 09 February 2009, Christoph Mallon wrote:
>>>> Hans Petter Selasky schrieb:
>>>>> On Monday 09 February 2009, Christoph Mallon wrote:
>>>>>> Christoph Mallon schrieb:
>>>>>>> are named "err" or "error". This should be investigated, so here's
>>>>>>> the complete list:
>>>>>> Sorry, my MUA seems to have damaged the list. You can get the list
>>>>>> here: http://tron.homeunix.org/usb2.unread.log
>>>>> I think some of these errors depend if you have USB debugging compiled
>>>>> or not. At least GCC does not warn?
>>>> No, it does not depend on USB debugging.
>>>> GCC has no warning at all for variables which are only assigned to.
>>>> It only can warn about variables, which are only initialised.
>>>>
>>>> {
>>>>    int x = 23; // GCC warns here ...
>>>>    int y;      // ... but not here - cparser does
>>>>    y = 42;
>>>>    y++;
>>>> }
>>>>
>>>> cparser has an analysis, which can warn about "y", too.
>>>>
>>>> I manually verified all 40 warnings and I cannot find any users (i.e.
>>>> readers) for these variables.
>>> What is the correct way to discard the return argument of a function?
>>> That's basically what most of the warnings are about.
>>>
>>> 1) (void)my_fn() cast
>>> 2) if (my_fn()) { }
>>> 3) err = my_fn();
>>> 4) my_fn();
>> Just to understand this correctly: You want to discard error codes?
>>
>>
>> Basically I see four categories:
>>
>> 1) Getting the softc and not using it.
>> This can be removed completely.
>> Example:
>>    sc = ATMEGA_BUS2SC(xfer->xroot->bus);
>>
>> 2) calling mtx_owned() and discarding the return value.
>> Can be removed, too, after checking that the value is really unnecessary.
>> Example:
>>    use_polling = mtx_owned(xfer->xroot->xfer_mtx) ? 1 : 0;
>>
>> 3) Getting some value and not using it.
>> Can be removed, too, after checking that the value is really unnecessary.
>> Example:
>>    ep_no = (xfer->endpoint & UE_ADDR);
>>
>> 4) The rest are return values of functions, which contain error codes.
>> Discarding them is questionable at best.
>> Example: (err is not read)
>>      if (udev->flags.suspended) {
>>        err = DEVICE_SUSPEND(iface->subdev);
>>        device_printf(iface->subdev, "Suspend failed\n");
>>      }
>>      return (0);   /* success */
> 
> Hi,
> 
> Can you wait some days and re-run the analysis on -current, because there is a 
> bulk of patches going in to some of the code you have analysed, so the line 
> numbers are likely to not match. Then we fix those warnings!

Here's the updated list:

	http://tron.homeunix.org/usb2.unread.20090224.log

It contains 33 items. 12 of the variables are named "err" or "error".
Received on Tue Feb 24 2009 - 05:09:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:42 UTC