X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnxt%2Ftf_ulp%2Fulp_utils.c;h=df3afaa6fdef5359673dc919f745fc1741206bba;hb=c8834a3663b7ff3269a1b4e6a2772999dd485760;hp=fc4f435c9760aa6be3772b703a222712772bcdd8;hpb=f63aa27db6343df614f9ecf61e26269bf3e779c4;p=dpdk.git diff --git a/drivers/net/bnxt/tf_ulp/ulp_utils.c b/drivers/net/bnxt/tf_ulp/ulp_utils.c index fc4f435c97..df3afaa6fd 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_utils.c +++ b/drivers/net/bnxt/tf_ulp/ulp_utils.c @@ -882,7 +882,8 @@ ulp_blob_msb_block_merge(struct ulp_blob *dst, struct ulp_blob *src, for (i = 0; i < num;) { if (((dst->write_idx % block_size) + (num - i)) > block_size) - write_bytes = block_size - dst->write_idx; + write_bytes = block_size - + (dst->write_idx % block_size); else write_bytes = num - i; for (k = 0; k < ULP_BITS_2_BYTE_NR(write_bytes); k++) { @@ -964,8 +965,11 @@ ulp_blob_append(struct ulp_blob *dst, struct ulp_blob *src, ulp_bs_put_msb(dst->data, dst->write_idx, ULP_BLOB_BYTE, bluff); dst->write_idx += remaining; + src_offset += remaining; } + src_buf += ULP_BITS_2_BYTE_NR(src_offset); + /* Push the byte aligned pieces */ for (k = 0; k < ULP_BITS_2_BYTE_NR(src_len); k++) { ulp_bs_put_msb(dst->data, dst->write_idx, ULP_BLOB_BYTE,