From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752716AbdIFTvF (ORCPT ); Wed, 6 Sep 2017 15:51:05 -0400 Received: from mout.web.de ([212.227.15.4]:63776 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752327AbdIFTvD (ORCPT ); Wed, 6 Sep 2017 15:51:03 -0400 Subject: [PATCH 3/3] ALSA: ymfpci: Adjust 17 checks for null pointers From: SF Markus Elfring To: alsa-devel@alsa-project.org, Bhumika Goyal , David Howells , Ingo Molnar , Jaroslav Kysela , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org References: Message-ID: <35478693-5c8a-38b8-d2b3-fc8a964d5137@users.sourceforge.net> Date: Wed, 6 Sep 2017 21:50:09 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:mIaIPnDAqH/J8e7khRkupevjYWmexlhXrQyuTkvymeFxNAWDgTT hsnBtm1eM/j/Z7IGPLFF831sD70+OHH5wCaRt7xJXb5hPZxZ0JuUx4lFzhnvvAQgcDuW5Rs zOCbTk3QzPwWNJxK63TJYHuP8UmGASPLIm3LxMoTz6aIDpLI3uFqeboW2YV4+FXknbCbWg4 V7+AjxjHpSBQkxjEUgong== X-UI-Out-Filterresults: notjunk:1;V01:K0:yiLOVq55ut8=:TjgBqL9ZmxeZ/r9TQPT3Tz j2XVNZKRm5EpOHE9HOAJSIyEK/z5DoL1TQ99jHXWMkFBF4wzch9NQafHgs7DIPxLefZ6+ECyK 7T2+X+YcqwObEkQ9CQgeqaIuJTvLajidiHjt1fEfa5HGBVygNtEM14z860XniN/yFjj2/Nc3q IQ+drP7wEgiu6cJ4cTmsLl7GY579M0mWIyRofwu57L8XRDlF6mWBS46f2NiJt42fhJdfn4H8b RXOQJ5bby99JKtXA0NqhUD0+DIqkuEJ5/HPBuwdl9R5ex5ixGMP9raVmLYxxmI4n/ox5KeLVc A2Vj5C+INBHmFvAAxZkDFE4c1Z5yfiIMLMR3JBPQyXv2xTizZLUoSznVY8rWdc535xnNMFno/ tBpeaueoajwjEIfQDTgHO3qRR0T+5Jg0u0mVLkioLyhBIsyTTu5JD2qMVbMq0O/oHsvY6my/b czCi90FYsyFITKXdjI0PZlyTV4fDTn1V3Ng37uFVNjXEO1AlpPZNghJGaVQKfC0xr24ILIEke Y0G6wVOxpuE7M40aA4hI07fMrjTVE/X+Vq5dAfJHyjPSJel1fU6Q7Wg4aEvAM9515db/OllFo WBfrCeRgM2FtTgNIXNCKa7Q8Ddtw5eqMU5J/4qx35hV4YSPv0L+FmbdK/K0cdn9NEe4cVshq/ kmjpd6lzY2IRnBxJazcx9dDkB/ApjxbeKVxEjEYpqbMP5C7D/2q/P7gp56UGBR2Apzx170WkU 9H2GYtdfbjDvGYK11nWzvz3gGKXKuUJqbf3xZQMyssq5XKjYFG6wTGcGa/FZXHsT4ld5lWGVn p7owhAyZ7buaR5RN67VQG3Zl/+Wi8Jz8NA2i8LOtP9amf+6nUc= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Wed, 6 Sep 2017 21:30:37 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The script “checkpatch.pl” pointed information out like the following. Comparison to NULL could be written … Thus fix affected source code places. Signed-off-by: Markus Elfring --- sound/pci/ymfpci/ymfpci_main.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index 8ca2e41e5827..4da6e43ad007 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -308,7 +308,7 @@ static void snd_ymfpci_pcm_interrupt(struct snd_ymfpci *chip, struct snd_ymfpci_ if ((ypcm = voice->ypcm) == NULL) return; - if (ypcm->substream == NULL) + if (!ypcm->substream) return; spin_lock(&chip->reg_lock); if (ypcm->running) { @@ -396,7 +396,7 @@ static int snd_ymfpci_playback_trigger(struct snd_pcm_substream *substream, int result = 0; spin_lock(&chip->reg_lock); - if (ypcm->voices[0] == NULL) { + if (!ypcm->voices[0]) { result = -EINVAL; goto __unlock; } @@ -405,7 +405,7 @@ static int snd_ymfpci_playback_trigger(struct snd_pcm_substream *substream, case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_RESUME: chip->ctrl_playback[ypcm->voices[0]->number + 1] = cpu_to_le32(ypcm->voices[0]->bank_addr); - if (ypcm->voices[1] != NULL && !ypcm->use_441_slot) + if (ypcm->voices[1] && !ypcm->use_441_slot) chip->ctrl_playback[ypcm->voices[1]->number + 1] = cpu_to_le32(ypcm->voices[1]->bank_addr); ypcm->running = 1; break; @@ -418,7 +418,7 @@ static int snd_ymfpci_playback_trigger(struct snd_pcm_substream *substream, case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_SUSPEND: chip->ctrl_playback[ypcm->voices[0]->number + 1] = 0; - if (ypcm->voices[1] != NULL && !ypcm->use_441_slot) + if (ypcm->voices[1] && !ypcm->use_441_slot) chip->ctrl_playback[ypcm->voices[1]->number + 1] = 0; ypcm->running = 0; break; @@ -468,16 +468,16 @@ static int snd_ymfpci_pcm_voice_alloc(struct snd_ymfpci_pcm *ypcm, int voices) { int err; - if (ypcm->voices[1] != NULL && voices < 2) { + if (ypcm->voices[1] && voices < 2) { snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[1]); ypcm->voices[1] = NULL; } - if (voices == 1 && ypcm->voices[0] != NULL) + if (voices == 1 && ypcm->voices[0]) return 0; /* already allocated */ - if (voices == 2 && ypcm->voices[0] != NULL && ypcm->voices[1] != NULL) + if (voices == 2 && ypcm->voices[0] && ypcm->voices[1]) return 0; /* already allocated */ if (voices > 1) { - if (ypcm->voices[0] != NULL && ypcm->voices[1] == NULL) { + if (ypcm->voices[0] && !ypcm->voices[1]) { snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[0]); ypcm->voices[0] = NULL; } @@ -655,7 +655,7 @@ static int snd_ymfpci_playback_hw_free(struct snd_pcm_substream *substream) struct snd_pcm_runtime *runtime = substream->runtime; struct snd_ymfpci_pcm *ypcm; - if (runtime->private_data == NULL) + if (!runtime->private_data) return 0; ypcm = runtime->private_data; @@ -913,7 +913,7 @@ static int snd_ymfpci_playback_open_1(struct snd_pcm_substream *substream) return err; ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL); - if (ypcm == NULL) + if (!ypcm) return -ENOMEM; ypcm->chip = chip; ypcm->type = PLAYBACK_VOICE; @@ -1038,7 +1038,7 @@ static int snd_ymfpci_capture_open(struct snd_pcm_substream *substream, return err; ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL); - if (ypcm == NULL) + if (!ypcm) return -ENOMEM; ypcm->chip = chip; ypcm->type = capture_bank_number + CAPTURE_REC; @@ -1116,7 +1116,7 @@ static int snd_ymfpci_capture_close(struct snd_pcm_substream *substream) struct snd_pcm_runtime *runtime = substream->runtime; struct snd_ymfpci_pcm *ypcm = runtime->private_data; - if (ypcm != NULL) { + if (ypcm) { chip->capture_substream[ypcm->capture_bank_number] = NULL; snd_ymfpci_hw_stop(chip); } @@ -1310,7 +1310,8 @@ static int snd_ymfpci_spdif_default_put(struct snd_kcontrol *kcontrol, spin_lock_irq(&chip->reg_lock); change = chip->spdif_bits != val; chip->spdif_bits = val; - if ((snd_ymfpci_readw(chip, YDSXGR_SPDIFOUTCTRL) & 1) && chip->pcm_spdif == NULL) + if ((snd_ymfpci_readw(chip, YDSXGR_SPDIFOUTCTRL) & 1) && + !chip->pcm_spdif) snd_ymfpci_writew(chip, YDSXGR_SPDIFOUTSTATUS, chip->spdif_bits); spin_unlock_irq(&chip->reg_lock); return change; @@ -2376,7 +2377,7 @@ int snd_ymfpci_create(struct snd_card *card, return err; chip = kzalloc(sizeof(*chip), GFP_KERNEL); - if (chip == NULL) { + if (!chip) { pci_disable_device(pci); return -ENOMEM; } @@ -2437,7 +2438,7 @@ int snd_ymfpci_create(struct snd_card *card, #ifdef CONFIG_PM_SLEEP chip->saved_regs = kmalloc(YDSXGR_NUM_SAVED_REGS * sizeof(u32), GFP_KERNEL); - if (chip->saved_regs == NULL) { + if (!chip->saved_regs) { err = -ENOMEM; goto free_chip; } -- 2.14.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: SF Markus Elfring Date: Wed, 06 Sep 2017 19:50:09 +0000 Subject: [PATCH 3/3] ALSA: ymfpci: Adjust 17 checks for null pointers Message-Id: <35478693-5c8a-38b8-d2b3-fc8a964d5137@users.sourceforge.net> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: alsa-devel@alsa-project.org, Bhumika Goyal , David Howells , Ingo Molnar , Jaroslav Kysela , Takashi Iwai Cc: kernel-janitors@vger.kernel.org, LKML From: Markus Elfring Date: Wed, 6 Sep 2017 21:30:37 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The script “checkpatch.pl” pointed information out like the following. Comparison to NULL could be written … Thus fix affected source code places. Signed-off-by: Markus Elfring --- sound/pci/ymfpci/ymfpci_main.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index 8ca2e41e5827..4da6e43ad007 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -308,7 +308,7 @@ static void snd_ymfpci_pcm_interrupt(struct snd_ymfpci *chip, struct snd_ymfpci_ if ((ypcm = voice->ypcm) = NULL) return; - if (ypcm->substream = NULL) + if (!ypcm->substream) return; spin_lock(&chip->reg_lock); if (ypcm->running) { @@ -396,7 +396,7 @@ static int snd_ymfpci_playback_trigger(struct snd_pcm_substream *substream, int result = 0; spin_lock(&chip->reg_lock); - if (ypcm->voices[0] = NULL) { + if (!ypcm->voices[0]) { result = -EINVAL; goto __unlock; } @@ -405,7 +405,7 @@ static int snd_ymfpci_playback_trigger(struct snd_pcm_substream *substream, case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_RESUME: chip->ctrl_playback[ypcm->voices[0]->number + 1] = cpu_to_le32(ypcm->voices[0]->bank_addr); - if (ypcm->voices[1] != NULL && !ypcm->use_441_slot) + if (ypcm->voices[1] && !ypcm->use_441_slot) chip->ctrl_playback[ypcm->voices[1]->number + 1] = cpu_to_le32(ypcm->voices[1]->bank_addr); ypcm->running = 1; break; @@ -418,7 +418,7 @@ static int snd_ymfpci_playback_trigger(struct snd_pcm_substream *substream, case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_SUSPEND: chip->ctrl_playback[ypcm->voices[0]->number + 1] = 0; - if (ypcm->voices[1] != NULL && !ypcm->use_441_slot) + if (ypcm->voices[1] && !ypcm->use_441_slot) chip->ctrl_playback[ypcm->voices[1]->number + 1] = 0; ypcm->running = 0; break; @@ -468,16 +468,16 @@ static int snd_ymfpci_pcm_voice_alloc(struct snd_ymfpci_pcm *ypcm, int voices) { int err; - if (ypcm->voices[1] != NULL && voices < 2) { + if (ypcm->voices[1] && voices < 2) { snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[1]); ypcm->voices[1] = NULL; } - if (voices = 1 && ypcm->voices[0] != NULL) + if (voices = 1 && ypcm->voices[0]) return 0; /* already allocated */ - if (voices = 2 && ypcm->voices[0] != NULL && ypcm->voices[1] != NULL) + if (voices = 2 && ypcm->voices[0] && ypcm->voices[1]) return 0; /* already allocated */ if (voices > 1) { - if (ypcm->voices[0] != NULL && ypcm->voices[1] = NULL) { + if (ypcm->voices[0] && !ypcm->voices[1]) { snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[0]); ypcm->voices[0] = NULL; } @@ -655,7 +655,7 @@ static int snd_ymfpci_playback_hw_free(struct snd_pcm_substream *substream) struct snd_pcm_runtime *runtime = substream->runtime; struct snd_ymfpci_pcm *ypcm; - if (runtime->private_data = NULL) + if (!runtime->private_data) return 0; ypcm = runtime->private_data; @@ -913,7 +913,7 @@ static int snd_ymfpci_playback_open_1(struct snd_pcm_substream *substream) return err; ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL); - if (ypcm = NULL) + if (!ypcm) return -ENOMEM; ypcm->chip = chip; ypcm->type = PLAYBACK_VOICE; @@ -1038,7 +1038,7 @@ static int snd_ymfpci_capture_open(struct snd_pcm_substream *substream, return err; ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL); - if (ypcm = NULL) + if (!ypcm) return -ENOMEM; ypcm->chip = chip; ypcm->type = capture_bank_number + CAPTURE_REC; @@ -1116,7 +1116,7 @@ static int snd_ymfpci_capture_close(struct snd_pcm_substream *substream) struct snd_pcm_runtime *runtime = substream->runtime; struct snd_ymfpci_pcm *ypcm = runtime->private_data; - if (ypcm != NULL) { + if (ypcm) { chip->capture_substream[ypcm->capture_bank_number] = NULL; snd_ymfpci_hw_stop(chip); } @@ -1310,7 +1310,8 @@ static int snd_ymfpci_spdif_default_put(struct snd_kcontrol *kcontrol, spin_lock_irq(&chip->reg_lock); change = chip->spdif_bits != val; chip->spdif_bits = val; - if ((snd_ymfpci_readw(chip, YDSXGR_SPDIFOUTCTRL) & 1) && chip->pcm_spdif = NULL) + if ((snd_ymfpci_readw(chip, YDSXGR_SPDIFOUTCTRL) & 1) && + !chip->pcm_spdif) snd_ymfpci_writew(chip, YDSXGR_SPDIFOUTSTATUS, chip->spdif_bits); spin_unlock_irq(&chip->reg_lock); return change; @@ -2376,7 +2377,7 @@ int snd_ymfpci_create(struct snd_card *card, return err; chip = kzalloc(sizeof(*chip), GFP_KERNEL); - if (chip = NULL) { + if (!chip) { pci_disable_device(pci); return -ENOMEM; } @@ -2437,7 +2438,7 @@ int snd_ymfpci_create(struct snd_card *card, #ifdef CONFIG_PM_SLEEP chip->saved_regs = kmalloc(YDSXGR_NUM_SAVED_REGS * sizeof(u32), GFP_KERNEL); - if (chip->saved_regs = NULL) { + if (!chip->saved_regs) { err = -ENOMEM; goto free_chip; } -- 2.14.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: SF Markus Elfring Subject: [PATCH 3/3] ALSA: ymfpci: Adjust 17 checks for null pointers Date: Wed, 6 Sep 2017 21:50:09 +0200 Message-ID: <35478693-5c8a-38b8-d2b3-fc8a964d5137@users.sourceforge.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mout.web.de (mout.web.de [212.227.15.4]) by alsa0.perex.cz (Postfix) with ESMTP id 08E03266A8A for ; Wed, 6 Sep 2017 21:50:19 +0200 (CEST) In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: alsa-devel@alsa-project.org, Bhumika Goyal , David Howells , Ingo Molnar , Jaroslav Kysela , Takashi Iwai Cc: kernel-janitors@vger.kernel.org, LKML List-Id: alsa-devel@alsa-project.org RnJvbTogTWFya3VzIEVsZnJpbmcgPGVsZnJpbmdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRl OiBXZWQsIDYgU2VwIDIwMTcgMjE6MzA6MzcgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rp bmc6IDhiaXQKClRoZSBzY3JpcHQg4oCcY2hlY2twYXRjaC5wbOKAnSBwb2ludGVkIGluZm9ybWF0 aW9uIG91dCBsaWtlIHRoZSBmb2xsb3dpbmcuCgpDb21wYXJpc29uIHRvIE5VTEwgY291bGQgYmUg d3JpdHRlbiDigKYKClRodXMgZml4IGFmZmVjdGVkIHNvdXJjZSBjb2RlIHBsYWNlcy4KClNpZ25l ZC1vZmYtYnk6IE1hcmt1cyBFbGZyaW5nIDxlbGZyaW5nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4K LS0tCiBzb3VuZC9wY2kveW1mcGNpL3ltZnBjaV9tYWluLmMgfCAzMSArKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jIGIv c291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jCmluZGV4IDhjYTJlNDFlNTgyNy4uNGRhNmU0 M2FkMDA3IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kveW1mcGNpL3ltZnBjaV9tYWluLmMKKysrIGIv c291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jCkBAIC0zMDgsNyArMzA4LDcgQEAgc3RhdGlj IHZvaWQgc25kX3ltZnBjaV9wY21faW50ZXJydXB0KHN0cnVjdCBzbmRfeW1mcGNpICpjaGlwLCBz dHJ1Y3Qgc25kX3ltZnBjaV8KIAkKIAlpZiAoKHlwY20gPSB2b2ljZS0+eXBjbSkgPT0gTlVMTCkK IAkJcmV0dXJuOwotCWlmICh5cGNtLT5zdWJzdHJlYW0gPT0gTlVMTCkKKwlpZiAoIXlwY20tPnN1 YnN0cmVhbSkKIAkJcmV0dXJuOwogCXNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOwogCWlmICh5 cGNtLT5ydW5uaW5nKSB7CkBAIC0zOTYsNyArMzk2LDcgQEAgc3RhdGljIGludCBzbmRfeW1mcGNp X3BsYXliYWNrX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiAJ aW50IHJlc3VsdCA9IDA7CiAKIAlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQlpZiAoeXBj bS0+dm9pY2VzWzBdID09IE5VTEwpIHsKKwlpZiAoIXlwY20tPnZvaWNlc1swXSkgewogCQlyZXN1 bHQgPSAtRUlOVkFMOwogCQlnb3RvIF9fdW5sb2NrOwogCX0KQEAgLTQwNSw3ICs0MDUsNyBAQCBz dGF0aWMgaW50IHNuZF95bWZwY2lfcGxheWJhY2tfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJz dHJlYW0gKnN1YnN0cmVhbSwKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1BBVVNFX1JFTEVBU0U6 CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CiAJCWNoaXAtPmN0cmxfcGxheWJhY2tb eXBjbS0+dm9pY2VzWzBdLT5udW1iZXIgKyAxXSA9IGNwdV90b19sZTMyKHlwY20tPnZvaWNlc1sw XS0+YmFua19hZGRyKTsKLQkJaWYgKHlwY20tPnZvaWNlc1sxXSAhPSBOVUxMICYmICF5cGNtLT51 c2VfNDQxX3Nsb3QpCisJCWlmICh5cGNtLT52b2ljZXNbMV0gJiYgIXlwY20tPnVzZV80NDFfc2xv dCkKIAkJCWNoaXAtPmN0cmxfcGxheWJhY2tbeXBjbS0+dm9pY2VzWzFdLT5udW1iZXIgKyAxXSA9 IGNwdV90b19sZTMyKHlwY20tPnZvaWNlc1sxXS0+YmFua19hZGRyKTsKIAkJeXBjbS0+cnVubmlu ZyA9IDE7CiAJCWJyZWFrOwpAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRpYyBpbnQgc25kX3ltZnBj aV9wbGF5YmFja190cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAog CWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUEFVU0VfUFVTSDoKIAljYXNlIFNORFJWX1BDTV9UUklH R0VSX1NVU1BFTkQ6CiAJCWNoaXAtPmN0cmxfcGxheWJhY2tbeXBjbS0+dm9pY2VzWzBdLT5udW1i ZXIgKyAxXSA9IDA7Ci0JCWlmICh5cGNtLT52b2ljZXNbMV0gIT0gTlVMTCAmJiAheXBjbS0+dXNl XzQ0MV9zbG90KQorCQlpZiAoeXBjbS0+dm9pY2VzWzFdICYmICF5cGNtLT51c2VfNDQxX3Nsb3Qp CiAJCQljaGlwLT5jdHJsX3BsYXliYWNrW3lwY20tPnZvaWNlc1sxXS0+bnVtYmVyICsgMV0gPSAw OwogCQl5cGNtLT5ydW5uaW5nID0gMDsKIAkJYnJlYWs7CkBAIC00NjgsMTYgKzQ2OCwxNiBAQCBz dGF0aWMgaW50IHNuZF95bWZwY2lfcGNtX3ZvaWNlX2FsbG9jKHN0cnVjdCBzbmRfeW1mcGNpX3Bj bSAqeXBjbSwgaW50IHZvaWNlcykKIHsKIAlpbnQgZXJyOwogCi0JaWYgKHlwY20tPnZvaWNlc1sx XSAhPSBOVUxMICYmIHZvaWNlcyA8IDIpIHsKKwlpZiAoeXBjbS0+dm9pY2VzWzFdICYmIHZvaWNl cyA8IDIpIHsKIAkJc25kX3ltZnBjaV92b2ljZV9mcmVlKHlwY20tPmNoaXAsIHlwY20tPnZvaWNl c1sxXSk7CiAJCXlwY20tPnZvaWNlc1sxXSA9IE5VTEw7CiAJfQotCWlmICh2b2ljZXMgPT0gMSAm JiB5cGNtLT52b2ljZXNbMF0gIT0gTlVMTCkKKwlpZiAodm9pY2VzID09IDEgJiYgeXBjbS0+dm9p Y2VzWzBdKQogCQlyZXR1cm4gMDsJCS8qIGFscmVhZHkgYWxsb2NhdGVkICovCi0JaWYgKHZvaWNl cyA9PSAyICYmIHlwY20tPnZvaWNlc1swXSAhPSBOVUxMICYmIHlwY20tPnZvaWNlc1sxXSAhPSBO VUxMKQorCWlmICh2b2ljZXMgPT0gMiAmJiB5cGNtLT52b2ljZXNbMF0gJiYgeXBjbS0+dm9pY2Vz WzFdKQogCQlyZXR1cm4gMDsJCS8qIGFscmVhZHkgYWxsb2NhdGVkICovCiAJaWYgKHZvaWNlcyA+ IDEpIHsKLQkJaWYgKHlwY20tPnZvaWNlc1swXSAhPSBOVUxMICYmIHlwY20tPnZvaWNlc1sxXSA9 PSBOVUxMKSB7CisJCWlmICh5cGNtLT52b2ljZXNbMF0gJiYgIXlwY20tPnZvaWNlc1sxXSkgewog CQkJc25kX3ltZnBjaV92b2ljZV9mcmVlKHlwY20tPmNoaXAsIHlwY20tPnZvaWNlc1swXSk7CiAJ CQl5cGNtLT52b2ljZXNbMF0gPSBOVUxMOwogCQl9CQkKQEAgLTY1NSw3ICs2NTUsNyBAQCBzdGF0 aWMgaW50IHNuZF95bWZwY2lfcGxheWJhY2tfaHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJl YW0gKnN1YnN0cmVhbSkKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3Ry ZWFtLT5ydW50aW1lOwogCXN0cnVjdCBzbmRfeW1mcGNpX3BjbSAqeXBjbTsKIAkKLQlpZiAocnVu dGltZS0+cHJpdmF0ZV9kYXRhID09IE5VTEwpCisJaWYgKCFydW50aW1lLT5wcml2YXRlX2RhdGEp CiAJCXJldHVybiAwOwogCXlwY20gPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CiAKQEAgLTkxMyw3 ICs5MTMsNyBAQCBzdGF0aWMgaW50IHNuZF95bWZwY2lfcGxheWJhY2tfb3Blbl8xKHN0cnVjdCBz bmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogCQlyZXR1cm4gZXJyOwogCiAJeXBjbSA9IGt6 YWxsb2Moc2l6ZW9mKCp5cGNtKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKHlwY20gPT0gTlVMTCkKKwlp ZiAoIXlwY20pCiAJCXJldHVybiAtRU5PTUVNOwogCXlwY20tPmNoaXAgPSBjaGlwOwogCXlwY20t PnR5cGUgPSBQTEFZQkFDS19WT0lDRTsKQEAgLTEwMzgsNyArMTAzOCw3IEBAIHN0YXRpYyBpbnQg c25kX3ltZnBjaV9jYXB0dXJlX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJl YW0sCiAJCXJldHVybiBlcnI7CiAKIAl5cGNtID0ga3phbGxvYyhzaXplb2YoKnlwY20pLCBHRlBf S0VSTkVMKTsKLQlpZiAoeXBjbSA9PSBOVUxMKQorCWlmICgheXBjbSkKIAkJcmV0dXJuIC1FTk9N RU07CiAJeXBjbS0+Y2hpcCA9IGNoaXA7CiAJeXBjbS0+dHlwZSA9IGNhcHR1cmVfYmFua19udW1i ZXIgKyBDQVBUVVJFX1JFQzsKQEAgLTExMTYsNyArMTExNiw3IEBAIHN0YXRpYyBpbnQgc25kX3lt ZnBjaV9jYXB0dXJlX2Nsb3NlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQog CXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAJ c3RydWN0IHNuZF95bWZwY2lfcGNtICp5cGNtID0gcnVudGltZS0+cHJpdmF0ZV9kYXRhOwogCi0J aWYgKHlwY20gIT0gTlVMTCkgeworCWlmICh5cGNtKSB7CiAJCWNoaXAtPmNhcHR1cmVfc3Vic3Ry ZWFtW3lwY20tPmNhcHR1cmVfYmFua19udW1iZXJdID0gTlVMTDsKIAkJc25kX3ltZnBjaV9od19z dG9wKGNoaXApOwogCX0KQEAgLTEzMTAsNyArMTMxMCw4IEBAIHN0YXRpYyBpbnQgc25kX3ltZnBj aV9zcGRpZl9kZWZhdWx0X3B1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIAlzcGlu X2xvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CiAJY2hhbmdlID0gY2hpcC0+c3BkaWZfYml0cyAh PSB2YWw7CiAJY2hpcC0+c3BkaWZfYml0cyA9IHZhbDsKLQlpZiAoKHNuZF95bWZwY2lfcmVhZHco Y2hpcCwgWURTWEdSX1NQRElGT1VUQ1RSTCkgJiAxKSAmJiBjaGlwLT5wY21fc3BkaWYgPT0gTlVM TCkKKwlpZiAoKHNuZF95bWZwY2lfcmVhZHcoY2hpcCwgWURTWEdSX1NQRElGT1VUQ1RSTCkgJiAx KSAmJgorCSAgICAhY2hpcC0+cGNtX3NwZGlmKQogCQlzbmRfeW1mcGNpX3dyaXRldyhjaGlwLCBZ RFNYR1JfU1BESUZPVVRTVEFUVVMsIGNoaXAtPnNwZGlmX2JpdHMpOwogCXNwaW5fdW5sb2NrX2ly cSgmY2hpcC0+cmVnX2xvY2spOwogCXJldHVybiBjaGFuZ2U7CkBAIC0yMzc2LDcgKzIzNzcsNyBA QCBpbnQgc25kX3ltZnBjaV9jcmVhdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLAogCQlyZXR1cm4g ZXJyOwogCiAJY2hpcCA9IGt6YWxsb2Moc2l6ZW9mKCpjaGlwKSwgR0ZQX0tFUk5FTCk7Ci0JaWYg KGNoaXAgPT0gTlVMTCkgeworCWlmICghY2hpcCkgewogCQlwY2lfZGlzYWJsZV9kZXZpY2UocGNp KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQpAQCAtMjQzNyw3ICsyNDM4LDcgQEAgaW50IHNuZF95 bWZwY2lfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKICNpZmRlZiBDT05GSUdfUE1fU0xF RVAKIAljaGlwLT5zYXZlZF9yZWdzID0ga21hbGxvYyhZRFNYR1JfTlVNX1NBVkVEX1JFR1MgKiBz aXplb2YodTMyKSwKIAkJCQkgICBHRlBfS0VSTkVMKTsKLQlpZiAoY2hpcC0+c2F2ZWRfcmVncyA9 PSBOVUxMKSB7CisJaWYgKCFjaGlwLT5zYXZlZF9yZWdzKSB7CiAJCWVyciA9IC1FTk9NRU07CiAJ CWdvdG8gZnJlZV9jaGlwOwogCX0KLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KQWxzYS1kZXZlbCBtYWlsaW5nIGxpc3QKQWxzYS1kZXZl bEBhbHNhLXByb2plY3Qub3JnCmh0dHA6Ly9tYWlsbWFuLmFsc2EtcHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbHNhLWRldmVsCg==