summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
6eba3fe)
Ideally we should only panic in interrupt context. In user
context, we could wait ...
We could also return NULL and let the calling code deal with it
but it's not ready for that yet.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
void *_talloc_zero(void *ctx, unsigned int size, const char *name)
{
unsigned int i;
void *_talloc_zero(void *ctx, unsigned int size, const char *name)
{
unsigned int i;
if (size > sizeof(struct msgb) + MSGB_DATA_SIZE)
goto panic;
if (size > sizeof(struct msgb) + MSGB_DATA_SIZE)
goto panic;
- while (1) {
- for (i = 0; i < ARRAY_SIZE(msgs); i++) {
- if (!msgs[i].allocated) {
- msgs[i].allocated = 1;
- memset(&msgs[i].msg, 0, sizeof(&msgs[i].msg));
- memset(&msgs[i].buf, 0, sizeof(&msgs[i].buf));
- return &msgs[i].msg;
- }
+ for (i = 0; i < ARRAY_SIZE(msgs); i++) {
+ if (!msgs[i].allocated) {
+ msgs[i].allocated = 1;
+ memset(&msgs[i].msg, 0, sizeof(&msgs[i].msg));
+ memset(&msgs[i].buf, 0, sizeof(&msgs[i].buf));
+ return &msgs[i].msg;
- cons_puts("unable to allocate msgb\n");
- delay_ms(50);
+ cons_puts("unable to allocate msgb\n");
+ while (1);
+
+ return NULL; /* not reached */
}
void talloc_free(void *msg)
{
}
void talloc_free(void *msg)
{