Thread (11 messages) 11 messages, 5 authors, 2025-01-18

Re: [PATCH v4 2/4] input: apple_z2: Add a driver for Apple Z2 touchscreens

From: Christophe JAILLET <hidden>
Date: 2025-01-16 18:38:53
Also in: asahi, linux-devicetree, linux-input, lkml

quoted
+static int apple_z2_probe(struct spi_device *spi)
+{
+    struct device *dev = &spi->dev;
+    struct apple_z2 *z2;
+    int error;
+
+    z2 = devm_kzalloc(dev, sizeof(*z2), GFP_KERNEL);
+    if (!z2)
+        return -ENOMEM;
+
+    z2->tx_buf = devm_kzalloc(dev, sizeof(struct 
apple_z2_read_interrupt_cmd), GFP_KERNEL);
+    z2->rx_buf = devm_kzalloc(dev, 4096, GFP_KERNEL);
This will allocate 8192 bytes because of the way the allocator works.
It needs around 40 bytes for the devm stuff + 4096 requested. So 
rounding rules will allocate 8192 bytes.

So either you could allocate "for free" much more space, or you could 
allocate (and document...)
     z2->rx_buf = devm_kzalloc(dev, 4096 - sizeof(struct devres), 
GFP_KERNEL);

or have an explicit devm_add_action_or_reset() that would require less 
memory, but would add some LoC.
or leave it as-is, of course ;-)
See https://elixir.bootlin.com/linux/v6.13-rc3/source/drivers/base/ 
devres.c#L97

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help