On Sun, May 17, 2015 at 10:56:46AM +0000, Wang Nan wrote:

SNIP

> +                             i * sizeof(struct bpf_map_def));
> +
> +             if (obj->needs_swap) {
> +                     def.type        = bswap_32(def.type);
> +                     def.key_size    = bswap_32(def.key_size);
> +                     def.value_size  = bswap_32(def.value_size);
> +                     def.max_entries = bswap_32(def.max_entries);
> +             }
> +
> +             *pfd = bpf_create_map(def.type,
> +                                   def.key_size,
> +                                   def.value_size,
> +                                   def.max_entries);
> +             if (*pfd < 0) {
> +                     size_t j;
> +                     int err = *pfd;
> +
> +                     pr_warning("failed to create map: %s\n",
> +                                strerror(errno));
> +                     for (j = 0; j < i; j++) {
> +                             close(obj->maps_fds[j]);
> +                             obj->maps_fds[j] = -1;
> +                     }
> +                     free(obj->maps_fds);
> +                     obj->maps_fds = NULL;

the close/free code above could go into separate function
and be used in bpf_unload_object

jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to