if (adth->signature != cpu_to_le32(IOSM_AGGR_MUX_SIG_ADTH))
                        goto adb_decode_err;
 
-               if (le16_to_cpu(adth->table_length) < (sizeof(struct mux_adth) -
-                               sizeof(struct mux_adth_dg)))
+               if (le16_to_cpu(adth->table_length) < sizeof(struct mux_adth))
                        goto adb_decode_err;
 
                /* Calculate the number of datagrams. */
                nr_of_dg = (le16_to_cpu(adth->table_length) -
-                                       sizeof(struct mux_adth) +
-                                       sizeof(struct mux_adth_dg)) /
+                                       sizeof(struct mux_adth)) /
                                        sizeof(struct mux_adth_dg);
 
                /* Is the datagram table empty ? */
                }
 
                /* New aggregated datagram table. */
-               dg = &adth->dg;
+               dg = adth->dg;
                if (mux_dl_process_dg(ipc_mux, adbh, dg, skb, if_id,
                                      nr_of_dg) < 0)
                        goto adb_decode_err;
                        adth->if_id = i;
                        adth->table_length = cpu_to_le16(adth_dg_size);
                        adth_dg_size -= offsetof(struct mux_adth, dg);
-                       memcpy(&adth->dg, ul_adb->dg[i], adth_dg_size);
+                       memcpy(adth->dg, ul_adb->dg[i], adth_dg_size);
                        ul_adb->if_cnt++;
                }
 
 
                if (adth->signature == cpu_to_le32(IOSM_AGGR_MUX_SIG_ADTH)) {
                        nr_of_dg = (le16_to_cpu(adth->table_length) -
-                                       sizeof(struct mux_adth) +
-                                       sizeof(struct mux_adth_dg)) /
+                                       sizeof(struct mux_adth)) /
                                        sizeof(struct mux_adth_dg);
 
                        if (nr_of_dg <= 0)
                                return payload_size;
 
-                       dg = &adth->dg;
+                       dg = adth->dg;
 
                        for (i = 0; i < nr_of_dg; i++, dg++) {
                                if (le32_to_cpu(dg->datagram_index) <