diff --git a/drivers/staging/dgnc/dgnc_tty.c b/drivers/staging/dgnc/dgnc_tty.c
index afb20a3e13ab36159c724f196475f2c403794ce6..a798476cf4ea26fcd01b0bd23c246a9afc55f424 100644
--- a/drivers/staging/dgnc/dgnc_tty.c
+++ b/drivers/staging/dgnc/dgnc_tty.c
@@ -462,7 +462,7 @@ void dgnc_sniff_nowait_nolock(struct channel_t *ch, uchar *text, uchar *buf, int
 	char *p;
 	int too_much_data;
 
-	tmpbuf = kzalloc(TMPBUFLEN, GFP_KERNEL);
+	tmpbuf = kzalloc(TMPBUFLEN, GFP_ATOMIC);
 	if (!tmpbuf)
 		return;
 	p = tmpbuf;