summaryrefslogtreecommitdiff
path: root/arch/sparc
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2009-01-06 12:46:46 -0800
committerDavid S. Miller <davem@davemloft.net>2009-01-06 12:46:46 -0800
commit2eac5a0d3a84acd267ff7aac5b45c020bfcb158c (patch)
treeab9dbf30468808bbb8afb235735f28ea35a54792 /arch/sparc
parentb2c0805f77ff6b87bb18994ce70352fecc3ce7fc (diff)
downloadlinux-3.10-2eac5a0d3a84acd267ff7aac5b45c020bfcb158c.tar.gz
linux-3.10-2eac5a0d3a84acd267ff7aac5b45c020bfcb158c.tar.bz2
linux-3.10-2eac5a0d3a84acd267ff7aac5b45c020bfcb158c.zip
sparc64: refactor code in viohs.c
The sparc64 allmodconfig build broke due to enabling of the branch_tracer that does some very clever things with all if conditions. This caused my gcc 3.4.5 to be so confused that it emitted a warning: arch/sparc/kernel/viohs.c: In function `vio_control_pkt_engine': arch/sparc/kernel/viohs.c:335: warning: 'nver' might be used uninitialized in this function And with -Werror this broke the build. Refactor code so it: 1) becomes more readable 2) no longer emit a warning with the branch_tracer enabled Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/viohs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/sparc/kernel/viohs.c b/arch/sparc/kernel/viohs.c
index 708fa1705fb..aa6ac70d4fd 100644
--- a/arch/sparc/kernel/viohs.c
+++ b/arch/sparc/kernel/viohs.c
@@ -337,8 +337,10 @@ static int process_ver_nack(struct vio_driver_state *vio,
viodbg(HS, "GOT VERSION NACK maj[%u] min[%u] devclass[%u]\n",
pkt->major, pkt->minor, pkt->dev_class);
- if ((pkt->major == 0 && pkt->minor == 0) ||
- !(nver = find_by_major(vio, pkt->major)))
+ if (pkt->major == 0 && pkt->minor == 0)
+ return handshake_failure(vio);
+ nver = find_by_major(vio, pkt->major);
+ if (!nver)
return handshake_failure(vio);
if (send_version(vio, nver->major, nver->minor) < 0)