.. | .. |
---|
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]; |
---|