From be9e7b5da26c4329b8b6e2cc5b71d19022d0801d Mon Sep 17 00:00:00 2001 From: Jerry Lee <jerrylee@broadcom.com> Date: Tue, 18 Aug 2015 18:54:25 -0700 Subject: [PATCH] Fix for wrong sequence call, set_fs b/23286899 Save previous value first and then change to KERNEL_DS address limit Change-Id: I4e375319d68ba880b302fc5db5a5f548612cec7e Signed-off-by: Jerry Lee <jerrylee@broadcom.com> --- drivers/net/wireless/bcmdhd/dhd_linux.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/bcmdhd/dhd_linux.c b/drivers/net/wireless/bcmdhd/dhd_linux.c index 6e89f07fb3a9..23978f458775 100644 --- a/drivers/net/wireless/bcmdhd/dhd_linux.c +++ b/drivers/net/wireless/bcmdhd/dhd_linux.c @@ -4615,8 +4615,11 @@ dhd_init_logstrs_array(dhd_event_log_t *temp) return BCME_OK; } kflags = in_atomic() ? GFP_ATOMIC : GFP_KERNEL; - set_fs(KERNEL_DS); + + /* Save previous address limit first and then change to KERNEL_DS address limit */ fs = get_fs(); + set_fs(KERNEL_DS); + filep = filp_open(logstrs_path, O_RDONLY, 0); if (IS_ERR(filep)) { DHD_ERROR(("Failed to open the file logstrs.bin in %s, %s\n", __FUNCTION__, logstrs_path)); @@ -4730,7 +4733,10 @@ fail: } if (!IS_ERR(filep)) filp_close(filep, NULL); + + /* Restore previous address limit */ set_fs(fs); + temp->fmts = NULL; return -1; } -- GitLab