Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1652121 > unrolled thread
| Started by | Hans de Goede <hdegoede@redhat.com> |
|---|---|
| First post | 2017-05-28 14:40 +0200 |
| Last post | 2017-05-28 14:40 +0200 |
| Articles | 6 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v5 1/7] staging: atomisp: Fix calling efivar_entry_get() with unaligned arguments Hans de Goede <hdegoede@redhat.com> - 2017-05-28 14:40 +0200
[PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device Hans de Goede <hdegoede@redhat.com> - 2017-05-28 14:40 +0200
Re: [PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device Alan Cox <gnomes@lxorguk.ukuu.org.uk> - 2017-05-28 19:10 +0200
Re: [PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device Hans de Goede <hdegoede@redhat.com> - 2017-05-28 20:30 +0200
Re: [PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device Alan Cox <gnomes@lxorguk.ukuu.org.uk> - 2017-05-28 22:10 +0200
[PATCH v5 3/7] staging: atomisp: Set step to 0 for mt9m114 menu control Hans de Goede <hdegoede@redhat.com> - 2017-05-28 14:40 +0200
| From | Hans de Goede <hdegoede@redhat.com> |
|---|---|
| Date | 2017-05-28 14:40 +0200 |
| Subject | [PATCH v5 1/7] staging: atomisp: Fix calling efivar_entry_get() with unaligned arguments |
| Message-ID | <tM5Ed-1Z0-1@gated-at.bofh.it> |
efivar_entry_get has certain alignment requirements and the atomisp
platform code was not honoring these, causing an oops by triggering the
WARN_ON in arch/x86/platform/efi/efi_64.c: virt_to_phys_or_null_size().
This commit fixes this by using the members of the efivar struct embedded
in the efivar_entry struct we kzalloc as arguments to efivar_entry_get(),
which is how all the other callers of efivar_entry_get() do this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
.../atomisp/platform/intel-mid/atomisp_gmin_platform.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
index 5b4506a71126..104fea2f8697 100644
--- a/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
+++ b/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
@@ -623,9 +623,7 @@ int gmin_get_config_var(struct device *dev, const char *var, char *out, size_t *
char var8[CFG_VAR_NAME_MAX];
efi_char16_t var16[CFG_VAR_NAME_MAX];
struct efivar_entry *ev;
- u32 efiattr_dummy;
int i, j, ret;
- unsigned long efilen;
if (dev && ACPI_COMPANION(dev))
dev = &ACPI_COMPANION(dev)->dev;
@@ -684,15 +682,18 @@ int gmin_get_config_var(struct device *dev, const char *var, char *out, size_t *
return -ENOMEM;
memcpy(&ev->var.VariableName, var16, sizeof(var16));
ev->var.VendorGuid = GMIN_CFG_VAR_EFI_GUID;
+ ev->var.DataSize = *out_len;
- efilen = *out_len;
- ret = efivar_entry_get(ev, &efiattr_dummy, &efilen, out);
+ ret = efivar_entry_get(ev, &ev->var.Attributes,
+ &ev->var.DataSize, ev->var.Data);
+ if (ret == 0) {
+ memcpy(out, ev->var.Data, ev->var.DataSize);
+ *out_len = ev->var.DataSize;
+ } else {
+ dev_warn(dev, "Failed to find gmin variable %s\n", var8);
+ }
kfree(ev);
- *out_len = efilen;
-
- if (ret)
- dev_warn(dev, "Failed to find gmin variable %s\n", var8);
return ret;
}
--
2.13.0
[toc] | [next] | [standalone]
| From | Hans de Goede <hdegoede@redhat.com> |
|---|---|
| Date | 2017-05-28 14:40 +0200 |
| Subject | [PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device |
| Message-ID | <tM5Ee-1Z0-9@gated-at.bofh.it> |
| In reply to | #1652121 |
Do not call dev_warn with a NULL device, this silence the following 2
warnings:
[ 14.392194] (NULL device *): Failed to find gmin variable gmin_V2P8GPIO
[ 14.392257] (NULL device *): Failed to find gmin variable gmin_V1P8GPIO
We could switch to using pr_warn for dev == NULL instead, but as comments
in the source indicate, the check for these 2 special gmin variables with
a NULL device is a workaround for 2 specific evaluation boards, so
completely silencing the missing warning for these actually is a good
thing.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
.../staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
index 104fea2f8697..3fea81ea5dbd 100644
--- a/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
+++ b/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
@@ -689,7 +689,7 @@ int gmin_get_config_var(struct device *dev, const char *var, char *out, size_t *
if (ret == 0) {
memcpy(out, ev->var.Data, ev->var.DataSize);
*out_len = ev->var.DataSize;
- } else {
+ } else if (dev) {
dev_warn(dev, "Failed to find gmin variable %s\n", var8);
}
--
2.13.0
[toc] | [prev] | [next] | [standalone]
| From | Alan Cox <gnomes@lxorguk.ukuu.org.uk> |
|---|---|
| Date | 2017-05-28 19:10 +0200 |
| Subject | Re: [PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device |
| Message-ID | <tM9Rv-4Px-3@gated-at.bofh.it> |
| In reply to | #1652122 |
On Sun, 28 May 2017 14:30:35 +0200 Hans de Goede <hdegoede@redhat.com> wrote: > Do not call dev_warn with a NULL device, this silence the following 2 > warnings: > > [ 14.392194] (NULL device *): Failed to find gmin variable gmin_V2P8GPIO > [ 14.392257] (NULL device *): Failed to find gmin variable gmin_V1P8GPIO > > We could switch to using pr_warn for dev == NULL instead, but as comments > in the source indicate, the check for these 2 special gmin variables with > a NULL device is a workaround for 2 specific evaluation boards, so > completely silencing the missing warning for these actually is a good > thing. At which point real missing variables won't get reported so NAK. I think the right fix is to make the offending callers pass subdev->dev which if my understanding of the subdevices is correct should pass the right valid device field from the atomisp. Please also cc me if you are proposing patches this driver - and also linux-media. Alan
[toc] | [prev] | [next] | [standalone]
| From | Hans de Goede <hdegoede@redhat.com> |
|---|---|
| Date | 2017-05-28 20:30 +0200 |
| Subject | Re: [PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device |
| Message-ID | <tMb6W-5wv-15@gated-at.bofh.it> |
| In reply to | #1652180 |
Hi, On 28-05-17 19:08, Alan Cox wrote: > On Sun, 28 May 2017 14:30:35 +0200 > Hans de Goede <hdegoede@redhat.com> wrote: > >> Do not call dev_warn with a NULL device, this silence the following 2 >> warnings: >> >> [ 14.392194] (NULL device *): Failed to find gmin variable gmin_V2P8GPIO >> [ 14.392257] (NULL device *): Failed to find gmin variable gmin_V1P8GPIO >> >> We could switch to using pr_warn for dev == NULL instead, but as comments >> in the source indicate, the check for these 2 special gmin variables with >> a NULL device is a workaround for 2 specific evaluation boards, so >> completely silencing the missing warning for these actually is a good >> thing. > > At which point real missing variables won't get reported so NAK. I think > the right fix is to make the offending callers pass > > subdev->dev The code for the special v1p8 / v2p8 gpios is ugly as sin, it operates on a global v2p8_gpio value rather then storing info in the gmin_subdev struct, as such passing the subdev->dev pointer would be simply wrong. AFAICT the v1p8 / v2p8 gpio code is the only caller passing in a NULL pointer and as said since thisv1p8 / v2p8 gpio code is only for some special evaluation boards, silencing the error when these variables are not present actually is the right thing to do. > which if my understanding of the subdevices is correct should pass the > right valid device field from the atomisp. > > Please also cc me if you are proposing patches this driver - and also > linux-media. Sorry about that, I messed up my git send-email foo and send this to a wrong set of addresses (and also added v5 in the subject which should not be there) I did send out a fresh-copy with the full 7 patch patch-set directly after CTRL+c-ing this wrong send-email (which only got the first 3 patches send). Regards, Hans
[toc] | [prev] | [next] | [standalone]
| From | Alan Cox <gnomes@lxorguk.ukuu.org.uk> |
|---|---|
| Date | 2017-05-28 22:10 +0200 |
| Subject | Re: [PATCH v5 2/7] staging: atomisp: Do not call dev_warn with a NULL device |
| Message-ID | <tMcFH-6DJ-1@gated-at.bofh.it> |
| In reply to | #1652193 |
> The code for the special v1p8 / v2p8 gpios is ugly as sin, it operates on > a global v2p8_gpio value rather then storing info in the gmin_subdev struct, > as such passing the subdev->dev pointer would be simply wrong. AFAICT the > v1p8 / v2p8 gpio code is the only caller passing in a NULL pointer and > as said since thisv1p8 / v2p8 gpio code is only for some special evaluation > boards, silencing the error when these variables are not present actually > is the right thing to do. Unfortunately I don't think it is constrained to RVPs. As with all developer hacks on code that isn't subject to public review at the time they escape into the wild 8( Agreed though. The patch makes sense if you don't want to print anything. > > which if my understanding of the subdevices is correct should pass the > > right valid device field from the atomisp. > > > > Please also cc me if you are proposing patches this driver - and also > > linux-media. > > Sorry about that, I messed up my git send-email foo and send this to > a wrong set of addresses (and also added v5 in the subject which should > not be there) I did send out a fresh-copy with the full 7 patch patch-set > directly after CTRL+c-ing this wrong send-email (which only got the > first 3 patches send). So I discovered just afterwards 8) Alan
[toc] | [prev] | [next] | [standalone]
| From | Hans de Goede <hdegoede@redhat.com> |
|---|---|
| Date | 2017-05-28 14:40 +0200 |
| Subject | [PATCH v5 3/7] staging: atomisp: Set step to 0 for mt9m114 menu control |
| Message-ID | <tM5Ee-1Z0-13@gated-at.bofh.it> |
| In reply to | #1652121 |
menu controls are not allowed to have a step size, set step to 0 to
fix an oops from the WARN_ON in v4l2_ctrl_new_custom() triggering
because of this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/staging/media/atomisp/i2c/mt9m114.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/media/atomisp/i2c/mt9m114.c b/drivers/staging/media/atomisp/i2c/mt9m114.c
index ced175c268d1..3fa915313e53 100644
--- a/drivers/staging/media/atomisp/i2c/mt9m114.c
+++ b/drivers/staging/media/atomisp/i2c/mt9m114.c
@@ -1499,7 +1499,7 @@ static struct v4l2_ctrl_config mt9m114_controls[] = {
.type = V4L2_CTRL_TYPE_MENU,
.min = 0,
.max = 3,
- .step = 1,
+ .step = 0,
.def = 1,
.flags = 0,
},
--
2.13.0
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web