Message ID | 145856701730.21117.7759662061999658129.stgit@woodpecker.blarg.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Max, [auto build test WARNING on v4.5-rc7] [also build test WARNING on next-20160321] [cannot apply to sailus-media/master linuxtv-media/master] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Max-Kellermann/drivers-media-dvb-core-en50221-move-code-to-dvb_ca_private_free/20160321-213556 config: xtensa-allyesconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=xtensa All warnings (new ones prefixed by >>): drivers/media/dvb-core/dvb_ca_en50221.c: In function 'dvb_ca_private_free': >> drivers/media/dvb-core/dvb_ca_en50221.c:167:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] unsigned int i; ^ vim +167 drivers/media/dvb-core/dvb_ca_en50221.c 151 /* Flag indicating the thread should wake up now */ 152 unsigned int wakeup:1; 153 154 /* Delay the main thread should use */ 155 unsigned long delay; 156 157 /* Slot to start looking for data to read from in the next user-space read operation */ 158 int next_read_slot; 159 160 /* mutex serializing ioctls */ 161 struct mutex ioctl_mutex; 162 }; 163 164 static void dvb_ca_private_free(struct dvb_ca_private *ca) 165 { 166 dvb_unregister_device(ca->dvbdev); > 167 unsigned int i; 168 for (i = 0; i < ca->slot_count; i++) { 169 vfree(ca->slot_info[i].rx_buffer.data); 170 } 171 kfree(ca->slot_info); 172 kfree(ca); 173 } 174 175 static void dvb_ca_en50221_thread_wakeup(struct dvb_ca_private *ca); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/media/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb-core/dvb_ca_en50221.c index f82cd1f..e33364c 100644 --- a/drivers/media/dvb-core/dvb_ca_en50221.c +++ b/drivers/media/dvb-core/dvb_ca_en50221.c @@ -161,6 +161,17 @@ struct dvb_ca_private { struct mutex ioctl_mutex; }; +static void dvb_ca_private_free(struct dvb_ca_private *ca) +{ + dvb_unregister_device(ca->dvbdev); + unsigned int i; + for (i = 0; i < ca->slot_count; i++) { + vfree(ca->slot_info[i].rx_buffer.data); + } + kfree(ca->slot_info); + kfree(ca); +} + static void dvb_ca_en50221_thread_wakeup(struct dvb_ca_private *ca); static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot, u8 * ebuf, int ecount); static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot, u8 * ebuf, int ecount); @@ -1759,10 +1770,7 @@ void dvb_ca_en50221_release(struct dvb_ca_en50221 *pubca) for (i = 0; i < ca->slot_count; i++) { dvb_ca_en50221_slot_shutdown(ca, i); - vfree(ca->slot_info[i].rx_buffer.data); } - kfree(ca->slot_info); - dvb_unregister_device(ca->dvbdev); - kfree(ca); + dvb_ca_private_free(ca); pubca->private = NULL; }
Prepare for postponing the call until all file handles have been closed. Signed-off-by: Max Kellermann <max@duempel.org> --- drivers/media/dvb-core/dvb_ca_en50221.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html