| .. | .. |
|---|
| 163 | 163 | { |
|---|
| 164 | 164 | struct rchan_buf *buf; |
|---|
| 165 | 165 | |
|---|
| 166 | | - if (chan->n_subbufs > KMALLOC_MAX_SIZE / sizeof(size_t *)) |
|---|
| 166 | + if (chan->n_subbufs > KMALLOC_MAX_SIZE / sizeof(size_t)) |
|---|
| 167 | 167 | return NULL; |
|---|
| 168 | 168 | |
|---|
| 169 | 169 | buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL); |
|---|
| 170 | 170 | if (!buf) |
|---|
| 171 | 171 | return NULL; |
|---|
| 172 | | - buf->padding = kmalloc_array(chan->n_subbufs, sizeof(size_t *), |
|---|
| 172 | + buf->padding = kmalloc_array(chan->n_subbufs, sizeof(size_t), |
|---|
| 173 | 173 | GFP_KERNEL); |
|---|
| 174 | 174 | if (!buf->padding) |
|---|
| 175 | 175 | goto free_buf; |
|---|
| .. | .. |
|---|
| 1077 | 1077 | size_t subbuf_size = buf->chan->subbuf_size; |
|---|
| 1078 | 1078 | size_t n_subbufs = buf->chan->n_subbufs; |
|---|
| 1079 | 1079 | size_t consumed = buf->subbufs_consumed % n_subbufs; |
|---|
| 1080 | | - size_t read_pos = consumed * subbuf_size + buf->bytes_consumed; |
|---|
| 1080 | + size_t read_pos = (consumed * subbuf_size + buf->bytes_consumed) |
|---|
| 1081 | + % (n_subbufs * subbuf_size); |
|---|
| 1081 | 1082 | |
|---|
| 1082 | 1083 | read_subbuf = read_pos / subbuf_size; |
|---|
| 1083 | 1084 | padding = buf->padding[read_subbuf]; |
|---|