Skip to contentSkip to conversation

2.6.24, net/bluetooth/hci_sysfs.c, cleaned code remove compiler warning

PATCH In review Michael Kühn 2 participants 2 messages Jan 27, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.6.24, net/bluetooth/hci_sysfs.c, cleaned code remove compiler warning

Hi,

the attached Patch will remove a compiler warning in net/bluetooth/hci_sysfs.c:

hci_sysfs.c_new 2008-01-27 03:37:19.000000000 +0100 renamed from hci_sysfs.c 2008-01-27 03:48:47.000000000 +0100 +1 -1
@@ -332,7 +332,7 @@
        struct device *dev;
        struct hci_conn *conn = container_of(work, struct hci_conn, work);
 
-       while (dev = device_find_child(&conn->dev, NULL, __match_tty)) {
+       while ((dev = device_find_child(&conn->dev, NULL, __match_tty))) {
                device_move(dev, NULL);
                put_device(dev);
        }
#1 lore raw
Quoted 3 lines · Michael K?hn

the attached Patch will remove a compiler warning in net/bluetooth/hci_sysfs.c:

Please don't do this. I realize that gcc suggests just adding parenthesis, and yes, it makes the warning go away, but it's not sensible from a human semantic standpoint.

So if the warning bothers you, please change

	while (dev = device_find_child(..)) {

into something like

	while ((dev = device_find_child(..)) != NULL) {

which also gets rid of the warning, but now does it with something that makes sense to a human too.

Just arbitrarily adding another set of parentheses never made much sense to me. It's semantically still the exact same expression, just the fact that gcc suddenly doesn't warn about the assignment because it's "hidden" by the extra parenthesis is just odd.

Linus