mirror of https://gitee.com/openkylin/linux.git
printk: ringbuffer: Reference text_data_ring directly in callees.
A bunch of functions in the new ringbuffer code take both a printk_ringbuffer struct and a separate prb_data_ring. This is a relic from an earlier version of the code when a second data ring was present. Since this is no longer the case remove the extra function argument from: - data_make_reusable() - data_push_tail() - data_alloc() - data_realloc() Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: John Ogness <john.ogness@linutronix.de> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Petr Mladek <pmladek@suse.com>
This commit is contained in:
parent
8119c4332d
commit
584da07686
|
@ -559,11 +559,12 @@ static void desc_make_reusable(struct prb_desc_ring *desc_ring,
|
|||
* on error the caller can re-load the tail lpos to determine the situation.
|
||||
*/
|
||||
static bool data_make_reusable(struct printk_ringbuffer *rb,
|
||||
struct prb_data_ring *data_ring,
|
||||
unsigned long lpos_begin,
|
||||
unsigned long lpos_end,
|
||||
unsigned long *lpos_out)
|
||||
{
|
||||
|
||||
struct prb_data_ring *data_ring = &rb->text_data_ring;
|
||||
struct prb_desc_ring *desc_ring = &rb->desc_ring;
|
||||
struct prb_data_block *blk;
|
||||
enum desc_state d_state;
|
||||
|
@ -625,10 +626,9 @@ static bool data_make_reusable(struct printk_ringbuffer *rb,
|
|||
* descriptors into the reusable state if the tail is pushed beyond
|
||||
* their associated data block.
|
||||
*/
|
||||
static bool data_push_tail(struct printk_ringbuffer *rb,
|
||||
struct prb_data_ring *data_ring,
|
||||
unsigned long lpos)
|
||||
static bool data_push_tail(struct printk_ringbuffer *rb, unsigned long lpos)
|
||||
{
|
||||
struct prb_data_ring *data_ring = &rb->text_data_ring;
|
||||
unsigned long tail_lpos_new;
|
||||
unsigned long tail_lpos;
|
||||
unsigned long next_lpos;
|
||||
|
@ -669,8 +669,7 @@ static bool data_push_tail(struct printk_ringbuffer *rb,
|
|||
* Make all descriptors reusable that are associated with
|
||||
* data blocks before @lpos.
|
||||
*/
|
||||
if (!data_make_reusable(rb, data_ring, tail_lpos, lpos,
|
||||
&next_lpos)) {
|
||||
if (!data_make_reusable(rb, tail_lpos, lpos, &next_lpos)) {
|
||||
/*
|
||||
* 1. Guarantee the block ID loaded in
|
||||
* data_make_reusable() is performed before
|
||||
|
@ -807,7 +806,7 @@ static bool desc_push_tail(struct printk_ringbuffer *rb,
|
|||
* data blocks once their associated descriptor is gone.
|
||||
*/
|
||||
|
||||
if (!data_push_tail(rb, &rb->text_data_ring, desc.text_blk_lpos.next))
|
||||
if (!data_push_tail(rb, desc.text_blk_lpos.next))
|
||||
return false;
|
||||
|
||||
/*
|
||||
|
@ -1021,10 +1020,10 @@ static unsigned long get_next_lpos(struct prb_data_ring *data_ring,
|
|||
* if necessary. This function also associates the data block with
|
||||
* a specified descriptor.
|
||||
*/
|
||||
static char *data_alloc(struct printk_ringbuffer *rb,
|
||||
struct prb_data_ring *data_ring, unsigned int size,
|
||||
static char *data_alloc(struct printk_ringbuffer *rb, unsigned int size,
|
||||
struct prb_data_blk_lpos *blk_lpos, unsigned long id)
|
||||
{
|
||||
struct prb_data_ring *data_ring = &rb->text_data_ring;
|
||||
struct prb_data_block *blk;
|
||||
unsigned long begin_lpos;
|
||||
unsigned long next_lpos;
|
||||
|
@ -1043,7 +1042,7 @@ static char *data_alloc(struct printk_ringbuffer *rb,
|
|||
do {
|
||||
next_lpos = get_next_lpos(data_ring, begin_lpos, size);
|
||||
|
||||
if (!data_push_tail(rb, data_ring, next_lpos - DATA_SIZE(data_ring))) {
|
||||
if (!data_push_tail(rb, next_lpos - DATA_SIZE(data_ring))) {
|
||||
/* Failed to allocate, specify a data-less block. */
|
||||
blk_lpos->begin = FAILED_LPOS;
|
||||
blk_lpos->next = FAILED_LPOS;
|
||||
|
@ -1102,10 +1101,10 @@ static char *data_alloc(struct printk_ringbuffer *rb,
|
|||
* Return a pointer to the beginning of the entire data buffer or NULL on
|
||||
* failure.
|
||||
*/
|
||||
static char *data_realloc(struct printk_ringbuffer *rb,
|
||||
struct prb_data_ring *data_ring, unsigned int size,
|
||||
static char *data_realloc(struct printk_ringbuffer *rb, unsigned int size,
|
||||
struct prb_data_blk_lpos *blk_lpos, unsigned long id)
|
||||
{
|
||||
struct prb_data_ring *data_ring = &rb->text_data_ring;
|
||||
struct prb_data_block *blk;
|
||||
unsigned long head_lpos;
|
||||
unsigned long next_lpos;
|
||||
|
@ -1132,7 +1131,7 @@ static char *data_realloc(struct printk_ringbuffer *rb,
|
|||
return &blk->data[0];
|
||||
}
|
||||
|
||||
if (!data_push_tail(rb, data_ring, next_lpos - DATA_SIZE(data_ring)))
|
||||
if (!data_push_tail(rb, next_lpos - DATA_SIZE(data_ring)))
|
||||
return NULL;
|
||||
|
||||
/* The memory barrier involvement is the same as data_alloc:A. */
|
||||
|
@ -1397,7 +1396,7 @@ bool prb_reserve_in_last(struct prb_reserved_entry *e, struct printk_ringbuffer
|
|||
if (r->text_buf_size > max_size)
|
||||
goto fail;
|
||||
|
||||
r->text_buf = data_alloc(rb, &rb->text_data_ring, r->text_buf_size,
|
||||
r->text_buf = data_alloc(rb, r->text_buf_size,
|
||||
&d->text_blk_lpos, id);
|
||||
} else {
|
||||
if (!get_data(&rb->text_data_ring, &d->text_blk_lpos, &data_size))
|
||||
|
@ -1421,7 +1420,7 @@ bool prb_reserve_in_last(struct prb_reserved_entry *e, struct printk_ringbuffer
|
|||
if (r->text_buf_size > max_size)
|
||||
goto fail;
|
||||
|
||||
r->text_buf = data_realloc(rb, &rb->text_data_ring, r->text_buf_size,
|
||||
r->text_buf = data_realloc(rb, r->text_buf_size,
|
||||
&d->text_blk_lpos, id);
|
||||
}
|
||||
if (r->text_buf_size && !r->text_buf)
|
||||
|
@ -1549,8 +1548,7 @@ bool prb_reserve(struct prb_reserved_entry *e, struct printk_ringbuffer *rb,
|
|||
if (info->seq > 0)
|
||||
desc_make_final(desc_ring, DESC_ID(id - 1));
|
||||
|
||||
r->text_buf = data_alloc(rb, &rb->text_data_ring, r->text_buf_size,
|
||||
&d->text_blk_lpos, id);
|
||||
r->text_buf = data_alloc(rb, r->text_buf_size, &d->text_blk_lpos, id);
|
||||
/* If text data allocation fails, a data-less record is committed. */
|
||||
if (r->text_buf_size && !r->text_buf) {
|
||||
prb_commit(e);
|
||||
|
|
Loading…
Reference in New Issue