[media] tuner-xc2028: Don't use dynamic static allocation
[sfrench/cifs-2.6.git] / drivers / media / tuners / tuner-xc2028.c
index e287a741731965bf8545a5420c1c3bbfae384014..4be5cf808a40584d949e89fa78e7a90c086a31f5 100644 (file)
@@ -24,6 +24,9 @@
 #include <linux/dvb/frontend.h>
 #include "dvb_frontend.h"
 
+/* Max transfer size done by I2C transfer functions */
+#define MAX_XFER_SIZE  80
+
 /* Registers (Write-only) */
 #define XREG_INIT         0x00
 #define XREG_RF_FREQ      0x02
@@ -547,7 +550,10 @@ static int load_firmware(struct dvb_frontend *fe, unsigned int type,
 {
        struct xc2028_data *priv = fe->tuner_priv;
        int                pos, rc;
-       unsigned char      *p, *endp, buf[priv->ctrl.max_len];
+       unsigned char      *p, *endp, buf[MAX_XFER_SIZE];
+
+       if (priv->ctrl.max_len > sizeof(buf))
+               priv->ctrl.max_len = sizeof(buf);
 
        tuner_dbg("%s called\n", __func__);