struct brcmf_sdio *bus = sdiodev->bus;
        struct brcmf_core *core = bus->sdio_core;
        u32 value;
+       __le32 iovar;
        int err;
 
        /* maxctl provided by common layer */
         */
        if (core->rev < 12) {
                /* for sdio core rev < 12, disable txgloming */
-               value = 0;
-               err = brcmf_iovar_data_set(dev, "bus:txglom", &value,
-                                          sizeof(u32));
+               iovar = 0;
+               err = brcmf_iovar_data_set(dev, "bus:txglom", &iovar,
+                                          sizeof(iovar));
        } else {
                /* otherwise, set txglomalign */
                value = sdiodev->settings->bus.sdio.sd_sgentry_align;
                /* SDIO ADMA requires at least 32 bit alignment */
-               value = cpu_to_le32(max_t(u32, value, ALIGNMENT));
-               err = brcmf_iovar_data_set(dev, "bus:txglomalign", &value,
-                                          sizeof(u32));
+               iovar = cpu_to_le32(max_t(u32, value, ALIGNMENT));
+               err = brcmf_iovar_data_set(dev, "bus:txglomalign", &iovar,
+                                          sizeof(iovar));
        }
 
        if (err < 0)
        bus->tx_hdrlen = SDPCM_HWHDR_LEN + SDPCM_SWHDR_LEN;
        if (sdiodev->sg_support) {
                bus->txglom = false;
-               value = cpu_to_le32(1);
+               iovar = cpu_to_le32(1);
                err = brcmf_iovar_data_set(bus->sdiodev->dev, "bus:rxglom",
-                                          &value, sizeof(u32));
+                                          &iovar, sizeof(iovar));
                if (err < 0) {
                        /* bus:rxglom is allowed to fail */
                        err = 0;