Fix missing poperror() calls
authorFergus Simpson <afergs@google.com>
Thu, 8 Dec 2016 19:41:08 +0000 (11:41 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Sat, 10 Dec 2016 01:02:15 +0000 (20:02 -0500)
commit035918fd650435831cee813eb8400db8d7f2560b
tree8fed2f717aeb2c1e44b90d1163c0f7a7173a61a3
parent62dd62be3a18aeb7e38687a401e0e2f280517672
Fix missing poperror() calls

The AHCI driver was ported from plan 9 which did not have poperror. As a
result of the port poperror needed to be added, but there were some
mistakes. After a waserror every path out of a function must call
poperror or nexterror. This didn't always happen previously, so this
commit adds or moves poperror calls to make sure that a function's
ERRSTACK always gets cleared before returning.

Additionally, ERRSTACK must be deep enough for the number of waserror
calls in a function not separeted by poperror or nexterror. It was deeper
than it needed to be in a number of places so that was also fixed.

Change-Id: I4bbe5fd066ff890dc817e7d0e313ca6e07fe99bb
Signed-off-by: Fergus Simpson <afergs@google.com>
[checkpatch nit]
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/dev/sd.c
kern/drivers/dev/sdiahci.c