Andy Grover f56574a2b5 target/user: Recalculate pad size inside is_ring_space_avail()
If more than one thread is waiting for command ring space that includes
a PAD, then if the first one finishes (inserts a PAD and a CMD at the
start of the cmd ring) then the second one will incorrectly think it still
needs to insert a PAD (i.e. cmdr_space_needed is now wrong.) This will
lead to it asking for more space than it actually needs, and then inserting
a PAD somewhere else than at the end -- not what we want.

This patch moves the pad calculation inside is_ring_space_available() so
in the above scenario the second thread would then ask for space not
including a PAD. The patch also inserts a PAD op based upon an up-to-date
cmd_head, instead of the potentially stale value.

Signed-off-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2014-10-03 11:16:12 -07:00
..
2014-08-08 11:14:29 -07:00
2014-08-06 20:06:14 -07:00
2014-09-04 19:59:42 +02:00
2014-08-05 21:16:46 -07:00
2014-08-15 17:06:40 -04:00
2014-08-04 18:36:12 -07:00
2014-08-08 15:57:28 -07:00
2014-09-06 12:12:09 -07:00
2014-09-03 08:45:48 -07:00
2014-07-30 00:23:09 +02:00
2014-08-08 11:14:29 -07:00
2014-08-25 15:39:22 -04:00
2014-09-08 16:33:56 -07:00
2014-09-11 15:08:14 -07:00
2014-09-11 16:52:29 -07:00
2014-08-04 18:34:04 -07:00