Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] dvb-core: get rid of demux optional circular buffer

There is a provision at the dvb_demux.c to use a vmalloc'ed
circular buffer, enabled via an extra #ifdef option that it
is not at Kconfig. Enabling it will only make the Kernel to
allocate/deallocate such buffer, but no code would actually
use it. So, no practical effect, except for sparing some
memory without any good reason.

So, get rid of such dead code.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>

+6 -50
+1 -4
drivers/media/dvb-core/demux.h
··· 103 103 u16 pid, 104 104 int type, 105 105 enum dmx_ts_pes pes_type, 106 - size_t circular_buffer_size, 107 106 ktime_t timeout); 108 107 int (*start_filtering)(struct dmx_ts_feed *feed); 109 108 int (*stop_filtering)(struct dmx_ts_feed *feed); ··· 180 181 /* public: */ 181 182 int (*set)(struct dmx_section_feed *feed, 182 183 u16 pid, 183 - size_t circular_buffer_size, 184 184 int check_crc); 185 185 int (*allocate_filter)(struct dmx_section_feed *feed, 186 186 struct dmx_section_filter **filter); ··· 204 206 * the &dmx_demux. 205 207 * Any TS packets that match the filter settings are copied to a circular 206 208 * buffer. The filtered TS packets are delivered to the client using this 207 - * callback function. The size of the circular buffer is controlled by the 208 - * circular_buffer_size parameter of the &dmx_ts_feed.@set function. 209 + * callback function. 209 210 * It is expected that the @buffer1 and @buffer2 callback parameters point to 210 211 * addresses within the circular buffer, but other implementations are also 211 212 * possible. Note that the called party should not try to free the memory
+2 -2
drivers/media/dvb-core/dmxdev.c
··· 595 595 tsfeed = feed->ts; 596 596 tsfeed->priv = filter; 597 597 598 - ret = tsfeed->set(tsfeed, feed->pid, ts_type, ts_pes, 32768, timeout); 598 + ret = tsfeed->set(tsfeed, feed->pid, ts_type, ts_pes, timeout); 599 599 if (ret < 0) { 600 600 dmxdev->demux->release_ts_feed(dmxdev->demux, tsfeed); 601 601 return ret; ··· 666 666 return ret; 667 667 } 668 668 669 - ret = (*secfeed)->set(*secfeed, para->pid, 32768, 669 + ret = (*secfeed)->set(*secfeed, para->pid, 670 670 (para->flags & DMX_CHECK_CRC) ? 1 : 0); 671 671 if (ret < 0) { 672 672 pr_err("DVB (%s): could not set feed\n",
+2 -40
drivers/media/dvb-core/dvb_demux.c
··· 36 36 37 37 #include "dvb_demux.h" 38 38 39 - #define NOBUFS 40 - 41 39 static int dvb_demux_tscheck; 42 40 module_param(dvb_demux_tscheck, int, 0644); 43 41 MODULE_PARM_DESC(dvb_demux_tscheck, ··· 661 663 } 662 664 663 665 static int dmx_ts_feed_set(struct dmx_ts_feed *ts_feed, u16 pid, int ts_type, 664 - enum dmx_ts_pes pes_type, 665 - size_t circular_buffer_size, ktime_t timeout) 666 + enum dmx_ts_pes pes_type, ktime_t timeout) 666 667 { 667 668 struct dvb_demux_feed *feed = (struct dvb_demux_feed *)ts_feed; 668 669 struct dvb_demux *demux = feed->demux; ··· 691 694 dvb_demux_feed_add(feed); 692 695 693 696 feed->pid = pid; 694 - feed->buffer_size = circular_buffer_size; 695 697 feed->timeout = timeout; 696 698 feed->ts_type = ts_type; 697 699 feed->pes_type = pes_type; 698 - 699 - if (feed->buffer_size) { 700 - #ifdef NOBUFS 701 - feed->buffer = NULL; 702 - #else 703 - feed->buffer = vmalloc(feed->buffer_size); 704 - if (!feed->buffer) { 705 - mutex_unlock(&demux->mutex); 706 - return -ENOMEM; 707 - } 708 - #endif 709 - } 710 700 711 701 feed->state = DMX_STATE_READY; 712 702 mutex_unlock(&demux->mutex); ··· 783 799 feed->demux = demux; 784 800 feed->pid = 0xffff; 785 801 feed->peslen = 0xfffa; 786 - feed->buffer = NULL; 787 802 788 803 (*ts_feed) = &feed->feed.ts; 789 804 (*ts_feed)->parent = dmx; ··· 819 836 mutex_unlock(&demux->mutex); 820 837 return -EINVAL; 821 838 } 822 - #ifndef NOBUFS 823 - vfree(feed->buffer); 824 - feed->buffer = NULL; 825 - #endif 826 839 827 840 feed->state = DMX_STATE_FREE; 828 841 feed->filter->state = DMX_STATE_FREE; ··· 870 891 } 871 892 872 893 static int dmx_section_feed_set(struct dmx_section_feed *feed, 873 - u16 pid, size_t circular_buffer_size, 874 - int check_crc) 894 + u16 pid, int check_crc) 875 895 { 876 896 struct dvb_demux_feed *dvbdmxfeed = (struct dvb_demux_feed *)feed; 877 897 struct dvb_demux *dvbdmx = dvbdmxfeed->demux; ··· 884 906 dvb_demux_feed_add(dvbdmxfeed); 885 907 886 908 dvbdmxfeed->pid = pid; 887 - dvbdmxfeed->buffer_size = circular_buffer_size; 888 909 dvbdmxfeed->feed.sec.check_crc = check_crc; 889 - 890 - #ifdef NOBUFS 891 - dvbdmxfeed->buffer = NULL; 892 - #else 893 - dvbdmxfeed->buffer = vmalloc(dvbdmxfeed->buffer_size); 894 - if (!dvbdmxfeed->buffer) { 895 - mutex_unlock(&dvbdmx->mutex); 896 - return -ENOMEM; 897 - } 898 - #endif 899 910 900 911 dvbdmxfeed->state = DMX_STATE_READY; 901 912 mutex_unlock(&dvbdmx->mutex); ··· 1044 1077 dvbdmxfeed->feed.sec.secbufp = dvbdmxfeed->feed.sec.seclen = 0; 1045 1078 dvbdmxfeed->feed.sec.tsfeedp = 0; 1046 1079 dvbdmxfeed->filter = NULL; 1047 - dvbdmxfeed->buffer = NULL; 1048 1080 1049 1081 (*feed) = &dvbdmxfeed->feed.sec; 1050 1082 (*feed)->is_filtering = 0; ··· 1072 1106 mutex_unlock(&dvbdmx->mutex); 1073 1107 return -EINVAL; 1074 1108 } 1075 - #ifndef NOBUFS 1076 - vfree(dvbdmxfeed->buffer); 1077 - dvbdmxfeed->buffer = NULL; 1078 - #endif 1079 1109 dvbdmxfeed->state = DMX_STATE_FREE; 1080 1110 1081 1111 dvb_demux_feed_del(dvbdmxfeed);
-2
drivers/media/dvb-core/dvb_demux.h
··· 80 80 int type; 81 81 int state; 82 82 u16 pid; 83 - u8 *buffer; 84 - int buffer_size; 85 83 86 84 ktime_t timeout; 87 85 struct dvb_demux_filter *filter;
+1 -2
drivers/media/dvb-core/dvb_net.c
··· 969 969 goto error; 970 970 } 971 971 972 - ret = priv->secfeed->set(priv->secfeed, priv->pid, 32768, 1); 972 + ret = priv->secfeed->set(priv->secfeed, priv->pid, 1); 973 973 974 974 if (ret<0) { 975 975 pr_err("%s: could not set section feed\n", dev->name); ··· 1023 1023 priv->pid, /* pid */ 1024 1024 TS_PACKET, /* type */ 1025 1025 DMX_PES_OTHER, /* pes type */ 1026 - 32768, /* circular buffer size */ 1027 1026 timeout /* timeout */ 1028 1027 ); 1029 1028