ALSA: fireworks: Use safer way to arrange ring buffer pointer
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 4 Jun 2014 06:25:33 +0000 (15:25 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 4 Jun 2014 12:35:40 +0000 (14:35 +0200)
To reverse a pointer for the ring buffer, subtraction by buffer
size is better than assignment to the beginning of the buffer.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/fireworks/fireworks_hwdep.c
sound/firewire/fireworks/fireworks_transaction.c

index 4f8216f..33df865 100644 (file)
@@ -58,7 +58,7 @@ hwdep_read_resp_buf(struct snd_efw *efw, char __user *buf, long remained,
                        efw->pull_ptr += till_end;
                        if (efw->pull_ptr >= efw->resp_buf +
                                             snd_efw_resp_buf_size)
-                               efw->pull_ptr = efw->resp_buf;
+                               efw->pull_ptr -= snd_efw_resp_buf_size;
 
                        length -= till_end;
                        buf += till_end;
index aa56b8a..a6a9e9f 100644 (file)
@@ -148,7 +148,7 @@ copy_resp_to_buf(struct snd_efw *efw, void *data, size_t length, int *rcode)
 
                efw->push_ptr += till_end;
                if (efw->push_ptr >= efw->resp_buf + snd_efw_resp_buf_size)
-                       efw->push_ptr = efw->resp_buf;
+                       efw->push_ptr -= snd_efw_resp_buf_size;
 
                length -= till_end;
                data += till_end;