summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Suchanek <hramrach@gmail.com>2016-06-09 15:08:42 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-08-21 15:52:47 (GMT)
commit175f5a4130b20e25b34d9f9b0bb4cfe80ee49d88 (patch)
treebf5b50d905015dd6ee08984780ee5f9097265e72
parentd2805d7fff5ba1db3accd5ef010f9fdbb1925f08 (diff)
downloadlinux-175f5a4130b20e25b34d9f9b0bb4cfe80ee49d88.tar.xz
staging: fbtft: do not allocate huge txbuf
txbuflen can be set to arbitrary value by user and it is also set automagically to the maximum transfer size of the SPI master controller. Do not allocate the buffer when larger than vmem. When my SPI master controller reports maximum transfer size 16M the probe of fbtft fails. Signed-off-by: Michal Suchanek <hramrach@gmail.com> Acked-by: Noralf Trønnes <noralf@tronnes.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/fbtft/fbtft-core.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
index 0c1a77c..ce4fd37 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -820,6 +820,8 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
/* Transmit buffer */
if (txbuflen == -1)
txbuflen = vmem_size + 2; /* add in case startbyte is used */
+ if (txbuflen >= vmem_size + 2)
+ txbuflen = 0;
#ifdef __LITTLE_ENDIAN
if ((!txbuflen) && (bpp > 8))