int			serial	= 0; 
unsigned int		serial; 
struct audit_buffer *audit_log_start(struct audit_context *ctx){	struct audit_buffer	*ab	= NULL;	unsigned long		flags;	struct timespec		t;	int			serial	= 0;	if (!audit_initialized)		return NULL;	if (audit_backlog_limit	    && atomic_read(&audit_backlog) > audit_backlog_limit) {		if (audit_rate_check())			printk(KERN_WARNING			       "audit: audit_backlog=%d > "			       "audit_backlog_limit=%d\n",			       atomic_read(&audit_backlog),			       audit_backlog_limit);		audit_log_lost("backlog limit exceeded");		return NULL;	}	spin_lock_irqsave(&audit_freelist_lock, flags);	if (!list_empty(&audit_freelist)) {		ab = list_entry(audit_freelist.next,				struct audit_buffer, list);		list_del(&ab->list);		--audit_freelist_count;	}	spin_unlock_irqrestore(&audit_freelist_lock, flags);	if (!ab)		ab = kmalloc(sizeof(*ab), GFP_ATOMIC);	if (!ab) {		audit_log_lost("out of memory in audit_log_start");		return NULL;	}	atomic_inc(&audit_backlog);	skb_queue_head_init(&ab->sklist);	ab->ctx   = ctx;	ab->len   = 0;	ab->nlh   = NULL;	ab->total = 0;	ab->type  = AUDIT_KERNEL;	ab->pid   = 0;	ab->count = 0;#ifdef CONFIG_AUDITSYSCALL	if (ab->ctx)		audit_get_stamp(ab->ctx, &t, &serial);	else#endif		t = CURRENT_TIME;	audit_log_format(ab, "audit(%lu.%03lu:%u): ",			 t.tv_sec, t.tv_nsec/1000000, serial);	return ab;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d812ddbb89e323d054a7d073466225966c8350c8/audit.c/clean/kernel/audit.c